已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及系统课程设计报告单片机原理及系统课程设计专 业: 电气工程及其自动化 班 级: 电气093 姓 名: 学 号: 指导教师: 任丽苗 评语:平时(40)修改(30)报告(30)总成绩兰州交通大学自动化与电气工程学院2012 年 7月 7日2单片机原理及系统课程设计报告数字秒表系统设计1 引言数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。本系统采用AT89C51单片机作为主控制器设计数字秒表系统。单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。 设计方案通过将硬件与软件相结合,进行有效的调试,达到完成该实验课程设计的目的要求。 全套程序仿真,加153893706 2 设计方案及原理该实验要求进行计时并在数码管上显示时间,则可利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断INT0的入口地址,并实现“开始”按键的功能;将P3.3作为外部中断INT1的入口地址,并实现“清零”按键的功能;使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.0、P1.2口分别实现暂停、快加的功能。显示电路由两位共阴极数码管组成。当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T0控制延时就可以实现;使用定时器T1实现10ms的定时,进行快加延时;。其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。 初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。 计时采用定时器T0中断完成,定时溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向CPU发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。 数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,P0口中的数据送到该段上显示,节省接口资源,又能实时动态的性能。 再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而暂停键则要用于对时间的锁定,需要比较准确的控制;而对于快加键,当检测到有快加信号时,则启动定时器T1, 完成一个周期定时时产生一个溢出中断请求,向CPU发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式。而对开始和复位键采用外部中断的方式。3 硬件设计3.1 数字秒表电路设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极LED数码管显示计时时间。本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P0口输出段码数据,74LS164用作驱动输出,P1.0、P1.2、P3.2、P3.3口接四个按钮开关,分别实现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图1进行设计。图1 数字秒表硬件电路基本原理图根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在内存单元11H和12H中。其中12H存放低位数据,11H存放高位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,分别取出11H、12H地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。程序采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。3.2 电源电路电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3.3 单片机晶振电路MCS-51单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。晶振电路如图2所示。 图2 内部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在MCS-52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12MHZ之间选择。MCS-51单片机在通常情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。4 软件设计本设计软件部分包含三大部分:主程序,紧急情况中断服务子程序,显示子程序。4.1 设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。4.2 主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图4.1所示,部分子程序流程图由图4.2给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务。并在执行完后返回主程序。通过判断P1.0、P1.2位来选择正常秒表计时还是实现快速加1操作。其中主程序流程图如图3所示,快速加1功能如图4所示。开始与复位功能,通过外部中断来实现,其中开始功能接P3.2口;复位功能接P3.3.口。开始程序初始化开各中断关定时器0,1调用显示子程序P1.0=?1P1.0=?0P1.2=?1关定时器0,1P1.2=?0是否是是是否否否图4 加一子程序流程图返回 开始开始R1=R1+114H=R1R1=?#0ahhhhhhh?#AHR2=?#0ahR1=#00HR2=R2+1R2=#00H结束否否是是 图3 主程序流程图具体程序见附录A、B。5 proteus仿真结果运用proteus软件仿真,其中单片机采用AT89C51,P3.2管脚作为外部中断INT0的入口地址,并实现“开始”按键的功能;将P3.3作为外部中断INT1的入口地址,并实现“清零”按键的功能;使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.0、P1.2口分别实现暂停、快加的功能。显示电路由两位共阴极数码管组成。仿真结果如图5、图6所示。图5 秒表初始值00图6 秒表计时至最大值6 总结本设计的数字电子秒表是由8051单片机、共阴数码显示管、控制按键等器件构成的,设有两位计时显示,开始、暂停、复位按键以及一个实现快加功能的按钮。计时精度能到达10ms,设计精简,使用简单易懂。系统设计合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计方法。采用汇编语言来进行软件设计,利用汇编语言面向机器并能较好的发挥机器的特性,且用内存少,执行速度快,能提高秒表的精度。本设计在设计过程中,遇到了一些问题,如在驱动输出方面,很难选择芯片,最终选择了使用74LS164作驱动输出。同时,本系统的存在许多不足和可以改进的地方。比如该秒表计数时间只能计数到99秒,以及本次设计的数字电子秒表缺少对多次计时时间进行记录的功能。参考文献1 李华,王思明,张金敏.单片机原理及应用M.兰州大学出版社,2001.2 吴蓉,梁龙学,崔用明.数字电子技术M.兰州大学出版社,2006.3 顾滨,李勋.单片微计算机原理开发与应用M.高等教育出版社,2000.附录A 实验主程序ORG 0000HAJMP MAIN ;主程序入口地址ORG 0003HAJMP ZHONGDUAN0 ;中断0入口地址 ORG 000BHAJMP YANSHI ;定时器T0入口地址ORG 0013HAJMP ZHONGDUAN1 ;中断1入口地址ORG 001BHAJMP DINGSHI ;中断1入口地址ORG 0030H ;主程序入口地址;主程序MAIN:MOV TCON,#05H ;主程序开始,外部中断跳变模式 MOV TMOD,#11H ;定时器0、1工作模式1下 MOV IE,#8FH ;中断允许 MOV DPTR,#TAB ;指向数据表首地址 MOV 12H,#00H ;初始化设置 MOV 11H,#00H MOV R1,#00H MOV R2,#00H MOV R3,#40 ;循环40次 MOV TL0,#58H ;定时25ms MOV TH0,#9EH MOV TL1,#0F0H ;定时10ms MOV TH1,#0D8H CLR TR0 ;关断定时器 CLR TR1附录B 中断子程序;暂停和快加程序HERE:JB P1.0,HERE ;位扫描,为0顺序执行SHOW:CLR TR1 CLR TR0 ACALL XIANSHIKUAIJIA:JB P1.2,KUAIJIA ;等待快加信号,为0时快加 CLR TR0 SETB TR1HERE1:JNB P1.2,HERE1 AJMP HERE;外部中断0子程序,计时按键K1子程序ZHONGDUAN0:SETB TR0 ;正常计时 1s延时 RETI;外部中断1子程序,复位键K2子程序ZHONGDUAN1:CLR TR0 ;复位 CLR TR1 MOV 12H,#00H MOV 11H,#00H ACALL XIANSHI ;调用显示子程序 MOV R1,#00H MOV R2,#00h RETI;加一子程序JIA1: INC R1 ;加一子程序 CJNE R1,#0AH,LOOP ;判断低位是否有溢出 MOV R1,#00H INC R2 CJNE R2,#0AH,LOOP MOV R2,#00HLOOP:MOV 12H, R1 ;重新加载计数值 MOV 11H,R2 RET;显示子程序XIANSHI:MOV R7,#02H ;2个数码管显示子程序 MOV R0,#12HLOOP1:MOV R6,#08H ;8位2进制数 MOV A,R0 MOVC A,A+DPTRLOOP2:RLC A ;循环左移,带进位 CLR P3.1 MOV P3.0,C SETB P3.1 DJNZ R6,LOOP2 ;判断数据是否扫描完成 DEC R0 DJNZ R7,LOOP1 ;判断2位是否扫描完成 RET;定时器T0子程序 YANSHI:MOV TL0,#58H ;定时器T0赋初值 MOV TH0,#9EH DJNZ R3,LOOP7 ;实现1s延时 ACALL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏油田人员招聘笔试备考题库及答案详解
- 2026年贵阳市公共交通集团有限公司人员招聘笔试备考试题及答案详解
- 2026福建泉州商业集团有限公司招聘2人笔试模拟试题及答案详解
- 2026年中石化江西石油分公司人员招聘笔试备考题库及答案详解
- 2026年国家能源集团吉林公司人员招聘笔试备考题库及答案详解
- 2026年石家庄国有资本经营集团有限公司人员招聘笔试备考试题及答案详解
- 2026年河北省外贸资产经营有限公司人员招聘笔试备考试题及答案详解
- 2026年滁州工投物贸有限公司第二次招聘劳务派遣人员笔试模拟试题及答案详解
- 2026福建福州平潭正宏建设工程咨询有限公司项目制用工招聘4人笔试模拟试题及答案详解
- 2026年江西省铁路投资集团有限责任公司人员招聘笔试备考试题及答案详解
- Tesseral-中文-用户手册
- 帛书版《道德经》(拼音版)
- 幼儿园认识田字格学前教育课件
- 节约集约建设用地标准 DG-TJ08-2422-2023
- 2024年“泰山杯”山东省网络安全职业技能竞赛理论试题库(含答案)
- 2024数据中心基础设施运行维护管理规范
- 化工原理期末考试试题库含答案
- 原发性高血压与继发性高血压
- 被殴打起诉状
- 《市场营销学》吴建安
- 土建工程竣工结算报告
评论
0/150
提交评论