我的单片机课程设计.docVIP

  • 89
  • 0
  • 约3.93千字
  • 约 14页
  • 2018-08-22 发布于贵州
  • 举报
我的单片机课程设计

单片机原理及系统课程设计报告 PAGE PAGE 4 PAGE 1 1引言 本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了。 2设计方案及原理 设计一个简易的倒数计数器。当键盘按键有按下时,调整计数器值,LCD显示新值。当复位键有按下时,计数器复位为初值,重新倒计数。当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。 具体过程: 按K1键,则在LCD上显示出设置画面。此时,若: (1) 按K2键增加倒计数的时间1分钟。 (2) 按K3键减少倒计数的时间1分钟。 (3) 按K4键设置完成。 3硬件设计 3.1 设计说明 设计的功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。当倒计数为0时,蜂鸣器就发出音乐声响。该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。总体设计方框图如图所示。 LCD1602复位电路 LCD1602 复位电路 AT89C51 AT89C51 蜂鸣器键盘 蜂鸣器 键盘 图1 总体设计方框图 3.2电路原理图 电路原理图连接如图2所示 图1 电路原理图 4软件设计 音乐倒数计数器程序流程图包括主程序流程图,LCD显示流程图以及按键流程图,各流程图如图2,图3,图4所示。 图2 主程序流程图 图3 LCD显示流程图 图4 按键流程图 5系统的仿真与调试 本课程设计调试结果详见附录 6总结 经过设计,简单带有LCD显示的音乐倒数计数器完成,系统基本功能基本实现,测试运行也正常。该系统完成了计数与报警的功能。 当然这个系统还存在许多有待完善的地方: (1) 功能相对较少,有待于添加,如时钟与闹钟功能。 (2) 界面设计不够精致完美。 参考文献 [1] 康华光.陈大钦.电子技术基础—模拟部分[M].北京:高等教育出版社,2005. [2] 李朝青.单片机原理及接口技术[M].北京:航空航天大学出版社,2005. [3] 兰吉昌.51单片机应用设计百例[M].北京:化学工业出版社,2009. 附录 1调试结果图 图2调试结果图 2 程序关键问题的部分代码 #includereg52.h #includeintrins.h #define time 100 #define uint unsigned int #define uchar unsigned char uint 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=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit key5=P1^4; sbit P1_5=P1^5; sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2; sbit led_red=P2^3; 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; delay(10); E=0; } //////1602写数据函数////// void write_date(uchar date) { RS=1; P3=date; delay(5); E=1; delay(10); E=0; } /////

文档评论(0)

1亿VIP精品文档

相关文档