倒计时器课程设计.docx
- 文档编号:2896395
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:23
- 大小:191.84KB
倒计时器课程设计.docx
《倒计时器课程设计.docx》由会员分享,可在线阅读,更多相关《倒计时器课程设计.docx(23页珍藏版)》请在冰点文库上搜索。
倒计时器课程设计
河南机电高等专科学校
课程设计报告书
课程名称:
单片机原理及系统设计
课题名称:
倒计时器课程设计
专业:
计算机控制技术
班级:
学号:
姓名:
成绩:
2013年12月30日
目录
1.设计目的1
2.设计准备……………………………………………………………1
3.设计要求和设计指标1
4.设计内容2
4.1硬件部分2
4.1.1硬件部分工作原理…2
4.1.2设计原理4
4.1.3PCB图及PCB库…8
4.2软件部分11
4.2.1程序流程图…12
5.本设计改进建议12
6.总结(感想和心得等)13
7.主要参考文献13
附录13
1、设计目的
1)掌握利用keiluv4进行软件的编程及编译。
2)加深对单片机原理及系统设计课程的理解。
3)掌握倒计时的设计原理和方法。
4)加深用Protel99SE进行原理图的绘制、原理图库创建、PCB的生成及PCB库的创建的操作方式。
2﹑设计准备
1)单片机STC89C52RC、数码管、74HC573锁存器、按键及其他元件。
2)软件keiluv4和Protel99SE。
3、设计要求和设计指标
1)设计要求
①设计一个倒计时电路,并具有显示功能。
②设置外部操作键,能对倒计时器进行修改、启动、停止和清零。
③当计时器递减为零时,实现声光报警(蜂鸣器鸣叫,LED灯闪烁),当重新计时时,报警关闭。
④利用六位数码管的动态显示,来显示倒计时时间(时、分、秒),中间利用小数点隔开。
⑤当利用外部功能键设置时间时,利用三个LED灯来区分修改的是小时、分钟还是秒。
2)设计指标
①具有基本的倒计时功能。
②具有暂停、清零和报警的功能
③可以任意设置时间。
④开始时显示为六个零。
4、设计内容
4.1硬件部分
4.11硬件部分工作原理
1)显示部分
利用六位七段数码管的动态显示,用来显示倒计时间和设置时间。
数码管采用共阴极接法,当阳极接入高电平时,数码管显示,位选送入低电平时,数码管被选中可以参与显示(位选),再送入段选数值。
段选采用共阴极接法,送入高电平可显示数值,如图1-3。
利用D8、D7、D6三个数码管用于显示功能键。
2)按键部分
利用51单片机P3端口独立键盘,即P3^4﹑P3^5、P3^6、P3^7(如图1-8)。
按键检测流程如图1-2所示,程序中用延时10ms的方式进行消抖。
按键S1为复位按键。
3)定时器部分
用定时器T0和定时器T1,软启动、工作方式1。
运用时首先打开全局中断、定时器1中断和定时器0中断才能运行。
装入初值时,因为晶振频率为11.0592MHZ(如图1-5),所以一个机器周期为1.09us,计算65536个数字小于1s,所以应装初值为:
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
运行20次就1s。
4)报警部分
当倒计时减为零时,用P1端口P1^0LED灯1s闪烁,蜂鸣器发声报警。
LED灯为共阳极接口,当送入低电平时发光,蜂鸣器图1-1,与单片机相连如图1-9.
图1-2按键检测流程图
图1-1蜂鸣器原理图
4.1.2、设计原理
sbitkey1=P3^4用于启动倒计时和停止倒计时。
sbitkey1=P3^5切换功能键(当第一次按下时切换到sec,此时D6灯亮。
当第二次按下时切换到min,此时D7灯亮。
当第三次按下时切换到hour,此时D8灯亮)。
sbitkey1=P3^6设定数值(当D6灯亮时sec++,当D7灯亮时min++,当D8灯亮时hour++。
)。
sbitkey1=P3^7清零。
六位数码管:
前两位显示小时,中间两位显示分,最后两位显示秒。
中间用小数点隔开。
图1-3六位数码管原理图
图1-4STC89C52RC单片机原理图
图1-5复位电路及时钟原理图
图1-6锁存器原理图
图1-7led灯连接原理图
图1-8按键连接原理图
图1-9蜂鸣器连接原理图
图1-10原理图
原理图介绍:
STC89C52RC单片机采用DIP40封装,电阻采用AXIAL0.4封装,led灯采用DIODE0.4封装,数码管采用SMG封装(如图1-13),蜂鸣器采用beep封装(如图1-11),按键采用S1封装(如图1-12),电容采用RAD0.1封装,极性电容采用RB.2/.4封装,晶振采用XTAL1封装,三极管采用TO-92B封装。
(PCB库如图1-11所示)
4.1.3PCB图与PCB库
Protel99SE是ProklTechnology公司基于Windows环境下开发的电路板设计软件。
该软件功能强大,人机界面友好,易学易用,是大中专院校电学专业必学课程,同时也是业界人士首选的电路板设计工具。
Protel99SE由两大部分组成:
电路原理图设计(AdvancedSchematic)和多层印刷电路板设计(AdvancedPCB)。
其中AdvancedSchematic由两部分组成:
电路图编辑器(Schematic)和元件库编辑器(SchematicLibrary)。
图1-11蜂鸣器封装图(beep)
图1-12按键的封装图(S1)
图1-13数码管的封装图(SMG)
图1-14PCB封装图
4.2软件部分
Keil软件介绍:
支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。
KEILC51开发工具旨在解决嵌入式软件开发商面临的复杂问题。
当你开始一个新项目,只需简单的从设备数据库选择使用的设备,uVisionIDE将设置好所有的编译器、汇编器、链接器和存储器选项。
包含大量的例程,帮助你着手使用最流行的嵌入式8051设备。
KeilμVision调试器准确地模拟8051设备的片上外围设备(IC、CAN、UART、SPI、中断、I/O端口、A/D转换器、D/A转换器和PWM模块)。
模拟帮助你了解硬件配置,避免在安装问题上浪费时间。
此外,使用模拟器你可以在没有目标设备的情况下编写和测试应用程序。
当你准备在目标硬件上测试软件应用时,可以使用MON51、MON390、NONADI、或者FlashMON51目标监视器、ISD51In-System调试器、ULINKUSB-JTAG适配器在目标系统上下载并测试程序代码。
4.2.1程序流程图
图1-12程序流程图
4、本设计改进建议
①可以设计让其正计时,当计时时间到时报警。
②不用数码管,用1602液晶显示。
③程序中设计时,设置只能加,不能减,可以设计让其可以减。
④利用矩阵键来设计。
5、总结(感想和心得等)
单片机是我们重要的一门课程,因为在生活中有很多地方都运用了单片机方面的知识,例如我们的手表、计算器、充电器等等,都运用到单片机方面的知识。
经过多天的设计,设计基本完成,从中学习了很多知识。
也知道了设计是多么不容易的事情,需要很多知识才能设计出来。
从这几天的设计中,学习到了很多知识,加深了对学到的知识的理解,使对以前学习的知识有了深刻的理解。
而且在设计发现好多知识在课本中没有,还有许多知识记不住,基础知识没掌握好,明白了不能只读书,还要多操作单片机,不断地学习。
6、主要参考文献
[1]《单片机原理及运用》主编董少明中国铁道出版社2007.11出版
[2]《模拟电子技术》主编杨毅德重庆大学出版社2004出版
[3]《8051单片机实践与应用》主编吴金戌沈庆阳清华大学出版社2002出版
附录
C语言程序:
#include
#defineucharunsignedchar(宏定义)
#defineuintunsignedint
sbitdula=P2^6;(声明变量,锁存器U3、锁存器U4、位选端、led灯、蜂鸣器和四个按键)
sbitwela=P2^7;
sbitkey1=P3^4;
sbitkey2=P3^5;
sbitkey3=P3^6;
sbitkey4=P3^7;
sbitbeep=P2^3;
sbitled=P1^0;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};(定义共阴数码管编码)
ucharsec,min,hour,temp1,num1,num2,temp2;(定义所需使用的变量)
voiddelay(uintxms)(延时程序)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay(ucharhour,ucharmin,ucharsec)(显示程序)
{
uchars1,s2,m1,m2,h1,h2;
s2=sec/10;(分开秒的十位和各位)
s1=sec%10;
m2=min/10;(分开分的十位和各位)
m1=min%10;
h2=hour/10;(分开时的十位和各位)
h1=hour%10;
dula=1;(打开U4锁存端)
P0=table[h2];(送入段选信号)
dula=0;(关闭U4锁存端)
P0=0xff;(消影)
wela=1;(打开U3锁存端)
P0=0xfe;(送入位选信号)
wela=0;(关闭U3锁存端)
delay
(1);(延时1毫秒)
dula=1;
P0=table[h1]+0x80;(+0x80是为了显示小数点)
dula=0;
P0=0xff;wela=1;
P0=0xfd;wela=0;
delay
(1);
dula=1;
P0=table[m2];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay
(1);
dula=1;
P0=table[m1]+0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay
(1);
dula=1;
P0=table[s2];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay
(1);
dula=1;
P0=table[s1];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay
(1);
}
voidkeyscan()(按键程序)
{
if(key1==0)
{
delay(10);(延时消抖)
if(key1==0)
{
while(!
key1);(检测按键释放)
temp1++;(key1键每按一次temp1加一次)
if(temp1==1)
{TR0=1;(启动定时器T0)
TR1=0;(关闭定时器T1)
}
if(temp1==2)
{TR0=0;
TR1=0;
beep=1;(关闭报警)
led=1;
temp1=0;
}
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
switch(temp2)(当temp2=1时功能键切换到秒,temp2=2时切换到分,temp2=3切换到时)
{
case1:
sec++;if(sec==60)sec=0;break;(秒加一)
case2:
min++;if(min==60)min=0;break;(分加一)
case3:
hour++;if(hour==24)hour=0;break;(时加一)
}
while(!
key3);(检测按键释放)
}
}
if(key2==0)(功能键)
{
delay(10);
if(key2==0)
{while(!
key2);
temp2++;(功能键每按一次temp2加一次,如图1-7当temp2=1时,D4灯亮,表示切换到秒。
当temp2=2时,D3灯亮,表示切换到秒分。
当temp2=3时,D4灯亮,表示切换到时。
)
if(temp2==1)
{P1=0xdf;
}
if(temp2==2)
{P1=0xbf;
}
if(temp2==3)
{P1=0x7f;
}
if(temp2==4)
{temp2=0;
P1=0xff;(关闭所有的灯)
}
}
}
if(key4==0)(清零键并且能关闭报警)
{
delay(10);
if(key4==0)
{while(!
key4);
hour=0;
min=0;
sec=0;
TR0=0;
TR1=0;
beep=1;(关闭声报警)
led=1;(关闭光报警)
}
}
}
voidmain()(主函数)
{
TMOD=0x11;(设置定时器T0、T1为工作方式1,软启动00010001)
TH0=(65536-45872)/256;(装初值为50ms)
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;(开总中断)
ET0=1;(开T0定时器中断)
ET1=1;(开T1定时器中断)
hour=0;(设定开始倒计时初值)
min=0;
sec=60;
while
(1)(大循环)
{keyscan();(检测按键程序)
display(hour,min,sec);(显示)
}
}
voidT0_time()interrupt1
{TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==20)
{num1=0;
if(sec==0)
{if(min==0)
{if(hour==0)
{
;
}
elsehour--;(此时hour不为零)
min=59;
}
elsemin--;(此时min不为零)
sec=59;
}
elsesec--;(此时sec不为零)
if((sec==0)&&(min==0)&&(hour==0))(如果秒为零,分为零,时为零说明倒计时已经完成,开始报警,停止计时)
{TR1=1;
TR0=0;
}
}
}
voidT1_time()interrupt3
{TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
num2++;
beep=0;(蜂鸣器鸣叫)
if(num2==10)
{num2=0;
led=~led;(数码管没0.5s闪烁一次)
keyscan();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计时器 课程设计