完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
各位大神,在使用单片机控制液晶的程序是,使用单片机的掉电模式使其进入待机状态,进入待机状态时关闭液晶电源,达到熄屏的效果,单片机唤醒后,立即打开液晶电源,液晶无显示。部分程序如下:#define CKSEL (*(uchar volatile xdata *)0xfe00)
#define CLKDIVE (*(uchar volatile xdata *)0xfe01) #define IRC24MCR (*(uchar volatile xdata *)0xfe02) sfr P_SW2=0xba; sfr P1M0=0x92; sfr P1M1=0x91; sfr P3M0=0xb2; sfr P3M1=0xb1; sfr P5M0=0xca; sfr P5M1=0xc9; ***it _VCC=P1^1; //液晶电源控制引脚,高电平有效 ***it _DAT=P1^6; //HT1621数据引脚 ***it _CS=P1^4; //HT1621使能引脚 ***it _WR=P1^5; //HT1621时钟引脚 ***it _Vlcd=P1^7;//液晶/背光控制引脚,低电平有效 ***it KEY=P1^0; uchar code table1[]={0xaf,0x06,0x6d,0x4f,0xc6,0xcb,0xeb,0x0e,0xef,0xcf};//数码1~4显示0~9元素 uchar code table2[]={0xfa,0x60,0xd6,0xf4,0x6c,0xbc,0xbe,0xe0,0xfe,0xfc}; uint sum1=0,sum=50; //sum为波形数量 uchar sum2=0; void delay_ms(uint z) //主时钟频率24MHz { uchar i=24, j=85; while(z--) { do { while (--j); } while (--i); } } void Init() { P_SW2=0x80; CKSEL=0x00; P_SW2=0x00; P1M0=0x00; P1M1=0x01; P3M0=0x00; P3M1=0x00; TMOD=0x00; IT0=1; EX0=1; TR0=1; ET0=1; EA=1; _Vlcd=0; _VCC=1; } void main() { Init(); LCD_Init(); while(1) { if(KEY==0) { delay_ms(10); if(KEY==0) { ET0=0; _Vlcd=1; //关闭液晶背光灯及液晶驱动电源 PCON=0x02; } } sum2=sum%16; sum1=sum/16; display2(sum1,sum2,0,0,0,0); delay_ms(1); } } void INIT0() interrupt 0 { ET0=1; _Vlcd=0; } void Timer0() interrupt 1 { uint m; TL0=0x40; TH0=0xA2; m++; if(m==1000) { m=0; sum++; } } |
|
相关推荐
2个回答
|
|
|
在进入掉电模式时,原来写入1621B的命令将会全部丢失掉,需要重新写入。在外部中断子函数里,再次对液晶进行初始化就可以了
|
|
|
|
|
|
外部中断中会将lcd电源打开,并且设置一个标志,此时在主函数中,判断该标志置位后,重新初始化lcd并且重新display数据到lcd即可
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1599 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4738 浏览 0 评论
4229 浏览 9 评论
3822 浏览 16 评论
4398 浏览 1 评论
4210浏览 3评论
2379浏览 0评论
3393浏览 0评论
1158浏览 0评论
2843浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:38 , Processed in 0.612849 second(s), Total 75, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2239