欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
數(shù)碼管顯示時(shí)鐘可設(shè)置斷電記憶(定時(shí)器中斷+矩陣鍵盤+數(shù)碼管掃描+24c02)
[打印本頁]
作者:
werjufour
時(shí)間:
2018-11-13 21:57
標(biāo)題:
數(shù)碼管顯示時(shí)鐘可設(shè)置斷電記憶(定時(shí)器中斷+矩陣鍵盤+數(shù)碼管掃描+24c02)
數(shù)碼管顯示時(shí)鐘,用矩陣鍵盤來設(shè)置時(shí)間,斷電時(shí)的時(shí)間會存儲在EEPROM中,來電時(shí)恢復(fù)斷電時(shí)刻的時(shí)間
單片機(jī)源程序如下:
/*實(shí)驗(yàn)效果每加一秒鐘顯示會跳動,并在8位數(shù)碼管上以時(shí)間的形式顯示*/
/*使用矩陣鍵盤的S1、S2、S3按鍵分別對秒、分、時(shí)進(jìn)行設(shè)置加1操作。*/
/*設(shè)備斷電時(shí)EEPROM記憶斷電時(shí)刻的時(shí)間,重新上電時(shí)設(shè)備顯示斷電時(shí)刻的時(shí)間開始走時(shí)*/
/********注意事項(xiàng):往EEPROM 24c2寫入數(shù)據(jù)時(shí)與下一次寫數(shù)據(jù)時(shí)適當(dāng)延時(shí)2ms左右*****/
/****************不然寫入數(shù)據(jù)的速度跟不上程序執(zhí)行時(shí)間以至于數(shù)據(jù)寫不進(jìn)24c02中**/
#include<reg51.h>
#include"init.h"
#include"key.h"
#include"i2c.h"
#include"delay.h"
//sbit K1=P3^0;
//sbit K2=P3^1;
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char disp[8]={0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x3f,0x3f};
unsigned char hour=12,minit=0,second=0, Time=0;
bit write=0,KeyState;
main()
{
unsigned char keyvalue;
hour=At24c02Read(0x02); //讀出24c02地址0保存的數(shù)據(jù)賦于小時(shí)中
minit=At24c02Read(0x01); //讀出24c02地址1保存的數(shù)據(jù)賦于分中
second=At24c02Read(0x00); //讀出24c02地址2保存的數(shù)據(jù)賦于秒中
Timer1configuration();
Timer0configuration();
Int0Configuration();
while(1)
{
keyvalue=readkey();
if(TR0==0)
{
if(KeyState==1) //按鍵狀態(tài)為1時(shí)代表有按鍵按下
{
if(keyvalue==1) // 按鍵1按下時(shí)
{
second++; //秒加1
write=1; //向24c02寫數(shù)據(jù)允許
if(second==60)
second=0;
}
else if(keyvalue==2)// 按鍵2按下時(shí)
{
minit++; // 分加1
write=1;//向24c02寫數(shù)據(jù)允許
if(minit==60)
minit=0;
}
if(keyvalue==3) // 按鍵3按下時(shí)
{
hour++; // 小時(shí)加1
write=1;//向24c02寫數(shù)據(jù)允許
if(hour==24)
hour=0;
}
KeyState=0; //清除按鍵按下狀態(tài)標(biāo)志
}
}
disp[7]=DIG_CODE[hour/10];
disp[6]=DIG_CODE[hour%10];
disp[4]=DIG_CODE[minit/10];
disp[3]=DIG_CODE[minit%10];
disp[1]=DIG_CODE[second/10];
disp[0]=DIG_CODE[second%10];
if(write==1) //當(dāng)write為1時(shí)向24c02寫入數(shù)據(jù)
{
write=0;//清除寫保護(hù)標(biāo)記
At24c02Write(0x02,hour); //在24c02的地址0中寫入數(shù)據(jù)"小時(shí)"
Delay1ms(2);/*作適當(dāng)?shù)难訒r(shí),程序運(yùn)行太快以至于數(shù)據(jù)還沒有寫入24c02就開始執(zhí)行下一條語句*/
At24c02Write(0x01,minit); //在24c02的地址1中寫入數(shù)據(jù)"分"
Delay1ms(2);/*作適當(dāng)?shù)难訒r(shí),程序運(yùn)行太快以至于數(shù)據(jù)還沒有寫入24c02就開始執(zhí)行下一條語句*/
At24c02Write(0x00,second); //在24c02的地址2中寫入數(shù)據(jù)"秒"
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
時(shí)鐘斷電記憶 矩陣鍵盤設(shè)置時(shí)間.zip
(57.47 KB, 下載次數(shù): 72)
2018-11-13 21:56 上傳
點(diǎn)擊文件名下載附件
黑
下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2018-11-14 04:05
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
作者:
ptlantu
時(shí)間:
2018-11-14 09:04
感謝分享
作者:
JUNJUNlin
時(shí)間:
2019-11-26 19:07
可是這個(gè)代碼少了兩個(gè)庫函數(shù)的編輯,沒有庫是用不了的
作者:
20170682
時(shí)間:
2019-12-9 23:09
這個(gè)代碼有原理圖么?
作者:
20170682
時(shí)間:
2019-12-9 23:09
JUNJUNlin 發(fā)表于 2019-11-26 19:07
可是這個(gè)代碼少了兩個(gè)庫函數(shù)的編輯,沒有庫是用不了的
大佬,要用哪兩個(gè)函數(shù)庫?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1