




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1概述311单片机简介312设计任务313设计要求32系统总体方案及硬件设计421、复位电路522、晶体振荡电路623、键盘电路624、显示电路73软件设计731、设计思想732、系统流程图833源程序代码及注解104PROTEUS软件仿真155课程设计体会166参考文献17附录1源程清单18附录2系统原理图241概述11单片机简介单片机是性能价格比高、体积小、对国民经济渗透力大、最有前途的微控制器。单片机自20世纪70年代初研制成功并发展至今,已进入第四代。它主要是在一块芯片上集成了CPU、存储器以及输入输出电路,在工业过程中被广泛应用在控制电路中。从单片机的系列来看,国内外已超过50个系列、近500个品种,当前正处于更新换代、百花齐放的时期。新的系列和专用系列正在不断涌现。按位数分类有4位、8位、16位以及32位单片机等,4位单片机由于价格低和出现的早得到了广泛的应用,特别是在家电应用领域中其还有很大的优势,为了抵御8位机的竞争,4位机在结构和功能上都有很大的改进。8位机的生产厂家以及品种都很多,在实际的生产中应用也最为广泛,其中INTEL公司的8051系列单片机在我国应用最为广泛,另外8位单片机也在其功能和内部结构上不断的进行改进,目前功能是越来越强大。16位单片机在数据处理以及单片机的性能上有了很大的改进。32位单片机是随着高科技产业的发展而产生的。12设计任务设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、用两个阴极LED数码管以及按键来设计0099秒计时器。将软、硬件有机地结合起来,使得系统能够正确地进行加计时,同时数码管能够正确地显示时间。13设计要求1、能同时记录四个相对独立的时间并分别显示。2、两位LED动态显示,显示时间为0099秒。3、每秒自动加1。4、一个开始按键、一个复位按键、一个暂停按钮XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C512系统总体方案本设计的最主要的元器件就是MCS51单片机。MCS51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。MCS51单片机是INTEL公司在1980年推出的高档8位单片机。它的典型产品有8051,8031,8751,80C51,80C31,87C51。AT89C51(图1)单片机由CPU,振荡器与时序电路,4个8位的I/O端口(P0,P1,P2,P3),串行口等组成。P0口有三个功能1、外部扩展存储器时,当做数据总线(如图中的D0D7为数据总线接口)。2、外部扩展存储器时,当作地址总线(如图中的A0A7为地址总线接口)。3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用其内部有上拉电阻。P2口有两个功能1、扩展外部存储器时,当作地址总线使用;2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由寄存器来设置。ALE地址锁存控制信号PSEN外部程序存储器读选通信号EA/VPP访问和序存储器控制信号RST复位信号XTAL1和XTAL2外接晶振引脚VCC电源5V输入VSSGND接地。AT89C51单片机P2口P1口键盘控制电路晶振电路复位电路两个数码管图2整体设计框图21复位电路采用上电加按钮复位。这个系统中的复位电路是采用上电加按钮来实现的。因为MCS51单片机的复位是靠外部电路实现的。MCS51单片机工作之后,只要在他的RST引线上加载10MS以上的高点平,单片机就能有效地进行复位。MCS51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。图3复位电路22晶体振荡电路通过XTAL1和XTAL2外接晶体振荡器构成内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。MCS51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。图4晶振震荡电路23键盘电路用部分P1口做开始开关,P2口开始,P3口复位,图5键盘电路24显示电路采用LED动态显示,用P2口驱动显示。图6显示电路3软件设计31设计思想因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。其中的模块即为子程序,子程序是功能独立的程序段。子程序的基本思想是编写一次,可以重复使用。子程序的形式可以是一个程序文件,也可以是一开始初始化P100P110P130P140P150停止复位下翻上翻够4个P100N暂停记录NNNNNN个过程或函数。子程序总被其他程序调用而不单独执行,这与主程序相对。这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,、快加、复位,计数和显示等,在具体需要时调用相应的模块即可。32、程序流程图定时器流程图加1子程序流程图压栈保护赋定时初值到1秒调用加1程序调用显示程序中断返回Y(20H)A进位清零做加法到100(20H)清零个位十位分开返回Y33程序代码及注解ORG0000H程序开始AJMPSTART跳转到主程序STARTORG000BH定时器0中断的地址入口AJMPTIME0定时器0溢出,跳转到中断程序TIME0START主程序MOVP3,0FFH输入端口P3全写1MOVP0,3FHMOVP1,3FHMOVP2,0BFH数码管初始化MOV30H,00HMOVR0,00HMOVR1,0AHMOVR2,00H工作寄存器初始化MOVTMOD,01H定时器0工作于方式1MOVTH0,0D8HMOVTL0,0FEH定时器0预置数D8FEH55550DSETBEA开总中断允许SETBET0开定时器0中断允许READ读键程序L1JBP32,L2LCALLDELAY按键延时防抖JBP32,L1AJMPRUN确认计时键被按下,开始/继续计时L2JBP33,L3LCALLDELAY按键延时防抖JBP33,L2AJMPPAUSE确认暂停键被按下,暂停计时L3JBP34,L1LCALLDELAY按键延时防抖JBP34,L3AJMPSTOP确认清零键被按下,秒表重置RUN计时键按下,跳转至此SETBTR0定时器0开始/继续运行AJMPREADPAUSE暂停键按下,跳转至此CLRTR0AJMPREADTIME0定时器0溢出,中断,跳转至此INC30HMOVA,30HCJNEA,0AH,TIME130H单元中的值到10了吗计时到10毫秒了吗,也就是说,该向毫秒位送数了吗MOVDPTR,TAB30H中的值到10了,顺序执行MOVA,R0INCR0CJNER0,0AH,GETR0中的值到10了吗该向秒位进位了吗MOVR0,00HLCALLSECOND到了,R0清零,调用进位子程序SECOND,向秒位进位GET没到,跳过进位子程序MOVCA,ADPTRMOVP1,A查表并向数码管毫秒位送数MOV30H,00H重置30H单元TIME1MOVTH0,0D8HMOVTL0,0FEH给定时器0重新预置数RETI中断返回SECOND秒位进位子程序PUSHACCPUSHPSW将ACC和PSW推入堆栈保护MOVA,R1INCR1CJNER1,14H,GET1R1中的值到20了吗,也就是说,该向十秒位进位了吗MOVR1,0AHLCALLSECOND1到了。R1重置,调用进位子程序SECOND1,向十秒位进位GET1没到,跳过进位子程序MOVCA,ADPTRMOVP2,A查表并向数码管秒位送数POPPSWPOPACCPSW,ACC出栈RET子程序返回SECOND1十秒位进位子程序PUSHACCPUSHPSW将ACC和PSW推入堆栈保护MOVA,R2INCR2CJNER2,0AH,GET2R2中的值到10了吗,也就是说,该将此位归零了吗MOVR2,00H到了,R2清零GET2没到,跳过清零程序MOVCA,ADPTRMOVP0,A查表并向数码管十秒位送数POPPSWPOPACCPSW,ACC出栈RET子程序返回STOP清零键按下,跳转至此MOVP3,0FFHMOVP0,3FHMOVP1,3FHMOVP2,0BFH数码管清零MOV30H,00HMOVR0,00HMOVR1,0AHMOVR2,00H工作寄存器初始化CLRTR0计时器0停止计时MOVTH0,0D8HMOVTL0,0FEH定时器0预置数AJMPREADDELAY延时10MS子程序MOVR3,50DD1MOVR4,100DD2DJNZR4,D2DJNZR3,D1RET子程序返回TABDB06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,0BFH数码管段选码数表END程序结束4ISIS7PROFESSIONL软件仿真利用KEILUVISION软件对源程序进行编译,编译成功后,把编译结果保存。然后根据我们的软件在PROTEUS中设计出相应的硬件电路,并将该电路保存到与WAVE程序相同的文件夹中,最后将程序装载到单片机中,通过ISIS7PROFESSIONL仿真,看程序是否能够实现预想的功能仿真图如下图所示ORG0000H程序开始AJMPSTART跳转到主程序STARTORG000BH定时器0中断的地址入口AJMPTIME0定时器0溢出,跳转到中断程序TIME0START主程序MOVP3,0FFH输入端口P3全写1MOVP0,3FHMOVP1,3FHMOVP2,0BFH数码管初始化MOV30H,00HMOVR0,00HMOVR1,0AHMOVR2,00H工作寄存器初始化MOVTMOD,01H定时器0工作于方式1MOVTH0,0D8HMOVTL0,0FEH定时器0预置数D8FEH55550DSETBEA开总中断允许SETBET0开定时器0中断允许READ读键程序L1JBP32,L2LCALLDELAY按键延时防抖JBP32,L1AJMPRUN确认计时键被按下,开始/继续计时L2JBP33,L3LCALLDELAY按键延时防抖JBP33,L2AJMPPAUSE确认暂停键被按下,暂停计时L3JBP34,L1LCALLDELAY按键延时防抖JBP34,L3AJMPSTOP确认清零键被按下,秒表重置RUN计时键按下,跳转至此SETBTR0定时器0开始/继续运行AJMPREADPAUSE暂停键按下,跳转至此CLRTR0AJMPREADTIME0定时器0溢出,中断,跳转至此INC30HMOVA,30HCJNEA,0AH,TIME130H单元中的值到10了吗计时到10毫秒了吗,也就是说,该向毫秒位送数了吗MOVDPTR,TAB30H中的值到10了,顺序执行MOVA,R0INCR0CJNER0,0AH,GETR0中的值到10了吗该向秒位进位了吗MOVR0,00HLCALLSECOND到了,R0清零,调用进位子程序SECOND,向秒位进位GET没到,跳过进位子程序MOVCA,ADPTRMOVP1,A查表并向数码管毫秒位送数MOV30H,00H重置30H单元TIME1MOVTH0,0D8HMOVTL0,0FEH给定时器0重新预置数RETI中断返回SECOND秒位进位子程序PUSHACCPUSHPSW将ACC和PSW推入堆栈保护MOVA,R1INCR1CJNER1,14H,GET1R1中的值到20了吗,也就是说,该向十秒位进位了吗MOVR1,0AHLCALLSECOND1到了。R1重置,调用进位子程序SECOND1,向十秒位进位GET1没到,跳过进位子程序MOVCA,ADPTRMOVP2,A查表并向数码管秒位送数POPPSWPOPACCPSW,ACC出栈RET子程序返回SECOND1十秒位进位子程序PUSHACCPUSHPSW将ACC和PSW推入堆栈保护MOVA,R2INCR2CJNER2,0AH,GET2R2中的值到10了吗,也就是说,该将此位归零了吗MOVR2,00H到了,R2清零GET2没到,跳过清零程序MOVCA,ADPTRMOVP0,A查表并向数码管十秒位送数POPPSWPOPACCPSW,ACC出栈RET子程序返回STOP清零键按下,跳转至此MOVP3,0FFHMOVP0,3FHMOVP1,3FHMOVP2,0BFH数码管清零MOV30H,00HMOVR0,00HMOVR1,0AHMOVR2,00H工作寄存器初始化CLRTR0计时器0停止计时MOVTH0,0D8HMOVTL0,0FEH定时器0预置数AJMPREADDELAY延时10MS子程序MOVR3,50DD1MOVR4,100DD2DJNZR4,D2DJNZR3,D1RET子程序返回TABDB06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3FH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,0BFH数码管段选码数表END程序结束图7系统仿真结果5课程设计体会经过一周的不懈努力,单片机的课程设计终于完成了。在这期间我们学会了很多,也学到了很多,同时,对单片机这门课程有了更深一步的理解和掌握。1、本次课程设计使我加深了对单片机课程的全面认识,复习和掌握,对MC51单片机有了更深入的了解,对I/O口的使用,晶振电路的接法,以及复位电路等的掌握都有了很大程度的提高,这为以后的实践打下了良好的基础。2、掌握了定时器、外部中断的设置和编程原理。3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。5、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。6、我在编程过程中还有好多不理解的地方,经过同学的帮助终于完成了这次设计。在这个过程中体会到了合作的好处,更了解的互相帮助的重要性。由于编程能力的有限和所学知识的局限性,在这个程序和设计系统中虽然实现了所有的基本要求和部分的高级要求,但是这其中还有许多不完善的地方,有时在上翻和下翻时会出现一些问题,这说明我在这方面还存在着很多不足,知识不够完备和系统,在以后的学习中还有待提高。另外,在实践中虽然焊接好了硬件电路,却没能实践成功,希望老师能在以后的学习和生活中对我多加指导,促使我能取得更大的进步。6参考文献【1】余发山编著单片机原理及应用技术徐州中国矿业大学出版社,2003年【2】杨凌霄编著微型计算机原理及应用徐州中国矿业大学出版社,2004年【3】杨宁编著单片机与控制技术北京北京航空航天大学出版社,2004年【4】王闪编著AT89系列单片机原理与接口技术北京北京航空航天大学出版社,2004年附录程序清单ORG0000H程序开始AJMPSTART跳转到主程序STARTORG000BH定时器0中断的地址入口AJMPTIME0定时器0溢出,跳转到中断程序TIME0START主程序MOVP3,0FFH输入端口P3全写1MOVP0,3FHMOVP1,3FHMOVP2,0BFH数码管初始化MOV30H,00HMOVR0,00HMOVR1,0AHMOVR2,00H工作寄存器初始化MOVTMOD,01H定时器0工作于方式1MOVTH0,0D8HMOVTL0,0FEH定时器0预置数D8FEH55550DSETBEA开总中断允许SETBET0开定时器0中断允许READ读键程序L1JBP32,L2LCALLDELAY按键延时防抖JBP32,L1AJMPRUN确认计时键被按下,开始/继续计时L2JBP33,L3LCALLDELAY按键延时防抖JBP33,L2AJMPPAUSE确认暂停键被按下,暂停计时L3JBP34,L1LCALLDELAY按键延时防抖JBP34,L3AJMPSTOP确认清零键被按下,秒表重置RUN计时键按下,跳转至此SETBTR0定时器0开始/继续运行AJMPREADPAUSE暂停键按下,跳转至此CLRTR0AJMPREADTIME0定时器0溢出,中断,跳转至此INC30HMOVA,30HCJNEA,0AH,TIME130H单元中的值到10了吗计时到10毫秒了吗,也就是说,该向毫秒位送数了吗MOVDPTR,TAB30H中的值到10了,顺序执行MOVA,R0INCR0CJNER0,0AH,GETR0中的值到10了吗该向秒位进位了吗MOVR0,00HLCALLSECOND到了,R0清零,调用进位子程序SECOND,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代工外包合同标准文本
- 保利地暖合同标准文本
- 乔木购销合同标准文本
- 二零二五版厂区租赁协议书
- 二零二五公司内部合伙投资协议书
- 个人茶地出租合同样本
- 二零二五版人投资入股协议书
- 个人租房合同样本首
- 保险投保合同标准文本
- “像”-与-“不像”05年度美术教案
- 供应室的质量改进课件
- 机械公司产品销售合同签订评审申请表
- 统信UOS桌面版系统产品白皮书
- 年产1000吨甲壳素项目环评报告书
- 摄影培训教学课件:摄影用光
- 食品从业者工作服清洗消毒记录
- 化妆品经营使用单位现场检查表
- 骨料检测知识培训讲义
- DB33∕T 2387-2021 外贸综合服务企业服务规范
- 农药经营许可管理制度
- 通用精美电子小报模板(35)
评论
0/150
提交评论