您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单片机--0-9加计数器课程设计
目录前言...............................................................................错误!未定义书签。一.总体设计..............................................................................................3二.硬件设计..............................................................................................3三.软件设计..............................................................................................6四.使用Keil、preoteus软件调试仿真说明............................................8五.结束语..................................................................................................9六.参考文献..............................................................错误!未定义书签。前言单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用单片机的应用介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1).在智能仪器仪表上的应用(2).在工业控制中的应用(3).在家用电器中的应用(4).在计算机网络和通信领域中的应用(5).单片机在医用设备领域中的应用(6).在各种大型电器中的模块化应用此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。该课程设计的设计目的1)学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。2)掌握汇编语言程序设计方法。3)培养实践技能,提高分析和解决实际问题的能力。课程设计的任务及要求1)上电时,数码管显示为0。2)利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。3)计数器计数到9后,再按计数按钮,则数码管从0重新开始计数。一、总体设计1.硬件设计思路利用单片机的P0口、P2口作为输出端,控制数码管的显示,利用P2.6口作为输入端,控制开关量的控制2.软件设计思路实现0-9计数功能,查表子程序实现将高低电位转化为数码管的十进制数字,实现手动开关计数二、硬件设计1、芯片由UNTITLED—ISISPROFESSIONAL实验系统提供(AT89C51)1)主要特性:与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz—24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内震荡器和时钟电路2)管脚说明:①电源引脚Vcc(40脚):典型值+5V。Vss(20脚):接低电平。②外部晶振XTAL1、XTAL2分别与晶振两端相连接。③输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“1”。P1口:I/O双向口。作输入口时,应先软件置“1”。P2口:I/O双向口。作输入口时,应先软件置“1”。P3口:I/O双向口。作输入口时,应先软件置“1”。④控制引脚:RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST(9脚):复位信号输入端(高电平有效)。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。AT89C51单片机的P口特点:P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。2、电阻模块:电阻模块就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。其余引脚正常引出。作为P0口的上拉电阻用。3硬件原理图:4、原件清单原件名称型号数量/个用途单片机AT89C511控制核心晶振12MHZ1晶振电路电容30μF2晶振电路电容10μF1复位电路电阻10K1复位电路电阻2207上拉电阻电源+5V2提供电源拨码开关BUTTON_11发出信号数码管7SEG-COM-CAT-GRN1显示次数三、软件设计程序流程图汇编程序ORG0000HLJMPSTARTORG0030HSTART:MOVR1,#10;按键循环次数MOV30H,#00HMOVA,30HMOVDPTR,#TABMOVCA,@A+DPTR;查表SETBP2.7;开数码管共阳置1共阴置0MOVP0,A;送显示LCALLDELAY;延时一段时间LOOP1:JNBP2.6,LOOP2;如果P2.6按下则执行TTLJMPLOOP1;如果没有按下则反复监测键盘LOOP2:JBP2.6,LOOP3;如果P2.6弹起则执行QQLJMPLOOP2;如果没有弹起则反复监测键盘LOOP3:INC30HMOVA,30HMOVCA,@A+DPTR;查表MOVP0,A;送显示LCALLDELAY;延时一段时间DJNZR1,LOOP1;如果循环一遍就重新开始,没有跳到MM继续循环LJMPSTART;否则30H清除DELAY:;延时程序MOVR7,#20DEL1:MOVR6,#25DEL2:DJNZR6,DEL2DJNZR7,DEL1RETTAB:DB03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH//共阴数码管数值0-9END四、使用Keil程序调试、proteus仿真软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。先在keil中为所编的程序设置环境,然后输入程序检测并编译,之后用Proteus将编译好的程序输入到已设计好的电路的AT89C51中,开始模拟调试。进一步修改,完成设计。仿真结果图:经过keil和proteus联合仿真,结果如图片,上电时,数码管显示为0,按开关数字递增,计数器计数到9后,再按计数按钮,则数码管从0重新开始计数。程序正确,硬件连接正确。五、结束语1、心得体会通过一周的单片机课程设计,让人感受颇深。刚开始时,我有点迷茫,我懂得知识理论的知识但要实际操作,总是有差距的,虽然对于我们来说有一定的难度,但是我们经研究从最简单的编程开始,对于80C51单片机的编程,我们使用的是我们所学汇编语言,结合自己所学的及寻找大量资料,拟定了初步的程序,然后进行修改及用Keil软件进行调试,然后进一步修改,最终完成了程序。结束了软件,硬件我们用Proteus软件进行绘图和仿真,在这一过程中,我们对该软件有了进一步的认识,与此同时,我们从中也学会了许多关于软件方面的知识。在仿真过程中,我们遇到一些问题,如:连线的问题、数码管不显示但通电、寻找合适的器件等问题,最终在我们的努力下,我们完成了0-9加计数器课程设计任务。在这一过程中我们学会了很多的知识,与此同时,我们也成长了,我们对将自己所学的理论知识应用于实践有了进一步的提高及一些经验,对我们以后工作有一定好处。虽然设计过程很短暂,但我们还是收获了很多。2建议和意见:希望以后能够在以后的教学环节中增加更多的设计方面的实践,能够有更多的机会将学到的东西应用与实践,最好从简单实践应用开始,理论结合实际,才能更多的激发同学们的学习兴趣,更好的掌握所学的知识。六、参考文献(1)周越张平王斌陈爱文编著单片机技术实验实训教程中国水利水电出版社2007(2)石从刚主编MCS-51单片机原理与应用实验实训教程北京航空航天大学出版社2007.2(3)何立民主编单片机实验与实践教程(二)北京航空航天大学出版社2001.10。
本文标题:单片机--0-9加计数器课程设计
链接地址:https://www.777doc.com/doc-6234470 .html