LCD160128中文显示温度与时间

上传人:沈*** 文档编号:78128561 上传时间:2022-04-21 格式:DOC 页数:34 大小:1.14MB
收藏 版权申诉 举报 下载
LCD160128中文显示温度与时间_第1页
第1页 / 共34页
LCD160128中文显示温度与时间_第2页
第2页 / 共34页
LCD160128中文显示温度与时间_第3页
第3页 / 共34页
资源描述:

《LCD160128中文显示温度与时间》由会员分享,可在线阅读,更多相关《LCD160128中文显示温度与时间(34页珍藏版)》请在装配图网上搜索。

1、附件1:学 号: 课 程 设 计题 目LCD160128中文显示温度与时间学 院计信学院专 业自动化班 级三班学生姓名陈强指导教师刘传文2011年12月16日重庆工商大学课程设计成绩评定表学院:计信学院 班级: 2009级 学生姓名:陈强 学号:2009133351 项目分值优秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图: DS1302的内部结构如下图所示,主要组成部

2、分为:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。DS1302的内部结构图DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。3、软件系统3、1程序设计本文主要内容是利用AT89C51单片机与160*1

3、28的液晶、DS18B20和DS1302组合设计的显示温度与时间系统,在160*128的液晶上显示当前的时间、日期和DS18B20中的温度值。当温度超过上下限时,并用LED警示。3、2 DS8B20流程图开始初始化DS18B20应答脉冲发起ReadOneByte的命令发起WriteOneByte的命令延时4s等待温度转换完成初始化DS18B20应答脉冲发起Read_Temperature命令读取第一二字节即为温度数据否是否是3、3 DS1302流程图3、4 总流程图4、系统运行环境及注意事项4、1 系统运行环境WINDOWS XP ,WINDOWS 7PROTEUS 7.7 SP2Keil u

4、v2 2.124、2 注意事项AT89C51单片机,P0口输出时,必须使用上拉电阻,提高电压,否则无法得到输出结果。5、结论本文主要内容是利用AT89C51单片机与160*128的液晶、DS18B20和DS1302组合设计的显示温度与时间系统,在160*128的液晶上显示当前的时间、日期和DS18B20中的温度值。当温度超过上下限时,并用LED警示。此次课程设计能够满足老师要求的基本功能,能够正确显示当前的时间,星期,日期。DS18B20的温度范围为-55度到128度,次课程设计能够正确显示DS18B20的温度。并且在这基础上还加了温度警示功能,当温度小于设定的-20度和大于100度时,LED

5、灯就会自动点亮,当温度回归到-20度和100度之间时,LED灯自动熄灭。本来该课程设计还可以增加设置警示温度值的功能,但是由于时间问题就没有加进去,有点遗憾。回顾起此次单片机课程设计,至今我仍感慨颇多。从理论到实践的过程可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。参考文献1 侯玉宝等基于profuse的51系列单片

6、机设计与仿真北京:电子工业出版社,20082 李朝青单片机原理及接口技术北京:北京航空航天大学出版社,20063 朱清慧等Profuse电子线路设计、制版与仿真北京:清华大学出版社,20085 张毅刚.单片机原理极其应用.哈尔滨:哈尔滨工业大学出版社,20046 彭伟编.单片机C语言程序设计实训100例-基于8051+Proteus仿真M.北京:电子工业出版社,20107 谭浩强编.C语言设计M.北京: 清华大学出版社,20058 阎石编.数字电子技术基础(第五版)M.北京高等教育出版社,2005附录附程序源代码:/-main.c-/内含DS1302驱动程序/-#include #includ

7、e #include #include #define uchar unsigned char#define uint unsigned intextern void cls();extern uchar LCD_Initialise();extern uchar Display_Str_at_xy(uchar x,uchar y,char *fmt ) reentrant;extern uchar code ASC_MSK96*12; extern uchar Current_Temp_Display_Buffer;sbit SDA = P10;sbit CLK = P11;sbit RST

