单片机课程设计倒数计数器.doc

上传人:文库蛋蛋多 文档编号:4147492 上传时间:2023-04-07 格式:DOC 页数:12 大小:216.50KB
返回 下载 相关 举报
单片机课程设计倒数计数器.doc_第1页
第1页 / 共12页
单片机课程设计倒数计数器.doc_第2页
第2页 / 共12页
单片机课程设计倒数计数器.doc_第3页
第3页 / 共12页
单片机课程设计倒数计数器.doc_第4页
第4页 / 共12页
单片机课程设计倒数计数器.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机课程设计倒数计数器.doc》由会员分享,可在线阅读,更多相关《单片机课程设计倒数计数器.doc(12页珍藏版)》请在三一办公上搜索。

1、1引言本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了。2设计方案及原理设计一个简易的倒数计数器。当键盘按键有按下时,调整计数器值,LCD显示新值。当复位键有按下时,计数器复位为初值,重新倒计数。当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。具体过程:按K1键,则在LCD上显示出设置画面。此时,若: (1) 按K2键-增加倒计数的时间1分钟。 (2) 按K3键-减少倒计数的时间1分钟。 (3) 按K4键-设置完成。3硬件设计3.1 设计说明

2、设计的功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。当倒计数为0时,蜂鸣器就发出音乐声响。该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。总体设计方框图如图所示。LCD1602复位电路AT89C51蜂鸣器键盘 图1 总体设计方框图3.2电路原理图电路原理图连接如图2所示图1 电路原理图4软件设计音乐倒数计数器程序流程图包括主程序流程图,LCD显示流程图以及按键流程图,各流程图如图2,图3,图4所示。 图2 主程序流程图 图3 LCD显示流程图 图4 按键流程图 5系统的仿真与调试本课程设计调试结果详见附录6总结经过设计,简单带

3、有LCD显示的音乐倒数计数器完成,系统基本功能基本实现,测试运行也正常。该系统完成了计数与报警的功能。当然这个系统还存在许多有待完善的地方:(1) 功能相对较少,有待于添加,如时钟与闹钟功能。(2) 界面设计不够精致完美。参考文献1 康华光.陈大钦.电子技术基础模拟部分M.北京:高等教育出版社,2005.2 李朝青.单片机原理及接口技术M.北京:航空航天大学出版社,2005.3 兰吉昌.51单片机应用设计百例M.北京:化学工业出版社,2009.附录1调试结果图图2调试结果图2 程序关键问题的部分代码#include#include#define time 100#define uint uns

4、igned int#define uchar unsigned charuint t,flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;uchar num,j,i,k=0;uchar code table=TIME 00:00;uint code table1=64580,64684,64777,64820,64898,64968,65030;sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit key5=P14;sbit P1_5=P15;sbit RS=P2

5、0;sbit RW=P21;sbit E=P22;sbit led_red=P23;void write_time(uint addr,uint date);/延时函数/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/延时1S/void delay1(void) uchar a,b,c; for(c=13;c0;c-) for(b=247;b0;b-) for(a=142;a0;a-); _nop_;/1602写命令函数/void write_com(uchar com)RS=0;P3=com;delay(5);E=1;de

6、lay(10);E=0;/1602写数据函数/void write_date(uchar date)RS=1;P3=date;delay(5);E=1;delay(10);E=0;/按键1处理函数/void KEY1() while(flag1) if(key2=0) delay(time);if(key2=0) if(minute0) minute=minute-1;write_time(7,minute);if(key4=0|key5=0) delay(150);if(key4=0|key5=0) flag1=0;flag =1;TR0=1;void write_time(uint add

7、r,uint date) uint ge,shi;ge=date%10;shi=date/10; write_com(0x80+addr);write_date(0x30+shi);write_date(0x30+ge);if(addr=7&date=0) j=1;if(j=1&addr=10&date=0) flag0=1; TR0=0;TR1=1;flag5=1; /初始化函数/void init() P1=0xff;RW=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);TMOD=0x11;TH0=(655

8、36-50000)/256;TL0=(65536-50000)%256;TH1=0xfc;TL1=0x44;ET1=1;ET0=1;/TR1=1;/TR0=1;EA=1;flag0=1;for(num=0;num0) minute=minute-1;write_time(7,minute);if(second=0) k=1;second=60;int main() init(); while(1) while(flag0) start();counter();while(flag5)delay1(); i+; if(i7) i=0;return 0;void inter0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;t+;void initer1() interrupt 3TH1=table1i/256;TL1=table1i%256;P1_5=P1_5;if(key5=0) delay(100);if(key5=0) TR1=0;flag5=0;k=0;j=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号