液晶万年历汇编和C语言.doc

液晶万年历汇编和C语言.doc

ID:61424482

大小:93.50 KB

页数:32页

时间:2021-01-28

液晶万年历汇编和C语言.doc_第1页
液晶万年历汇编和C语言.doc_第2页
液晶万年历汇编和C语言.doc_第3页
液晶万年历汇编和C语言.doc_第4页
液晶万年历汇编和C语言.doc_第5页
资源描述:

《液晶万年历汇编和C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1602液晶万年历汇编和C语言.txt明骚易躲,暗贱难防。佛祖曰:你俩就是大傻B!当白天又一次把黑夜按翻在床上的时候,太阳就出生了1602液晶万年历汇编和C语言*日历时钟**按K1,进入设置状态**按k2,停止闹钟声音**按k3,依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,**直到退出设置状态**按k4,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字**LCD第二排中间显示小喇叭,表示启用闹钟功能,无则禁止闹钟功能**(可在调整状态进行设置)**正常状态,LCD上排最前面显示自定义字符,LCD

2、下排最前面闪动"XUELIN"**设置状态,LCD上排最前面显示"P",下排最前面在设置闹钟时间时显示"alarm:",**其它状态显示"time"**年代变化2000--2099,星期自动转换**程序中有自定义字符写入*#include#includeunsignedcharcodedis_week[]={"SUN,MON,TUE,WED,THU,FRI,SAT"};unsignedcharcodepara_month[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};//星期月参变数unsignedchardatadis_buf1

3、[16];//lcd上排显示缓冲区unsignedchardatadis_buf2[16];//lcd下排显示缓冲区unsignedchardatayear,month,date,week;//年、月、日、星期unsignedchardataarmhour,armmin,armsec;//闹钟时、分、秒unsignedchardatahour,min,sec,sec100;//时、分、秒、百分之一秒unsignedchardataflag,vkey,skey;//设置状态计数标志、按键先前值、按键当前值bitalarm;//标识是否启用闹钟,1--

4、启用,0--关闭sbitrs=P2^0;//LCD数据/命令选择端(H/L)sbitrw=P2^1;//LCD读/写选择端(H/L)sbitep=P2^2;//LCD使能控制sbitPRE=P1^6;//调整键(k3)sbitSET=P1^7;//调整键(k4)sbitSPK=P3^7;voiddelayms(unsignedcharms);//延时程序bitlcd_busy();//测试LCD忙碌状态程序voidlcd_wcmd(charcmd);//写入指令到LCD程序voidlcd_wdat(chardat);//写入数据到LCD程序void

5、lcd_pos(charpos);//LCD数据指针位置程序voidlcd_init();//LCD初始化设定程序voidpro_timedate();//时间日期处理程序voidpro_display();//显示处理程序voidpro_key();//按键处理程序voidtime_alarm();//定时报警功能(闹钟)unsignedcharscan_key();//按键扫描程序unsignedcharweek_proc();//星期自动计算与显示函数bitleap_year();//判断是否为闰年voidlcd_sef_chr();//LC

6、D自定义字符程序voidupdate_disbuf(unsignedchart1,unsignedchart2[],unsignedchardis_h,unsignedchardis_m,unsignedchardis_s);//更新显示缓冲区函数//延时程序voiddelay(unsignedcharms){while(ms--){unsignedchari;for(i=0;i<250;i++){_nop_();//执行一条_nop_()指令为一个机器周期_nop_();_nop_();_nop_();}}}//测试LCD忙碌状态bitlcd_b

7、usy(){bitresult;rs=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);//LCD的D0--D7中,D7=1为忙碌,D7=0为空闲ep=0;returnresult;}//写入指令到LCDvoidlcd_wcmd(charcmd){while(lcd_busy());//当lcd_busy为1时,再次检测LCD忙碌状态,lcd-busy为0时,开始写指令rs=0;rw=0;ep=0;_nop_();_nop_();P0=cmd;_nop_();_nop

8、_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。