8、 = P12;sbit hi=P16;sbit lo=P17;uchar tCount=0;/星期的中文对照表char code*WeeksTable=日,一,二,三,四,五,六;uchar DateTime7;char dat_str13;bit DS18B20_IS_OK=1; /传感器正常标志/向DS1302写入一个字节void Write_A_Byte_TO_DS1302(uchar x) uchar i; for(i=0;i=1; /从DS1302读取一个字节uchar Get_A_Byte_FROM_DS1302() uchar i,b,t; for(i=0;i=1;t=SDA;

9、b|=t7;CLK=1;CLK=0; return b/16*10+b%16; /从DS1302指定位置读数据uchar Read_Data(uchar addr) uchar dat; RST=0;CLK=0;RST=1; Write_A_Byte_TO_DS1302(addr); dat=Get_A_Byte_FROM_DS1302(); CLK=1;RST=0; return dat; /读取当前时间void GetTime() uchar i; for(i=0;i(20-1) lo=1;elselo=0; else sprintf(dat_str,%c%c%c.%c,t/100+0,t

10、/10%10+0,t%10+0,(a%16)*10/16+0); Display_Str_at_xy(16,104,dat_str); if(t(100-1) hi=1; elsehi=0; /主程序 void main() LCD_Initialise(); Read_Temperature(); Delay(50000); Delay(50000); IE=0x82; hi=0;lo=0; TH0=-50000/256; TL0=-50000%256; TR0=1; Display_Str_at_xy(16,88,当前温度:); Display_Str_at_xy(60,104,); wh

11、ile(1);/-LCD_160128.c-/LCD_160128的C文件,内含控制函数/-#include #include #include #include #include #include #include #define ASC_CHR_WIDTH 8#define ASC_CHR_HEIGHT 12#define HZ_CHR_HEIGHT 12#define HZ_CHR_WIDTH 12 sbit RESET=P33;uchar code LCD_WIDTH = 20;uchar code LCD_HEIGHT = 128;uchar code ASC_MSK96*12=0x

12、00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,/ !0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,

13、0x00,/ #0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00,/ $0x00,0x00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00,/ %0x00,0x70,0xd8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00,/ &0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x30,0

14、x18,0x0c,0x00,0x00,/ (0x00,0x60,0x30,0x18,0x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,/ )0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,/ *0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,/ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,/ ,0x00,0x00,0x00,0x00,0x00,0

15、xfe,0x00,0x00,0x00,0x00,0x00,0x00,/ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,/ .0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,/ /0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,/ 00x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,/ 10x00,0x78,0

16、xcc,0xcc,0x0c,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,/ 20x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,/ 30x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,/ 40x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,/ 50x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00

17、,/ 60x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,/ 70x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,/ 80x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x70,0x00,0x00,/ 90x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,/ :0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38

18、,0x18,0x30,0x00,/ ;0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00,/ 0x00,0x78,0xcc,0x0c,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00,/ ?0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xc0,0xc0,0x7c,0x00,0x00,/ 0x00,0x30,0x78,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0x00,0x00,/ A0x00,0xfc,0x66,0x66,0x66,0x7c,0

19、x66,0x66,0x66,0xfc,0x00,0x00,/ B0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x00,0x00,/ C0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x00,0x00,/ D0x00,0xfe,0x62,0x60,0x64,0x7c,0x64,0x60,0x62,0xfe,0x00,0x00,/ E0x00,0xfe,0x66,0x62,0x64,0x7c,0x64,0x60,0x60,0xf0,0x00,0x00,/ F0x00,0x3c,0x66,0

20、xc6,0xc0,0xc0,0xce,0xc6,0x66,0x3e,0x00,0x00,/ G0x00,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,/ H0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,/ I0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,/ J0x00,0xe6,0x66,0x6c,0x6c,0x78,0x6c,0x6c,0x66,0xe6,0x00,0x00,/ K0

21、x00,0xf0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xfe,0x00,0x00,/ L0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,/ M0x00,0xc6,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0x00,0x00,/ N0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x00,/ O0x00,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0xf0

22、,0x00,0x00,/ P0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xce,0xde,0x7c,0x0c,0x1e,0x00,/ Q0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0xe6,0x00,0x00,/ R0x00,0x78,0xcc,0xcc,0xc0,0x70,0x18,0xcc,0xcc,0x78,0x00,0x00,/ S0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,/ T0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc

23、,0xcc,0xcc,0x78,0x00,0x00,/ U0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,/ V0x00,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x6c,0x00,0x00,/ W0x00,0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00,/ X0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x78,0x00,0x00,/ Y0x00,0xfe,0xce,0x98

24、,0x18,0x30,0x60,0x62,0xc6,0xfe,0x00,0x00,/ Z0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x00,0x00,/ 0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x00,/ 0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,0x00,/ 0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x0

25、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,/ _0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0x76,0x00,0x00,/ a0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0xdc,0x00,0x00,/ b0x00,0x00,0x00,0x00,0x78,0xcc,0xc0,0xc0,0xcc,0x78,0x00,0x

26、00,/ c0x00,0x1c,0x0c,0x0c,0x7c,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,/ d0x00,0x00,0x00,0x00,0x78,0xcc,0xfc,0xc0,0xcc,0x78,0x00,0x00,/ e0x00,0x38,0x6c,0x60,0x60,0xf8,0x60,0x60,0x60,0xf0,0x00,0x00,/ f0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0x7c,0x0c,0xcc,0x78,/ g0x00,0xe0,0x60,0x60,0x6c,0x76,0x66,0x66,0x

27、66,0xe6,0x00,0x00,/ h0x00,0x18,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,/ i0x00,0x0c,0x0c,0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0x78,/ j0x00,0xe0,0x60,0x60,0x66,0x6c,0x78,0x6c,0x66,0xe6,0x00,0x00,/ k0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,/ l0x00,0x00,0x00,0x00,0xfc,0x

28、d6,0xd6,0xd6,0xd6,0xc6,0x00,0x00,/ m0x00,0x00,0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,/ n0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,/ o0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x7c,0x60,0xf0,/ p0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x1e,/ q0x00,0x00,0x

29、00,0x00,0xec,0x6e,0x76,0x60,0x60,0xf0,0x00,0x00,/ r0x00,0x00,0x00,0x00,0x78,0xcc,0x60,0x18,0xcc,0x78,0x00,0x00,/ s0x00,0x00,0x20,0x60,0xfc,0x60,0x60,0x60,0x6c,0x38,0x00,0x00,/ t0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,/ u0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,

30、/ v0x00,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x00,0x00,/ w0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0x00,0x00,/ x0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3c,0x0c,0x18,0xf0,/ y0x00,0x00,0x00,0x00,0xfc,0x8c,0x18,0x60,0xc4,0xfc,0x00,0x00,/ z0x00,0x1c,0x30,0x30,0x60,0xc0,0x60,0x30,0x30,

31、0x1c,0x00,0x00,/ 0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x00,0x00,/ |0x00,0xe0,0x30,0x30,0x18,0x0c,0x18,0x30,0x30,0xe0,0x00,0x00,/ 0x00,0x73,0xda,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ ;uchar gCurRow, gCurCol;uchar tCurRow, tCurCol;uchar ShowModeSW;uint txthome,grhome;uchar Status

32、_BIT_01(); / 状态位STA1,STA0判断(读写指令和读写数据)uchar Status_BIT_3(); / 状态位ST3判断(数据自动写状态)uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2); / 写双参数的指令uchar LCD_Write_Command_P1(uchar cmd,uchar Para1); / 写单参数的指令uchar LCD_Write_Command(uchar cmd); / 写无参数的指令uchar LCD_Write_Data(uchar dat); / 写数据uchar

33、LCD_Read_Data(); / 读数据void Set_LCD_POS(uchar row, uchar col) reentrant;/ 设置当前地址void cls(); / 清屏uchar LCD_Initialise(); / LCM 初始化uchar Display_Str_at_xy(uchar x,uchar y,char *fmt) reentrant;/ ASCII(8*16) 及 汉字(16*16) 显示函数void OutToLCD(uchar Dat,uchar x,uchar y);/显示辅助函数 void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, uchar Mode) reentra

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!