久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
我接下來要怎樣實現按鍵加減時鐘分鐘呢?
[打印本頁]
作者:
淡忘
時間:
2017-11-8 19:31
標題:
我接下來要怎樣實現按鍵加減時鐘分鐘呢?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DB P0
sbit LCD1602_RS=P1^0;
sbit LCD1602_RW=P1^1;
sbit LCD1602_E =P1^5;
unsigned char code KeyCode[]={
0xE7,0xD7,0xB7,0x77,0xEB,0xDB,0xBB,0x7B,
0xED,0xDD,0xBD,0x7D,0xEE,0xDE,0xBE,0x7E
};
void LCD1602_INIT();
void LcdSetCursor(uchar x,uchar y);
void LcdShowDat(uchar x,uchar y,uchar dat);
void LCD1602_WCMD(uchar cmd);
void delay_ms(uint cnt);
void an();
uint cnt=0;
uchar sec=0;min=0;hour=0;key=16;
void ScanKeyBoard()
{
unsigned char scan1,scan2,KeyBoard;
unsigned char i;
P2=0xf0;
scan1=P2;
TR0=0;
if((scan1&0xf0)!=0xf0)
{
delay_ms(10);
scan1=P2;
if((scan1&0xf0)!=0xf0)
{
P2=0x0f;
scan2=P2;
KeyBoard=scan1|scan2;
while((P2&0x0f)!=0x0f);
for(i=0;i<=15;i++)
{
if(KeyBoard==KeyCode[i])
key=i;
}
}
}
}
void an()
{
uchar a=key;
ScanKeyBoard();
switch(a)
{
case 0:hour=hour+1;break;
case 1:hour=hour-1;break;
case 2:min++;break;
case 3:min--;break;
default: break;
}
}
void delay_ms(unsigned int cnt)
{
unsigned char i;
while(cnt--)
{
for(i=0;i<=110;i++);
}
}
void main()
{
uchar temp;
TMOD=0x01;
TH0=0xfc;
TL0=0x67;
TR0=1;
EA=1;
ET0=1;
LCD1602_INIT();
while(1)
{
temp=hour/10;
temp+=0x30;
LcdShowDat(2,0,temp);
temp=hour%10;
temp+=0x30;
LcdShowDat(3,0,temp);
LcdShowDat(4,0,':');
temp=min/10;
temp+=0x30;
LcdShowDat(5,0,temp);
temp=min%10;
temp+=0x30;
LcdShowDat(6,0,temp);
LcdShowDat(7,0,0x3a);
temp=sec/10;
temp+=0x30;
LcdShowDat(8,0,temp);
temp=sec%10;
temp+=0x30;
LcdShowDat(9,0,temp);
}
}
void LcdWaitReady()
{
unsigned char sta;
LCD1602_DB=0xff;
LCD1602_RS=0;
LCD1602_RW=1;
do{
LCD1602_E=1;
sta=LCD1602_DB;
LCD1602_E=0;
}while(sta&0x80);
}
void LCD1602_WCMD(unsigned char cmd)
{
LcdWaitReady();
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DB=cmd;
LCD1602_E=1;
LCD1602_E=0;
}
void LCD1602_WDat(unsigned char dat)
{
LcdWaitReady();
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DB=dat;
LCD1602_E=1;
LCD1602_E=0;
}
void LcdSetCursor(uchar x,uchar y)
{
unsigned char addr;
if(y==0)
addr=0x00+x;
else
addr=0x40+x;
LCD1602_WCMD(addr|0x80);
}
void LcdShowDat(uchar x,uchar y,uchar dat)
{
LcdSetCursor(x,y);
LCD1602_WDat(dat);
}
void LCD1602_INIT()
{
LCD1602_E=0;
LCD1602_WCMD(0x38);
LCD1602_WCMD(0x0c);
LCD1602_WCMD(0x06);
LCD1602_WCMD(0x01);
}
void clok()interrupt 1
{
cnt++;
TH0=0xfc;
TL0=0x67;
if(cnt==1000)
{
cnt=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
作者:
zl2168
時間:
2017-11-9 19:03
本帖最后由 zl2168 于 2017-11-9 19:04 編輯
你提的問題,下例有解答。
實例91 具有校正功能的時鐘1302(LCD1602顯示)
先Proteus仿真,確認有效。
實例91 帶校正時鐘1302(LCD1602顯示).rar
(52.68 KB, 下載次數: 8)
2017-11-9 19:04 上傳
點擊文件名下載附件
具有校正功能的時鐘1302.jpg
(201.72 KB, 下載次數: 25)
下載附件
2017-11-9 19:04 上傳
以上摘自張志良編著《
80C51
單片機仿真設計實例教程——基于
Keil C
和
Proteus
》清華大學出版社
ISBN 978-7-302-41682-1
,書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和
Hex
文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。
到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费国产网站
|
亚洲视频免费在线观看
|
91福利在线观看视频
|
国产精品伦一区二区三级视频
|
精品综合久久久
|
亚洲成人av
|
在线观看中文字幕
|
91黄在线观看
|
久久99精品久久久久久国产越南
|
成人1区2区
|
日韩一级黄色片
|
国产精品一区二区欧美黑人喷潮水
|
欧美久久久久
|
正在播放一区二区
|
日韩久久久久久
|
久久久视频在线
|
色综合久久88色综合天天
|
亚洲乱码国产乱码精品精98午夜
|
国产精品一区二区三区久久久
|
99视频
|
亚洲精品aⅴ
|
日韩三级一区
|
麻豆视频在线看
|
一级网站
|
精品欧美一区二区三区免费观看
|
成人精品鲁一区一区二区
|
国产成人精品免费视频大全最热
|
黄色大片免费播放
|
亚洲精品一区二区三区在线
|
午夜无码国产理论在线
|
av手机免费在线观看
|
色婷婷影院
|
97精品国产手机
|
爱爱爱av
|
亚洲精品国产综合区久久久久久久
|
人人澡视频
|
日批免费观看
|
视频一区中文字幕
|
男女羞羞的网站
|
国产精品视频一区二区三区不卡
|
日韩日b视频
|