已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于at89c51的99秒倒计时器设计目录1、 课程设计的目的和要求.12、 题目.13、 主要器件说明.14、 电路设计框图.75、 各部分电路.86、 程序.107、 心得体会.168、 参考文献.16一、课程设计目的和要求1. 目的:(1)培养学生综合运用所学理论知识分析和解决实际问题的能力。(2)锻炼学生的独立工作能力,也是对前期理论与实践教学效果的检验。(3)通过课程设计使学生深入理解单片机的基本原理,硬件结构和工作原理。掌握程序的编制方法和程序调试的方法,掌握常用接口的设计及使用。掌握一般接口的扩展方法及接口的调试过程。为学生将来在电子信息工程、测试计量技术及仪器、通信工程、电子科学与技术及其他领域应用单片机技术打下良好基础及应用实践能力。2.要求:本课程设计重视培养并提高学生创新设计能力、理论与实际相结合的综合素质、单片机系统硬件设计能力,软件编程技巧,软硬件联合调试技巧及技能等实践能力。(1)选题要求:满足课程设计的教学目的与要求,使学生得到全面的综合训练,题目难度和工作量应适合学生的知识和能力状况。(2)学生根据课程实际任务书的要求合理地安排设计进度,(3)学生对自己课程设计的题目,应概念清楚,设计方案合理,硬件设计正确,程序编制正确合理,调试结果符合设计要求,课程设计报告书撰写规范。2、 题目 实现最长99s的倒计时功能;利用数码管或液晶屏显示数字;利用按键可以设置倒计时时间;设置倒计时开始启动键;时间到,声(光)报警,示意倒计时时间到。三、所需主要器件说明 at89c51单片机1个、两位动态共阴数码管1个、9个引脚的排阻、电阻3个、12mhz晶振1个、33pf电容2个、10uf极性电容1个、独立按键1个、4行3列矩阵按键1个、led指示灯1个、电源和地若干声光报警 单片机at89c51 开始启动键数字显示 复位电路电源 振荡电路1、at89c51 at89c51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89c51可为许多嵌入式控制应用系统提供高性价比的解决方案。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 其工作电压在4.55v,一般我们选用5v电压。外形及引脚排列如图2所示 图二 at89c51外形及引脚l 主要特性与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24mhz三级程序存储器锁定1288位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 l 管脚说明 (1)电源及时钟引脚(4个) vcc: 电源接入引脚 vss:接地引脚 xtal1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地); xtal2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振 荡器信号的输入端)。 (2)控制线引脚(4个) rst/vpd:复位信号输入引脚/备用电源输入引脚; ale:地址锁存允许信号输出引脚/编程脉冲输入引脚: ea:内外存储器选择引脚/片外eprom编程电压输入引脚; psen:外部程序存储器选通信号输出引脚。 (3)并行i/o引脚 p0.0-p0.7:一般i/o口引脚或数据/低位地址总线复用引脚; p1.0-p1.7:一般i/o口引脚; p2.0-p2.7:一般i/o口引脚或高位地址总线引脚; p3.0-p3.7:一般i/o口引脚或第二功能引脚l 振荡器特性:xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2、led数码管显示器概述本设计中采用的是7segmpx2-ccblue型号双数码管,它是一种半导体发光器件,其基本单元是发光二极管。实物如图3所示: 图3 共阴双数码管 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。led数码显示器的显示段码。 为了显示字符,要为led显示器段码(或称字形代码),组成一个8字形字符的7段,再加上1个小数点位,共计8段,因此提供给led显示器的显示段码为1个字节。各段码位的对应关系如下表所示.十六进制数及空白字符与p的显示如下表:段码位 d7 d6 d5 d4 d6 d2 d1 d0 显示段 pd g f e d e b a 字型 共阳极段码 共阴极段码 字型 共阳极段码 0 c0h 3fh 9 90h 1 f9h 06h a 88h 2 a4h 5bm b 83h 3 b0h 4fh c c6h 4 99h 66h d a1h 5 92h 6dh e 86h 6 82h 7dh f 84h 7 f8h 07h 空白 ffh 8 80h 7fh p 8ch 3、矩阵键盘 在键盘中按键数量较多时,为了减少i/o口的占用,通常将按键排列成矩阵形式,如图3所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接 图3 4行3列矩阵键盘四、程序框图动态数码管的显示键盘扫描主程序程序初始化上电 上电 输入数字开始倒计时 num-num=0?ny停止计时,并声光报警 主程序 五、部分电路连接1、矩阵按键扫描函数ankey()矩阵按键的原理和方法:矩阵按键的两端都与单片机的i/o口相连,在检测时,人为的通过单片机i/o口送出低电平。检测时,先送一行为低电平,其余几列全为高电平,确定行数,然后立即轮流检测一次各列是否有低电平,若检测到某一行为低电平,则确定列数,这样就可以确定按下那个数字。本设计用的是4行3列矩阵按键,它接at89c51单片机的p1口,接法如图所示:当按下09数字键时,会产生相应数值赋给矩阵按键扫描函数中以定义的参数key,当按下*或#键时,会分别产生10或11赋给key。若key=10,则将前面按下的数字送给显示器;若key=11时调用对矩阵按键扫描进行相应处理函数text(uchar )且key赋给它,text(uchar )函数对key值进行相应处理:如果只按下一次数字键,那这数字就会是倒计时的个位,如果按下两次数字键,那第一次的数字就会是倒计时的十位,第二次数字的数字就会是倒计时的个位,当按下#或*键时,开始倒计时。2、动态数码管显示函数动态数码管显示就是轮流向各位数码管送出段选及相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人眼感觉各位数码管同时都在显示,实际上多位数码管是一位一位轮流显示的,只是轮流比较快,我们分辨不出来。本设计用的是两位动态共阴数码管显示,它和单片机的连接如图所示:其中那排阻是驱动电路。3、复位电路如图:rst为复位信号输入端,高电平有效。系统上电后,当已经进行过倒计时,这时想进行不同时间的倒计时,只要按下复位按钮后,就可以进行新的倒计时。4、总电路图六、总体程序#include #define uchar unsigned char#define uint unsigned int sbit sw=p06;/十位位选sbit gw=p07;/个位位选sbit led=p37;/led灯uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/编码定义uchar numt0,num;void delayms(uint);void text(uchar);void display(uchar numdis) /动态数码管显示子函数uchar shi,ge; /分离两个分别要显示的数shi=numdis/10;ge=numdis%10; sw=0;p2=tableshi; /送十位段选数据delayms(5);/延时sw=1;gw=0;p2=tablege; /送个位段选数据delayms(5);gw=1;void delayms(uint x)/延时x msuint i,j;for(i=x;i0;i-) /i=x即延时约x毫秒for(j=110;j0;j-);void ankey() /键盘扫描uchar temp,key;p1=0xf7;/第1行 11110111 temp=p1; temp=temp&0xf0;/temp低4位清0; if(temp!=0xf0) /判断是否有键按下 delayms(5); /延时,消除抖动 temp=p1; /重新读取p1口 switch(temp)/判断哪个键按下 case 0xe7: key=1; break; case 0xd7: key=2; break; case 0xb7: key=3; break; text(key); while(temp!=0xf0)/判断按键是否释放 temp=p1; temp=temp&0xf0; p1=0xfb;/第2行 temp=p1; temp=temp&0xf0; if(temp!=0xf0) delayms(5); temp=p1; switch(temp) case 0xeb: key=4; break; case 0xdb: key=5; break; case 0xbb: key=6; break; text(key); while(temp!=0xf0) temp=p1; temp=temp&0xf0; p1=0xfd;/第3行 temp=p1; temp=temp&0xf0; if(temp!=0xf0) delayms(5); temp=p1; switch(temp) case 0xed: key=7; break; case 0xdd: key=8; break; case 0xbd: key=9; break; text(key); while(temp!=0xf0) temp=p1; temp=temp&0xf0; p1=0xfe;/第4行 temp=p1; temp=temp&0xf0; if(temp!=0xf0) delayms(5); temp=p1; switch(temp) case 0xee: key=10; break;case 0xde: key=0; break; case 0xbe: key=11; break; text(key); while(temp!=0xf0) temp=p1; temp=temp&0xf0; void text(uchar key)/判断键盘扫描结果,并倒计时static uchar n,bb,s;/静态局部变量s=1;if(key=0|key=1|key=2|key=3|key=4|key=5|key=6|key=7|key=8|key=9)n+;/有数字键被按下,n加1if(key=10)n=3; /*被按下,n置3if(key=11)n=4;/#被按下,n置4switch(n)case 1: bb=key;key=20;display(bb);break;/第1次按下数字键case 2: bb=bb*10+key;n=0;key=20;display(bb);break;/第2次按下数字键 case 3: num=bb;break;/显示倒计时时间case 4: num=bb;/开始倒计时while(s=1)tr0=1;/启动定时器0中断if(numt0=20)/如果到了20次,说明1秒时间到numt0=0;/然后把numt0清0重新再计20次num-;/num自减if(num=0)/如果num等0 tr0=0;/关闭定时器0中断s=0; /退出循环led=0;/点亮led灯display(num);/显示num break;void init() /初始化函数 tmod=0x01;/设置定时器0为工作方式1(0000 0001)th0=(65536-50000)/256;/装初值50ms一次中断tl0=(65536-50000)%256;ea=1; /开总中断et0=1; /允许定时器0中断tr0=0; /定时器0计时开始sw=1;/关数码管十位位选gw=1; /关数码管个位位选void main()/主函数init();/初始化函数num=0;while(1) /循环ankey(); /键盘扫描display(num);/动态数码管显示void t0_time() interrupt 1/定时器0中断函数th0=(65536-50000)/256;/重装初值(晶振为12mhz时为定时50毫秒)tl0=(65536-50000)%256;numt0+;/50ms
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省吉林市第一中学2026届化学高二上期末教学质量检测模拟试题含答案
- 安徽省芜湖市城南实验中学2026届高一化学第一学期期中质量跟踪监视模拟试题含解析
- 汽博会招聘面试题及答案
- 评级授信面试题及答案
- 暖通面试题及答案
- 宁津幼儿面试题及答案
- 某厂面试题及答案
- 面试幼师面试题目及答案
- 2026届上海市华实高中高二上化学期中达标检测模拟试题含解析
- 2025工程造价咨询服务合同范本
- 寺院义工班管理制度
- 国开2023秋《思想道德与法治》专题测验试题1-17参考答案
- 中药煎煮方法ppt
- 职业健康知识培训培训培训课件
- 2023年浙江省宁波余姚市事业单位招聘(93人)(共500题含答案解析)高频考点题库参考模拟练习试卷
- 《数字景观进展》
- 2023版押品考试题库必考点含答案
- 类固醇糖尿病优质课件
- 煤矿安全设施设计验收申报材料汇编
- 公司律师管理办法
- 房地产公司中期诊断报告
评论
0/150
提交评论