版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 单片机课程设计 题 目 单片机秒表设计授课教师 董文会 学生姓名 吕丙扬 靳立松 李 扬 学 号 3 6 5 专 业 2010级电子信息工程 教学单位 物理与电子信息学院 完成时间 2013年6月24日专心-专注-专业目录1、 设计的目的及意义···························
2、183;····················12、 设计方案及原理···························
3、83;······················13、 硬件设计与电路设计·························
4、183;···················2 3.1 AT89C51单片机最小系统简介··························
5、3;········2 3.2 复位按键········································
6、·············4 3.3晶振电路···································
7、83;·················4 3.4数码管显示模块······························
8、83;················5 3.5按键开关································
9、·····················5 3.6总电路图···························
10、83;·························64、 软件设计·······················&
11、#183;································6 4.1秒表初始化设计···············&
12、#183;······························6 4.2按键检测程序·················
13、183;··································6 4.3开始计时··············
14、;······································7 4.4计时程序··········
15、183;·········································7 4.5显示程序·······
16、;·············································74.6暂停计时···
17、83;················································74.7秒表清零&
18、#183;·················································&
19、#183;·74.8延时程序···············································
20、;·····8 4.9程序流程图···········································&
21、#183;······8五、总结··········································
22、183;·················9附录································
23、;·······························10参考文献··················
24、;·········································15·1、 设计的目的及意义 单片微型计算机体积小、功能强、性价比高等特点,所以广泛应用于电子仪
25、表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。用AT89C51设计一个3位LED数码显示“秒表”,显示时间为0099秒,每秒自动加一。设计一个“开始”按键和一个“复位”按键。再增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)。二、设计方
26、案及原理 以AT89C51单片机为核心,设计一个秒表,具有计时功能,按键有启动计时、数据清零、停止、时间显示。 采用3个LED数码管显示时间,计时范围设置为099.9秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。系统总体方案如图2.1所示:AT89C513个数码显示管4个独立式按键 11.059MHz晶振电源开关图2.1 系统总设计图三、硬件设计与电路设计 3.1 AT89C51单片机最小系统简介 单片机最小系统由AT89C51、复位按钮、
27、晶振组成。选用频率11.0592MHz晶振,两个30pF电容。如图3.1所示:图3.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口被外部下拉为低电平时,将输出电流
28、,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部
29、上拉电阻的双向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:复位输
30、入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。
31、在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。3.2 复位按键 复位按键如图3.2所示:图3.2 复位按键3.3晶振电路 系统总电路除以上的显示电路,按键电路和复位电路组成外,其次还剩晶振电路和电源电路。再将单片机与以上各部分电路合理的连接就组成了系
32、统总电路。AT89C51单片机为主电路的核心部分,各个电路均为和单片机相连接,由单片机统筹和协调各个电路的运行工作。 AT89C51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的时钟脉冲。 晶振电路如图3.3所示: 图3.3 晶振电路3.4数码管显示模块 显示电路采用3位共阳极LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2 口的低四位作为数码管的位选端。LED1显示秒表的十秒位,LED2显示秒表的秒位,LED3显示
33、毫秒位。复位后显示00.0。如图3.4所示:图3.4 数码管显示模块3.5按键开关 按键开关有4个按键,其中K1为开始按键,K2为暂停按键,K3为快加按键,K4为复位按键。按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“快加”按键,系统每10ms快速加一,即数码管在原先的计数上快速加一。图3.5 按键开关3.6总电路图 将各个模块链接后组成总电路图,如图:3.6所示:图3.6总电路图4、 软件设计4.1秒表的初始化根据程序流程图,先进行秒表的初始化,即:将I/O口P3全写一,为秒表的控
34、制输入做好准备;将数码管全部置零,使其处于秒表计时的初始状态;将工作寄存器R0R2以及30H初始化,留待后面的计时程序备用;将定时器0置于工作方式1,并为其装入计时预置数D8FE(因为程序运行过程中占用的时间会导致一定误差,此为经实物测试之后的修正值),即将定时器定为每10ms溢出;开总中断允许和定时器0中断允许。初始化完成后,即进入之后的按键扫描程序。4.2按键检测程序轮流检测开始计时(P3.2)、暂停计时(P3.3)、秒表清零(P3.4)三个按键。若发现有一个按键出现低电平(可能被按下),则延时10ms(调用延时子程序DELAY),延时完成后,若发现低电平消失,则说明该按键实际上未被按下,
35、此时转回按键检测处继续检测;若发现仍然是低电平,则说明此键确实被按下了,此时就跳转至相应的程序标号处,执行相应的功能。4.3开始计时若确认“开始计时”键被按下,则跳转至程序标号“RUN”处,将定时器0计时允许控制位TR0置位,则定时器开始运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。4.4计时程序定时器0计时至10ms,溢出,引发中断,程序跳转至定时器0中断服务程序入口000BH处执行。程序跳转至中断服务程序TIME0。由于秒表的最小计时单位是0.1s,即100ms,因此需加入软件计时,使定时器0溢出10次之后才改变数码管的显示状态。因此每来一次中断就将30H中的数加1,若30
36、H中的数没有到10,则给定时器0重新装入预置数,之后中断返回并继续等待中断;到10了,才进入显示程序,改变数码管的显示状态,执行完毕之后中断返回并继续等待中断。4.5显示程序将数码管的段选码放在数表TAB中。每秒计时完成后,将R0中的值(初值为0)送入A,然后自加1。若R0中的值没到10,则使用累加器A查表,并将查得的数码管段选码送入毫秒位数码管。之后将30H中的数置零,中断返回。若发现R0中的数到10了,则将R0置零,并转入秒位进位子程序SECOND,向秒位进位之后,继续照常向毫秒位送数。4.6暂停计时若确认“暂停计时”键被按下,则跳转至程序标号“PAUSE”处,将定时器0计时允许控制位TR
37、0置零,则定时器暂停运行。此动作完成后,返回按键检测程序,等待操作者的下一次指令。 4.7秒表清零若确认“秒表清零”键被按下,则跳转至程序标号“STOP”处,将TR0置零,关闭定时器0运行。并且将数码管、工作寄存器、定时器0预置数全部重置,使其处于秒表计时的初始状态。此动作完成后,返回按键检测程序,等待操作者的下一次指令。4.8延时程序用于按键延时防抖,延时10ms。程序清单见附录。 4.9程序流程图 如图4.9所示:图4.8程序流程图五、总结 通过对本次课程的课程设计,使自己深刻的认识到自己的很多不足之处,在实际动手操作能力的不足,在进行程序编程时,自己需要,认真审题,看懂题目的要求!对于软
38、件编程不益太简单或者太难。做到既能把课题完成又能锻炼 自己的能力!根据课题要求,复习相关的知识,查询相关的资料。根据课程条件,找到适合的方案,找到需要的元器件及工具,准备课程。根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序和增加额外的功能程序。然后再进行 程序调试和相应的修改,以达到能够实现所要求的功能的目的。还要根据课程的实际情况,添加些额外程序来使系统更加的稳定,如开关的去抖(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释。这样在程 序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。该课程设计的程序可
39、以参考 MCS-51 系列单片机,也可自己根据自己熟悉的方法来编程如单片机 C 语言。在设计控制开关时,注意两个中断的打开和关闭的先后顺序,否则就会出错。这次的单片机课程设计重点是理论与实际的相结合。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。 附录:#include<reg52.h> /52 系列单片机头文件 #define uchar unsigned char /宏定义#define uint unsigned intsbit dula=P26; /申明 U1 锁存器的锁存端 sbit wela=P27; /申明 U2 锁存器的锁存端 sbit k
40、ey1=P34; /申明四个按键的锁存端sbit key2=P35;sbit key3=P36;sbit key4=P37; uchar code table= /含有 09 的数字数组 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f;void delayms(uint); /声明延时函数void display(uchar,uchar,uchar); /声明显示函数 void keyscan(); /声明按键函数 uchar num1,num2,bai,shi,ge; /变量声明 uint num; void main() /主函数入口
41、 TMOD=0x11; /设置 TO,T1 定时器 TH0=(65536-45872)/256; /装初值11.05992M晶振50ms数为45872 TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; /开总中断 ET0=1; /开启定时器 T0 中断 ET1=1; /开启定时器 T1 中断 while(1) /程序停在这里等待中断的发生,这个大循环也是实现数据显示的主体 keyscan(); /三个数码管要选送的数据 bai=num/100; /百位 shi=(num-100*bai)/10;
42、 /十位 ge=num-100*bai-shi*10; /个位 /直接把第二只数码管的小数点烧出来dula=1; /打开段选 P0=0x80; /送段选数据dula=0; /关闭断选 P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位 锁存端造成混乱 wela=1; /打开位选 P0=0xfd; /送位选数据 wela=0; /关闭位选 delayms(5); /延时 display(bai,shi,ge); void display(uchar bai, uchar shi,uchar ge) dula=1; /打开段选P0=tablebai; /送段选数据 dula=0; /关闭断选 P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存 端造成混乱wela=1; /打开位选 P0=0xfe;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AAA 玻璃有限公司烟气余热发电项目可行性研究报告
- 酒店行业助理的工作概述
- 幼儿园工作总结爱心传递温馨舒适
- 二零二五年度:我国行政合同中优益权在公共服务领域的应用论文3篇
- 2025版物业纠纷调解与法律服务合作协议2篇
- 二零二五年度个人版权保护与维权服务合同2篇
- 2025版食材配送与餐饮加盟合作合同模板3篇
- 二零二五年度能源合同能源管理服务协议范本2篇
- 聚氨酯发泡保温施工方案
- 路灯恢复施工方案
- 前端年终述职报告
- 2024小说推文行业白皮书
- 研究性成果及创新性成果怎么写(通用6篇)
- 特殊感染手术管理考试试题及答案
- 旅馆治安管理制度及突发事件应急方案三篇
- 土地增值税清算底稿中税协版
- 市人民医院关于开展“改善就医感受提升患者体验主题活动”2023-2025年实施方案及资料汇编
- 政绩观存在的问题及整改措施范文(7篇)
- 2023年上海各区初三数学一模卷
- GB 1886.232-2016食品安全国家标准食品添加剂羧甲基纤维素钠
- 《港口管理》课件综述
评论
0/150
提交评论