电气单片机课程设计任务书11.docx
- 文档编号:27465587
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:12
- 大小:1.05MB
电气单片机课程设计任务书11.docx
《电气单片机课程设计任务书11.docx》由会员分享,可在线阅读,更多相关《电气单片机课程设计任务书11.docx(12页珍藏版)》请在冰豆网上搜索。
电气单片机课程设计任务书11
课题:
基于AT89C51单片机的LED数字倒计时器设计
专业:
电气工程及其自动化
班级:
电气理科4班
学号:
14153264
姓名:
刘永欢
指导教师:
周冬芹
设计日期:
2016.12.03
成绩:
重庆大学城市科技学院电气学院
基于AT89C51单片机的LED数字倒计时器设计设计报告
一、设计目的作用
1、掌握51单片机最小系统的设计;
2、掌握按键电路设计、LED数码管的使用;
3、掌握C51的编程方式。
二、设计要求
基于AT89C51单片机的LED数字倒计时器主要具有如下功能,具体要求如下:
1.LED数码管显示倒计时时间。
2.倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出2s的报警声音。
(K1设置小时,K2设置分钟,K3设置秒钟,K4完成退出)
3.通过按键可以对倒计时设定处置。
倒计时初值范围在24:
00:
00~00:
00:
60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。
三、设计的具体实现
1、设计原理
以AT89C51单片机为核心控制器,主要以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。
此电路对倒计时器中的LED数码管显示器来说,采用以软件为主的接口方法,即用软件程序进行译码。
通过按键输入来控制显示器的显示,在上电时LED显示器开始显示时间,在按键电路中设置了6个按键,通过检测第2个按键开始倒计时,通过检测第3,4,5个按键按下的次数来实现小时,分和秒的调时的加减,检测第1个按键(由最小开发板提供)实现复位,再由LED显示器显示时,分和秒的改变。
LED数字倒计时器主要由AT89C51单片机,晶振电路,复位电路,按键电路,数码管电路,蜂鸣电路组成。
该系统设计框图如下图所示:
LED数字倒计时器系统设计框图
2、系统设计
(1)晶振电路的分析
a.晶振电路原理:
晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路。
当电路中的激励电信号和晶振的频率相同时,电路就能输出信号强大,频率稳定的正弦波。
整形电路再将正弦波变成方波送到数字电路中供其使用。
b.晶振电路的特点:
晶振是石英振荡器的简称,晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。
它是时钟电路中最重要的部件,它的作用是向IC等部件提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。
由于制造工艺不断提高,现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障,但在选用时应注意一下晶振的质量。
晶振电路原理图
(2)复位电路的分析
a.复位电路原理:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。
RC复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降(电池电压不足)等问题,而且调整RC常数改变延时会令驱动能力变差。
左边的电路为高电平复位有效,右边为低电平有效,复位按键为手动复位开关,电容可避免高频谐波对电路的干扰。
b.复位电路的作用:
复位电路是为确保微机系统中电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
复位电路原理图
(3)按键电路的分析
a.按键电路的原理:
按键B1/B2/B3/B4/B5断P1.0/P1.1/P1.2/P1.3/P1.4输入为高电平;按键B1/B2/B3/B4/B5闭合后,P1.0/P1.1/P1.2/P1.3/P1.4输入为低电平。
每按一次按键,就会有一次低电平,单片机就会对低电平计数,从而来调节定时时间。
由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,这种抖动对于计算机来说,是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级。
你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了,所以必须运用延时程序消除按键的抖动。
b.按键电路的作用:
每次复位之后,三个两位数码管全部都会显示为0,而与P1.0相接的按钮B1,每次按下一次,就会产生一次低电平,单片机就会计数一次,从而调节倒计时的小时时间,B2则调节分钟,B3则调节秒钟,与这三个按键分别控制数码管的显示倒计时的小时、分钟、秒。
与这三个按键不同的是,按键B4的作用是开始倒计时,B5按键的作用是进入设置闹钟功能。
这些按键的功能都是通过编程来控制的。
按键电路原理图
(4)数码管电路的分析
1.数码管电路的组成:
A.六位数码管:
分别显示小时,分钟和秒钟。
B.含有八个电阻带电源的排阻:
分别与三个数字显示的数码管并联,电源给数码管提供电压,电阻的作用是保护数码管不被烧坏。
C.将PO口的八位与数码管和排阻连载一起的导线,将P2口的六位分别与六位数码管的六个位选引脚接在一起。
2.数码管电路的原理:
7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。
发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管。
数码管电路
(5)蜂鸣电路的分析
a.蜂鸣电路的组成:
两个阻值为一千欧姆的电阻,一个阻值为100欧姆的电阻,一个蜂鸣器,一个三极管,一个接地,以及导线。
b.蜂鸣电路的原理:
蜂鸣电路是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。
在程序上,可以使用TIMER0来定时,将TIMER0的预分频设置为/1,选择TIMER0的始终为系统时钟(主振荡器时钟/4),通过按键可以在TIMER0的载入/计数寄存器内调节设置时间,就能将TIMER0的中断设置设置为倒计时时间,当需要I/O口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0中断的时候对该I/O口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O口的电平设置为低电平即可。
不鸣叫时将I/O口的输出电平设置为低电平是为了防止漏电。
蜂鸣电路原理图
3、系统实现
(1)焊接实物
(2)LED数字倒计时器仿真图
四、总结
对于这次课程设计,我们感受良多,这既是对单片机课程理论内容的一次
复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等。
在这次实验中也遇到了很多问题:
如在proteus中设计好原理图后,发现运行不了,数码管不亮,不能实现倒计时的功能,经过检查之后发现电路原理图画错了,数码管电路连线错误导致数码管不亮;还有就是焊接电路板的时候,容易漏焊导致板子不能实现相应的功能。
此外,在这次实验中,还应注意小组之间的分工团结协作,难免会和组员产生意见分歧,以及分工明细等问题,通过这次设计,我们体会到了团结合作的重要性,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。
从这课程设计中,我学会使用keil软件来实现c语言编程来控制单片机,以及运用proteus软件画电路原理图并进行运行仿真。
此外,还要查阅许多的资料来填补知识的空缺,学好单片机原理相关知识对我们来说是不可或缺的,最后老师的提问让我们对单片机有了更为深入、更加清晰的了解。
5、附录
(1)元器件明细表:
元件名称
型号
数量
单片机最小开发板
STC89C52
1
电阻
10K
1
按键
5
数码管2位一体
共阳
3
集成块
74LS245
3
三极管
9015
1
蜂鸣器
1
电阻
1K
2
电阻
100Ω
1
电阻
2.7K
4
电阻
330Ω
8
集成块
74LS07
1
AC/DC(5V/1A)电源
1
单排插针40
2
双排插针40
2
9X15cm万用板(3连孔)
1
杜邦线
15
(2)程序清单:
LED数字倒计时器闹钟功能的C语言程序编码
#include
=0){for(j=0;j<200;j++){;}}}voidTimer_Init(){TMOD=0x01;//选择工作方式1TH0=(65536-50000)/256;//设置初始值50msTL0=(65536-50000)%256;EA=1;//打开总中断ET0=1;//打开定时器0中断//TR0=1;//启动定时器0}voidDisplay(void){WX=wm[1];//第一个数码管Date=0x00;Date=seg[shi/10];delay
(1);WX=wm[2];//第二个数码管Date=0x00;Date=seg_d[shi%10];delay
(1);WX=wm[3];//第三个数码管Date=0x00;Date=seg[fen/10];delay
(1);WX=wm[4];//第四个数码管Date=0x00;Date=seg_d[fen%10];delay
(1);WX=wm[5];//第五个数码管Date=0x00;Date=seg[miao/10];delay
(1);WX=wm[6];//第六个数码管Date=0x00;Date=seg[miao%10];delay
(1);}voidDisplay_A(void){WX=wm[1];//第一个数码管Date=0x00;Date=seg[A_shi/10];delay
(1);WX=wm[2];//第二个数码管Date=0x00;Date=seg[A_shi%10];delay
(1);WX=wm[3];//第三个数码管Date=0x00;Date=seg[A_fen/10];delay
(1);WX=wm[4];//第四个数码管Date=0x00;Date=seg[A_fen%10];delay
(1);WX=wm[5];//第五个数码管Date=0x00;Date=seg[A_miao/10];delay
(1);WX=wm[6];//第六个数码管Date=0x00;Date=seg[A_miao%10];delay
(1);}voidDisplay_alm(void){uinti;for(i=0;i<100;i++){WX=wm[1];//第一个数码管Date=0x00;Date=0x77;//Adelay
(1);WX=wm[2];//第二个数码管Date=0x00;Date=0x38;//Ldelay
(1);}Date=0x3f;WX=0x00;}/*voidDisplay_ok(void){WX=wm[1];//第一个数码管Date=0x00;Date=0x3f;//0delay
(1);WX=wm[2];//第二个数码管Date=0x00;Date=0x3e;//Udelay
(1);}*/voidKey_can(void){ucharKey_num=0;//记录键值if((Key&0xff)!
=0xff)//有按键按下{delay
(1);if((Key&0xff)!
=0xff)//有按键按下Key_num=Key;TR0=0;alarm_flag=0;while(Key!
=0xff)//松手检测{if(A_set_flag){Display_A();}else{Display();}}switch(Key_num){case0xfe:
if(A_set_flag){if(A_shi>24)A_shi=0;A_shi++;break;}else{if(shi>24)shi=0;shi++;break;}case0xfd:
if(A_set_flag){if(A_fen>59){A_fen=0;A_shi++;}A_fen++;break;}else{if(fen>59){fen=0;shi++;}fen++;break;}break;case0xfb:
if(A_set_flag){if(A_miao>59){A_miao=0;A_fen++;}A_miao++;break;}else{if(miao>59){miao=0;fen++;}miao++;break;}case0xf7:
A_set_flag=0;TR0=1;//设置完毕退出并打开定时器break;case0xef:
A_set_flag=~A_set_flag;if(A_set_flag)Display_alm();TR0=0;break;}}}voidPro_time(void){if(miao_flag){miao_flag=0;if(miao==0){miao=60;if(fen==0){fen=60;shi--;}fen--;}miao--;}if(A_shi==shi&&A_fen==fen&&A_miao==miao)//if(A_fen==fen)//if(A_miao==miao){BZ=0;delay
(1);BZ=1;//alarm_flag=1;//TR0=1;//miao--;}}voidmain(void){ucharnum=0;Timer_Init();while
(1){Key_can();if(A_set_flag){Display_A();}/*elseif(alarm_flag){Display_ok();//显示定时完毕}*/else{Display();}Pro_time();}}voidTimer0()interrupt1{staticuchartime=0;TH0=(65536-50000)/256;//设置初始值50msTL0=(65536-50000)%256;WX=wm[1];Date=seg_d[1];if(time>=20){time=0;miao_flag=1;}time++;if((shi==0)&&(fen==0)&&(miao==0)){TR0=0;}}
(3)完整电路图
六、参考文献
ISBN978-7-121-14990-0·李群芳,肖看,张士军·单片微型计算机与接口技术·电子工业出版社·2012.01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电气 单片机 课程设计 任务书 11