




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代制造学院09级课程设计说明书设计课题名称:基于单片机控制的秒表设计与实现 专 业 班 级: 设 计 人: 学 号: 目录1、硬件设计 3 1.1、总体方案的设计 3(1)具体控制要求 3(2)硬件连接框图 3 1.2、单片机的选型 3 1.3、显示电路的选择与设计 7 1.4、按键电路的选择与设计 8 1.5、时钟电路的选择与设计 9 1.6、复位电路的选择与设计 9 1.7、系统总电路的设计102、软件设计10 2.1、程序设计思想10 2.2、系统资源的分配10 2.3、主程序设计11(1)主程序流程图11(2)主程序源程序12 2.4、中断程序设计13(1)中断子程序流程图13(2)中断子程序源程序143、数字电子秒表的安装与调试15 3.1、硬件的安装与调试15 3.2、软件的仿真与调试16 3.3、系统程序的烧录173.4数字电子秒表的精度调试 18结论19附录A 秒表源程序 20附录B 电路原理图 22附录C 实物图 23第一部分 硬件设计1.1总体方案设计(1)具体控制要求采用2位共阳数码管通过单片机控制显示数字码显示秒数(2)硬件连接框图1.2单片机的选型本设计方案的核心选用ATMAL公司的89C51单片机。AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示(1)单片机引脚:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。(2)单片机中断系统80C51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套 。一、中断源1、INT0(P3.2)。可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。2、INT1(P3.3)。可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。3、TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。4、TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。 二、中断请求标志1、TCON的中断标志IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。 2、SCON的中断标志RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。 80C51中断的控制 一、中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断1允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA (IE.7), CPU中断允许(总允许)位。二、中断优先级控制 80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。PX0(IP.0),外部中断0优先级设定位;PT0(IP.1),定时/计数器T0优先级设定位;PX1(IP.2),外部中断0优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS (IP.4),串行口优先级设定位。1.3显示电路的选择与设计运用单片机控制秒表,该秒表可显示0到59秒的时间,用三个按键分别实现秒表的启动,停止和清零,用两个LED数码管分别显示个位,十位。选择共阳极的双位数码管一个,电阻选择1K10个,NPN型的三极管二个1.4按键电路的选择与设计选择电阻10K四个,电动按钮四个 1.5时钟电路的选择与设计1.6复位电路的选择与设计1.7系统总电路的设计AT89C51第二部分 软件设计2.1程序设计思路程序整体结构清晰、简洁、流程合理,主程序尽可能简单明了;各种功能的实现采用模块化、子程序化,便于阅读连接修改。按总体要求划分出各功能程序模块,分别确定主程序,子程序及中断服务程序结构。主程序,DISP显示子程序,定时器中断服务子程序CONT,按键0、1、2中断服务子程序2.2系统资源的分配2.3主程序设计(1)主程序流程图(2)主程序源程序;-主程序-;-初始化部分-MAIN: MOV TMOD,61H ;置T0方式1定时,T1方式2计数 MOV TH0, #3CH ;T0置初值 MOV TL0, #0B0H; MOV TH1, #0FFH ;T1置初值 MOV TL1, #0FFH MOV SEC, #00H ;60s计数单元置初值 MOV MSEC, #0AH ;置50ms循环次数初值 MOV SP, #3FH ;堆栈指针置初值 MOV 30H, 00H ;个位清0 MOV 31H, 00H ;十位清0 MOV IE, #8FH ;打开中断源 SETB TR1 ;启动定时器1 CLR A ;累加器清0.显示程序部分-DISP: MOV R2, #02H ;LED待显示位数送R2 MOV R1, #02H ;设定显示时间 MOV R4, #0FDH ;选中最右端LED MOV R0, #30H ;显示缓冲区首址送R0 MOV A, R0 ;秒显示个位送ADISP1: MOV DPTR, #TAB MOVC A, A+DPTR ;查表取得字形码 MOV P1, A ;字形码送P1口 MOV A, R4 ;取位选字 MOV P2, A ;位码送P2口 DJNZ R1, $ ;延时0.5ms DJNZ R1, $ ;延时0.5ms RR A ;位选字移位 MOV R4, A ;移位后的位选字送R4 INC R0 ;指向下一位缓冲区地址 MOV A, R0 ;缓冲区数据送A DJNZ R2, DISP1 ;未扫描完,继续循环 SJMP DISP TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ;共阳极LED字型表 DB 92H, 82H, 0F8H, 80H, 90H2.4中断程序设计(1)中断子程序流程图(2)中断子程序源程序;-按键0中断服务程序-;功能:启动KE0: SETB TR0 ;启动定时器0,开始计时 RETI;-按键1中断服务程序-;功能:暂停KE1: CLR TR0 ;关闭定时器0,暂停计时 RETI ;中断返回;-按键2中断服务程序-;功能:清0KE2: MOV SEC,#00H ;秒清0 MOV 30H,#00H ;个位清0 MOV 31H,#00H ;十位清0 RETI;-定时器0中断服务程序-;功能:秒值的刷新,产生50ms中断溢出CONT: PUSH ACC ;保护现场 MOV TH0, #3CH ;定时器T0重置初值 MOV TL0, #0B0H DJNZ MSEC, EXIT ;判断是否到1s? MOV MSEC, #0AH ;若到1s,则重置50ms初始值 INC SEC ;秒单元加1 MOV A, SEC CJNE A, #60, CHAI ;判断秒是否到60? MOV SEC, #00H ;到60后,清0CHAI: MOV A, SEC MOV B, #10 DIV AB ;秒单元内容除以10 MOV 31H, A ;秒的十位送显示缓冲区31H MOV 30H, B ;秒的个位送显示缓冲区30HEXIT: POP ACC ;恢复现场 RETI ;中断返回第三部分 数字电子秒表的安装与调试3.1硬件的安装与调试3.2软件的仿真与调试 本次仿真使用伟福6000仿真软件把所有的程序输入后就全部编译,直到全部编译成功,保存文件3.3系统程序的烧录3.4数字电子秒表的精度调试结论:通过这次的课程设计,实验利用单片机的定时器/计数器定时和计数的原理。使我对单片机程序设计的方法、要求有了初步的了解并且积累了一些实践经验,对软件的应用有了更进一步的了解,相信对以后进一步学习单片机知识,这对自己无论是在感性上还是理性上都会有一定的帮助,而且通过这次的设计,激发了我对单片机课程产生兴趣,增强了我对书本理论的运用。虽然现在对所涉及知识和要求的综合分析能力较为复杂,可这其中体现了创新思想和知识的结合应用,今后我将更广泛地涉及这方面的知识,希望能有所作为。附录A 程序:SEC EQU 20H MSEC EQU 21H ORG 0000H AJMP MAIN ORG 0003H AJMP KE1 ORG 000BH AJMP CONT ORG 0013H AJMP KE0 ORG 001BH AJMP KE2;-主程序-;-初始化部分-MAIN: MOV TMOD,61H ;置T0方式1定时,T1方式2计数 MOV TH0, #3CH ;T0置初值 MOV TL0, #0B0H; MOV TH1, #0FFH ;T1置初值 MOV TL1, #0FFH MOV SEC, #00H ;60s计数单元置初值 MOV MSEC, #0AH ;置50ms循环次数初值 MOV SP, #3FH ;堆栈指针置初值 MOV 30H, 00H ;个位清0 MOV 31H, 00H ;十位清0 MOV IE, #8FH ;打开中断源 SETB TR1 ;启动定时器1 CLR A ;累加器清0.显示程序部分-DISP: MOV R2, #02H ;LED待显示位数送R2 MOV R1, #02H ;设定显示时间 MOV R4, #0FDH ;选中最右端LED MOV R0, #30H ;显示缓冲区首址送R0 MOV A, R0 ;秒显示个位送ADISP1: MOV DPTR, #TAB MOVC A, A+DPTR ;查表取得字形码 MOV P1, A ;字形码送P1口 MOV A, R4 ;取位选字 MOV P2, A ;位码送P2口 DJNZ R1, $ ;延时0.5ms DJNZ R1, $ ;延时0.5ms RR A ;位选字移位 MOV R4, A ;移位后的位选字送R4 INC R0 ;指向下一位缓冲区地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校幼儿园自评报告
- 凉州词王瀚教学课件
- 新解读《GB-T 36773 - 2018竹制品检疫处理技术规程》
- 用电应急知识培训内容课件
- 生鲜期货基础知识培训课件
- 生物采样基础知识培训课件
- 急性淋巴细胞白血病护理查房
- 2025年小学数学毕业升学考试易错题型强化训练模拟试卷
- 白塞病血管病变护理查房记录
- 2025至2030中国分布式能源行业产业运行态势及投资规划深度研究报告
- 2025四川成都农商银行招聘综合柜员岗4人模拟试卷带答案详解
- 2025年辅警考试公共基础知识真题库(含答案)
- 2022版《义务教育数学课程标准》测试卷(完整版含答案)
- 2025行政执法人员考试题库含答案
- 联通校招测评题库及答案
- 儿科护理进修
- 2025年安防生产行业技能考试-安全防范系统安装维护员历年参考题库含答案解析(5套共100道单选合辑)
- 2024年西藏米林县人民医院公开招聘护理工作人员试题带答案详解
- 2025年新版保安员考试试题附(答案+解析)
- 2025年中级注册安全工程师《道路运输安全实务》考试真题及答案
- 监察法专题培训课件
评论
0/150
提交评论