欢迎来到天天文库
浏览记录
ID:42108234
大小:108.50 KB
页数:9页
时间:2019-09-07
《12864液晶7289模块显示温度和电压程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、附录:程序清单•主函数:#inelude#include#inelude#includeincludeincludevoidmain(){lnit_12864();〃斤机界面初始化:Write_Cmd_12864(0x80);Write_String_12864(“实时监控”);〃屮断初始化:lnit_INTs();while(1){}}•中断服务程序:#inelude#ineludeinclude
2、#inelude#include#defineTIMERO50unsignedinttimerO_counter=TIMERO;#defineTIMER150中断函数库//l.中断初始化函数:voidlnit_INTs(){"〃定时器初始化:TMOD=0x01;TFO=1;〃中断使能:ETO=1;〃开全局中断:EA=1;}voidINTO_isr()interrupt0voidTimerO_isr()interrupt1{TRO=0;TH0=(65536-10000)/256;TLO=(65536-10000)%256;T
3、RO=1;if(!(-timerO_counter)){_timerO_counter=TIMERO;Get_Temp_DS18B20();Write_Cmd_12864(0x88);Write_String_12864("当需温度:”);Write_String_12864(temp_buffer);Get_Volt_ADC0832();Write_Cmd_12864(0x98);Write_String_12864("当前电压:");Write_String_12864(volt_buffer);}}•通用函数库:#inelude#include
4、//12MHz时,取1;24MHz时,取2#defineTIME_US1//12MHz时,取128;24MHz时,取247#defineTIME_MS118//l.us延时函数:voiddelay_us(unsignedintus)//1:21.5us;2:33.540:490{"unsignedinti;for(i=us*TIME_US;i>0;i-)_nop_();}//2.ms延时函数:voiddelay_ms(unsignedintms){"unsignedinti,j;for(i=ms;i>0;i-・)for(j=TIME_MS;j>0;j-);}〃3.指数函数:unsigned
5、intexp(intbase,unsignedintpower)unsignedintresult=1;while(power-)result*=base;}returnresult;}•LCD12864函数库:#include#inelude#include〃全局变量://LCD控制寄存器lcd_reg://unsignedcharlcd_reg=0x00;//12864行选择:unsignedcharcodeline_select_12864⑷二{0x80,0x90,0x88,0x98};//l.向12
6、864写指令:voidWrite_Cmd_12864(unsignedcharcmd_12864){~Set_PSB_12864();Clr_RS_12864();Clr_RW_12864();Clr_EN_12864();」OP_();_nop_();_nop_();Set_EN_12864();_nop_();_nop_();data_12864=cmd_12864;_nop_();_nop_();Clr_EN_12864();_nop_();_nop_();_nop_();Set_RW_12864();delay_us(5);}"//2.向12864写数据:voidWrite_Dat
7、a_12864(unsignedchardt_12864){~Set_PSB_12864();Set_RS_12864();Clr_RW_12864();Clr_EN_12864();nop_();_nop_();_nop_();Set_EN_12864();_nop_();_nop_();data_12864=dt_12864;_nop_();_nop_();Clr_EN_12864();_nop_();_nop_()
此文档下载收益归作者所有