久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

24小時單片機(jī)時鐘終于搞定了

作者:余春雨老師   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年04月26日   【字體:

此程序的電路圖下載:http://m.zg4o1577.cn/f/ks51.pdf   只需要看數(shù)碼管部分即可,其他部分可忽略掉. 

 
#include <reg52.h> //stc89c51單片機(jī)頭文件
 
 
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong; //變量類型宏定義
 
 
sbit ENLED = P1^4;
sbit ADDR0 = P1^0;//管腳定義,作用為使能74hc138,讓38譯碼器開始工作
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3; //管腳定義,作用為選定38譯碼器輸出Y0-Y7,以便選定要顯示的數(shù)碼管(位選擇)
 
 
uchar led_char[] = {
0xC0, 0xF9, 0xA4, 0xB0,
0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83,
0xC6, 0xA1, 0x86, 0x8E}; //數(shù)碼管字符真值表 0-F
 
 
uchar led_buf[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; //數(shù)碼管字符初始化,為關(guān)閉狀態(tài)
 
 
uchar cnt = 0; //T1定時器溢出計(jì)數(shù)
uchar key = 0; //數(shù)碼管動態(tài)掃描開關(guān)
ulong sec = 0; //時間變量 
uchar hh = 8; //小時初值
uchar mm = 30; //分鐘初值
uchar ss = 40; //秒數(shù)初值
 
 
void main()
{
sec = hh *3600 + mm * 60 + ss;//時間計(jì)算公式
EA = 1; //打開中斷開關(guān)
 
 
ENLED = 0;
ADDR3 = 1; //使能74hc138,讓38譯碼器開始工作
 
 
TMOD = 0x10;//定時器工作模式設(shè)定
TH1 = 0xEE;
TL1 = 0x00;//定時初值設(shè)置
 
 
ET1 = 1; //打開定時器1中斷開關(guān)
TR1 = 1; //定時器1開始計(jì)時
 
 
while(1)
{
if(200 == cnt)
{
cnt = 0;
sec++;
if(sec < 86400)
{
led_buf[0] = led_char[sec%10];
led_buf[1] = led_char[sec%60/10];
led_buf[2] = led_char[sec%3600/60%10];
led_buf[3] = led_char[sec%3600/600];
led_buf[4] = led_char[sec/3600%10];
led_buf[5] = led_char[sec/3600/10]; //時間顯示字符計(jì)算
}
    if(sec == 86400)
{
sec = 0;
}
}
}
 
 
 
 
}
void interruptTimer0() interrupt 3 //定時器1中斷服務(wù)程序
{
  TH1 = 0xEE;
TL1 = 0x00; //定時初值設(shè)置
cnt++;
 
 
P0 = 0xFF; //數(shù)碼管消除鬼影
 
 
switch(key)
{
case 0: ADDR2 = 0;ADDR1 = 0;ADDR0 = 0;P0 = led_buf[0];key++;break;
case 1: ADDR2 = 0;ADDR1 = 0;ADDR0 = 1;P0 = led_buf[1];key++;break;
case 2: ADDR2 = 0;ADDR1 = 1;ADDR0 = 0;P0 = led_buf[2];key++;break;
case 3: ADDR2 = 0;ADDR1 = 1;ADDR0 = 1;P0 = led_buf[3];key++;break;
case 4: ADDR2 = 1;ADDR1 = 0;ADDR0 = 0;P0 = led_buf[4];key++;break;
case 5: ADDR2 = 1;ADDR1 = 0;ADDR0 = 1;P0 = led_buf[5];key = 0;break;
default:break;
} //數(shù)碼管動態(tài)掃描、顯示時間值
}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 午夜黄视频 | 欧美性生活网站 | 在线观看免费av网站 | 国产在线一 | 美女一级毛片 | 中国黄色一级片 | 婷婷视频在线 | 国产激情在线视频 | 三级黄网站 | 久久久久久一区二区 | 国产亚洲欧美日韩高清 | 亚洲成人三级 | 国产深夜福利 | 超碰97在线免费观看 | 国产精品一区二区三区免费 | 亚洲一区中文 | 日本黄色免费网站 | 在线日韩欧美 | 亚洲一级黄色片 | 涩涩的视频| 久久久久免费 | 亚洲 欧美 激情 另类 校园 | 亚洲一区二区免费视频 | 一区二区在线 | av老司机在线观看 | 欧美日韩性 | 国产区免费| 欧美在线视频播放 | 一级片欧美| 成人黄色在线观看 | 欧美日韩国产三级 | 国产精自产拍久久久久久蜜 | 天天干天天摸 | 日本久久视频 | 国产日韩欧美亚洲 | av一区二区在线观看 | 久久99免费视频 | 中文在线字幕免费观 | 伊人网视频 | 亚洲久久久久久 | 中文字幕在线观看不卡 |