完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1 个讨论
|
|
下面是一个用AT89S52做的LCD1602显示的电子钟,可以调时间!
#include #define uchar unsigned char #define uint unsigned int sbit rs= P2^0; sbit rw = P2^1; sbit ep = P2^2; sbit k1=P1^0; //时,分选择键 sbit k2=P1^1; //加 sbit k3=P1^2; //减 char i,j,shi,fen,miao; uchar num,count,con; //uchar SJ[]={ //0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,//年 //0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11,//月 //0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00//日 //}; uchar code table1[]={'2','0','1','0','-','1','1','-','0','4',' ',' ','T','H','U'}; uchar code table2[]=" 00:00 00"; //uchar code table3[]=" 15899576222"; void lcd_com(uchar com); void jia(); void jian(); void keyscan(); void lcd_date(uchar date); void lcd_init(); void lcd_sfm(uchar add,uchar date); void delay(uint t) { uint i,j; for(i=0;i ; } void lcd_com(uchar com) { rs=0; rw=0; ep=0; P0=com; delay(1); ep=1; delay(1); ep=0; } void jia()//时钟加子函数 { if(k2==0)//加键 { delay(50); if(k2==0) { while(!k2); if(con==1) { miao++; if(miao==60) miao=0; lcd_sfm(10,miao); lcd_com(0x80+0x40+11); } if(con==2) { fen++; if(fen==60) fen=0; lcd_sfm(7,fen); lcd_com(0x80+0x40+8); } if(con==3) { shi++; if(shi==24) shi=0; lcd_sfm(4,shi); lcd_com(0x80+0x40+5); } } } } void jian()//时钟减子函数 { if(k3==0)//减键 { delay(50); if(k3==0) { while(!k3); if(con==1) { miao--; if(miao<=-1) miao=59; lcd_sfm(10,miao); lcd_com(0x80+0x40+11); } if(con==2) { fen--; if(fen<=-1) fen=59; lcd_sfm(7,fen); lcd_com(0x80+0x40+8); } if(con==3) { shi--; if(shi<=-1) shi=23; lcd_sfm(4,shi); lcd_com(0x80+0x40+5); } } } } void keyscan()//按键输入函数1 { if(k1==0)//功能键 { delay(100); if(k1==0) { con++; TR0=0; while(!k1); if(con==1) { lcd_com(0x80+0x40+11); lcd_com(0x0f); } if(con==2) { lcd_com(0x80+0x40+8); lcd_com(0x0f); } if(con==3) { lcd_com(0x80+0x40+5); lcd_com(0x0f); } if(con==4) { lcd_com(0x0c); TR0=1; con=0; } } } jia(); jian(); } void lcd_date(uchar date)//显示字符 { rs=1; rw=0; ep=0; P0=date; delay(1); ep=1; delay(1); ep=0; } void lcd_init()// 初始化LCD { rw=0; ep=0; lcd_com(0x38); lcd_com(0x0c); lcd_com(0x06); lcd_com(0x01); // lcd_com(0x40); // for(num=0;num<24;num++) // { // lcd_date(SJ[num]); // } lcd_com(0x80); for(num=0;num<16;num++) { lcd_date(table1[num]); delay(1); } lcd_com(0x80+0x40); for(num=0;num<9;num++) { lcd_date(table2[num]); delay(1); } TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void lcd_sfm(uchar add,uchar date)//显示位置和数据 { uchar shi,ge; shi=date/10; ge=date%10; lcd_com(0x80+0x40+add); lcd_date(0x30+shi); lcd_date(0x30+ge); } void main() { lcd_init(); while(1) { keyscan(); } } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++; if(count==20) { count=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi>=12) { // lcd_sfm(1,"PM"); } if(shi==24) { shi=0; } lcd_sfm(4,shi); } lcd_sfm(7,fen); } lcd_sfm(10,miao); } } |
|
|
|
|
|
987 浏览 0 评论
《电子工程师必备——九大系统电路识图宝典》之浅读负反馈以及四种组态
1003 浏览 0 评论
1128 浏览 0 评论
59082 浏览 0 评论
21953 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-8-24 21:53 , Processed in 0.588920 second(s), Total 35, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 湘ICP备2023018690号