欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    昆明学院《单片机原理及接口技术》课程设计报告多.docx

    • 资源ID:10115692       资源大小:262.31KB        全文页数:28页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    昆明学院《单片机原理及接口技术》课程设计报告多.docx

    1、昆明学院单片机原理及接口技术课程设计报告多单片机原理与接口技术课程设计报告 姓 名 杨承明 学 号 201104170125 院 系 自动控制与机械工程学院 班 级 2011级 指导教师 冯维杰 2013 年 7 月目 录一 、课程设计目的和要求1、设计的目的32、课程设计要求3二 、设计的步骤和思路31、总体要求32、设计的步骤43、设计的思路4三、硬件的设计51、信号输入电路52、数码管的驱动模块的电路.53、LED灯的驱动模块电路5四、软件设计.61、单片机选择62、系统软件设计分析63、主要功能实现的程序7(1)通道号的设置9(2)定时值的设置9五、调试说明11六、报告总结12七、参考

    2、文献12八、附录12一 、课程设计目的和要求1、设计的目的单片机课程作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完单片机原理及应用课程后,并在进行相关课程设计基础上进行的一次综合联系。单片机课程设计过程中,我们通过查阅资料,接口设计、程序设计、安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并具有综合应用功能的小应用课程设计,不但使我们能熟练掌握课堂上所学知识,而且还能够对电子电路、电子元件等方面的知识进一步加深认识,同时在软件编程、调试、相关仪器设备和相关软件的使用技能等方面得到较全面的锻炼和提高。使学生增进对单片机的感性认识,加深对单片机理论方

    3、面的理解,加深单片机内部功能模块的应用,如定时器/计数器、中断、片内外存储器、I/O接口、串行口等。使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。提高学生在单片机应用方面的实践技能和科学作风,培育学生综合应用知识理解问题的能力。2.课程设计要求 课程设计以学生认知为主体,充分调动学生的积极性,重视学生自学能力的培养,根据具体课题安排时间确定课题的设计、编程和调试内容,分团队开展课程设计活动,按时完成每部分工作。坚持独立完成,实现课题规定的各项指标,并写出设计报告。要求学生自己查阅资料和充分利用所学知识,根据所要设计系统所要达到的功能,划分软硬件

    4、功能、选择器件、编写相关程序,用Proteus 在计算机上绘图并用Keil进行程序边编写进行防真,再对整个系统做调试运行,培养学生在遇到问题时能进行独立、系统、认真的思考,并进一步培养学生在团队中的合作精神,不断调试修改,直至达到设计的要求和取得满意的效果,最后编写系统说明书,其内容包括系统的功能介绍,使用范围,主要性能指标,使用方法,注意事项等。二 、设计的步骤和思路1、总体要求该课程设计要求基于AT89C51设计一个4位的LED数码管作为“4通道的秒表定时器”。(1)设计使显示时间为099秒;(2)当各通道定时时间到时,点亮对应的LED灯;(3)设计一个具有4个按键的键盘:K1:“设置”/

    5、“定时启动”;K2:“通道”/“定时设置”;K3:“加一”;K4:“减一”;(4)设计每到一秒钟有声音或LED提示提醒功能,可通过按钮打开及关闭该提醒功能。(5)设计提示1)用4位7段LED数码管作为显示设备,最高位显示通道号,第2位显示时间.2)可采用定时器,定时时间100ms.3)参考 Proteus Pro仿真效果图:2、设计的步骤(1)制定相应的设计方案;(2)硬件的初步设计;(3)选择设计所用元器件和参数;(4)在Proteus 7.5中设计和连接电路图;(5)软件的初步设计;(6)编写程序实现其功能;(7)在keil_v4中进行调试运行;(8)硬件和软件联合调试。3、设计的思路为使

    6、数码管同时显示通道号和定时值(099秒),选用4位7段LED数码管,当定时时间到时点亮对应的LED灯,课程中我们选用LED-BLUE灯,并设计有四位按键的键盘,分别为K1、K2、K3、K4来控制定时启动/停止、通道号和定时时间的切换设置、通道号/定时时间加一、通道号/定时时间减一。通过这四个按键来控制整个电路的运行、LED灯的点亮和数码管的显示。具体控制如下:(1)通道号为14,对应LED灯为LED1LED4,执行程序前可任意选择通道号;定时值可在099S内任意设置;(2)当程序运行初始化化后,如果K2按下,则切换至通道号的设置,通过K3、K4来增加或减小通道号;当选择好通道号后如果按下K2则

    7、切换至定时值的设置,通过K3、K4来增加或减小定时值;当定时值设置好之后按下K1则程序执行所选通道的秒表定时;当定时时间到时,对应通道的LED灯点亮;(3)当程序运行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;当设置好之后按下K1后直接执行一通道的秒表定时;当定时时间到时,对应通道的LED灯点亮;(4)当程序运行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;当设置好之后按下K2则切换至通道号的设置,通过K3、K4来增加或减小通道号;当设置好后按下K1则执行对应通道的定时;当定时时间到时,对应通道的LED灯点亮;(5)当程序运

    8、行初始化后直接按下K3、K4进行定时时间的设置,通过K3、K4来增加或减小定时值;当设置好之后按下K2则切换至通道号的设置,通过K3、K4来增加或减小通道号;当设置好后按下按下K2则又切换至定时时间的设置, 通过K3、K4来增加或减小定时值;依次可不断循环通道号和定时时间的切换设置,直至达到自己所想要的定时时间,此时按下K1则执行对应通道的秒表定时,当定时时间到时点亮对应的LED灯。三、硬件的设计硬件电路设计框图如下图所示,主要由:4个按键的键盘、单片机、数码管、4个LED灯。根据硬件系统电路设计框图,对各部分模块的原理进行分析,编写个子模块程序,最终将其组合。1、AT89C51简介AT89C

    9、51 作为秒表计时系统的核心器件。该器件是 INTEL 公司生产的 MCS51 系列单片机的基础产品,采用了可靠的 CMOS 工艺制造技术,具 有高性能的 8 位单片机,属于标准的 MCS51 的 CMOS 产品。不仅结合了 HMOS 的高速和高密度技术及 HMOS 的低功耗特征,而且继承和扩展了 MCS48 单片机的体系结构和指令系统。 单片机小系统的电路图如图所示:图1.3 AT89C51单片机AT89C51的主要特征: 与 MCS51 兼容,4K 字节可编程闪烁存储灵活的在线系统编程,掉电标识和快速编程特性; 寿命为 1000 次写/擦周期,数据保留时间可 10 年以上;全静态工作模式:

    10、0HZ33HZ; 三级程序存储器锁定;1288 位内部 RAM,32 位可编 I/O 线;两个 16 位定时器/计数器,5 个中断源,4 个 8 位并行的 I/O 接口,1 个全双工 I/O 接口。2、信号输入电路独立式按键就是各按键相互独立,每个按键各接入一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键按下了。独立式按键电路配置灵活,软件简单。消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要

    11、考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为1020ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。3、数码管的驱动模块的电路4、LED灯的驱动模块电路每当计时到时,对应的LED数码管就会点亮。四、软件设计1、单片机选择AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系

    12、统,片内置通用8位中央处理器(CPU)和Flash存储单元。功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。此设计中就采用AT89C51。2、系统软件设计分析模块的划分:(1)键盘的设置、启动、停止、加一、减一;(2)数码管显示通道号和定时时间;(3)定时时间到后对应通道号的LED灯点亮。程序流程图如下:3、主要功能实现的程序(1)通道号的设置uchar set_thax() /设置通道函数 key_set(); if(set_2=2) delay(10); if(k3=0) /K3加1 delay(30); if(k3=0) delay(300); sec

    13、+; if(sec=5) sec=1; if(k4=0) /K4减1 delay(30); if(k4=0) delay(300); sec-; if(sec=0) sec=4; a=sec; return a; (2)定时值的设置void set_time() /设置时间函数 key_set(); if(set_2=1) delay(10); if(k3=0) /K3加1 delay(30); if(k3=0) delay(300); minu+; if(minu=100) minu=1; if(k4=0) /K4减1 delay(30); if(k4=0) delay(300); minu

    14、-; if(minu=-1) minu=99; 五、调试说明仿真结果和分析:1、未启动仿真时,初始状态:2、开始启动仿真后:3、通过按下K2切换至一、二、三、四通道和定时值的设置,定时时间到后对应通道号LED灯点亮:六 报告总结 在将近一周的学习工作中,我们进行了keil和proteus的学习,并且熟练的用这两个软件进行了这次的课程设计,在这期间,我从开始的一无所知到基本清楚,从不熟练到熟练,通过查阅资料、问老师、问同学,最终完成了这次的课程设计。通过这次单片机课程设计,我不仅加深了对单片机理论的理解,而且我还学会了如何去培养我们的创新精神,独立自主的去完成一个设计。这次设计也让我深深的感到仅

    15、在课堂上的学到的知识是远远不够的,课下我们应该多到图书馆或网上多了解一下其它的东西,同时更应该加强我们的动手能力的训练,因为学习就是为了将知识应用到生活中,造福人类。同时,更重要的是,在这一次设计中,我学会了坚持不懈,不轻易言弃。在设计过程中我也遇到国很多的问题,比如图形看上去大体对了,但是运行起来还是出错了,最为要命的是编写程序,首先要搞清楚是做一件什么事情,然后是基本结构,最后才是细心编写,其中编写程序的时候,只要有一小点不小心,整个过程就不能实现。所以这次课程设计不仅仅然我增长巩固了知识,还很好的培养了我的细心与耐心的性格,同时还更清楚的认识了解和应用了MCS-51单片机。在此要感谢我的

    16、指导老师,感谢老师给我这样的机会锻炼。在整个设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个设计还不是很完善,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。七、参考文献(1)单片机原理与接口技术吴亦峰 陈德为 冯维杰 曹双贵 许艳 编造 出版社 电子工业出版社(2) MCS-51单片机原理及应用实例南建辉 熊鸣 王军茹 编著 出版社 北京清华大学出版社 版次 2004年3月第1版 2006年2月第3版次印刷

    17、八、附录#include#define uint unsigned int#define uchar unsigned charsbit QB1=P20; /选择数码管sbit QB2=P21; sbit QB3=P22;sbit QB4=P23;sbit k1=P10; /k1按键,sbit k2=P11; /k2按键,sbit k3=P12; /k3按键,加1sbit k4=P13; /k4按键,减1sbit led4=P30; /LED灯sbit led3=P31;sbit led2=P32;sbit led1=P33;sbit what=P0;uchar sec=1,minu,mstc

    18、nt; / 定义初始量uchar set_2=1,set_1=1;uchar mis,mig,ss,sg;uchar code table=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/共阴显示uchar code tabl=0x3F,0x06,0x5B,0x4F,0x66; int a;void delay(uint); /延时函数void key_change(); / 扫描K1void key_set(); / 扫描K2void disp(uchar,uchar,uchar,uchar); /显示函数void set_time();

    19、 /设置时间函数uchar set_thax(); /设置通道函数void timer0();void haap();void main() /主函数 EA=1; /系统允许有开放的中断 ET0=1; /允许T0中断 TR0=1; /开启中断,启动定时器 TMOD=0x01; TH0=0x00; TL0=0x01; while(1) sg=sec%10; /通道个位 mis=minu/10; /显示时间十位 mig=minu%10; key_set(); /扫描K2 key_change(); /扫描K1 if(set_1=1) /设置显示条件 haap(); if(k1=1&k2=1) /正

    20、常显示 delay(10); if(k1=1&k2=1) sg=sec; disp(sg,mis,mig,ss); key_change(); if(set_1 =2) /启动条件 timer0(); key_change(); if(set_1=3) minu=0; void haap() /设置显示函数 if(set_1=1) delay(10); key_set(); if(set_2=1) delay(10); set_time(); key_set(); if(set_2=2) delay(10); set_thax(); void timer0() interrupt 1 usin

    21、g 0 /启动函数 TH0=0x01; TMOD = 0x01; if(set_1=2) delay(10); mstcnt+; if(mstcnt=20) mstcnt=0; if (minu=0) minu=0; set_thax(); if(a=1) led1=0; led2=1; led3=1 ; led4=1 ; else if(a=2) led1=1; led2=0; led3=1 ; led4=1 ; else if(a=3) led1=1; led2=1; led3=0 ; led4=1 ; else if(a=4) led1=1; led2=1; led3=1 ; led4=

    22、0 ; else minu-; if(minu=0) minu=0; void key_change() /k1按键扫描 if(k1=0) delay(20); if(k1=0) set_1+; while(k1!=1); if(set_1=4) set_1=1; void key_set() /k2按键扫描 if(k2=0) delay(20); if(k2=0) set_2+; while(k2!=1); if(set_2=3) set_2=1; void disp(uchar sg,uchar mis,uchar mig,uchar ss) /显示函数 QB1=0; QB2=1; QB3

    23、=1; QB4=1; P0=tablesg; /第1个数码管显示通道 delay(10); /延时一小会 QB1=1; QB2=1; QB3=0; QB4=1; P0=tablemis; /第3个数码管显示十位 delay(10); QB1=1; QB2=1; QB3=1; QB4=0; P0=tablemig; /第4个数码管显示个位 delay(10); QB1=1; QB2=1; QB3=1; QB4=1; P0=tabless; /第2个数码管不显示 delay(10);void set_time() /设置时间函数 key_set(); if(set_2=1) delay(10);

    24、if(k3=0) /K3加1 delay(30); if(k3=0) delay(300); minu+; if(minu=100) minu=1; if(k4=0) /K4减1 delay(30); if(k4=0) delay(300); minu-; if(minu=-1) minu=99; uchar set_thax() /设置通道函数 key_set(); if(set_2=2) delay(10); if(k3=0) /K3加1 delay(30); if(k3=0) delay(300); sec+; if(sec=5) sec=1; if(k4=0) /K4减1 delay(30); if(k4=0) delay(300); sec-; if(sec=0) sec=4; a=sec; return a; void delay(uint k) /延时函数 uint i,j; for(i=k;i0;i-) for(j=80;j0;j-);


    注意事项

    本文(昆明学院《单片机原理及接口技术》课程设计报告多.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开