<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 數碼管計時(shí)器程序

數碼管計時(shí)器程序

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
這是一個(gè)51hei網(wǎng)友測試通過(guò)的計時(shí)器程序、電路很簡(jiǎn)單就不畫(huà)了數碼管的段選是P0口位選是P1口

#include
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsignedlonguint32;
code uint8 number[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xa7,0xa1,0x86,0x8e}; //數字0到F
uint16 counter = 0; //定義計數器初始化
uint8 a[6]; //六個(gè)數碼管
sbit ENLED = P1^4;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
void timer1_led()
{
TMOD |= 0x10; //寄存器狀態(tài)M0位置1,或運算
TMOD &= 0xDF;
TH1 = 0xFC; //12*(65535-x)/11059200 =1s
TL1 = 0x67;
TR1 = 1; //定時(shí)器置1打開(kāi),計數器開(kāi)始計時(shí)
}
void int_init()
{
ET1 = 1; // 打開(kāi)定時(shí)器1溢出中斷使能置1
EA = 1; //總閥門(mén)打開(kāi)
}
refresh_led()
{
static uint8 j = 0; //靜態(tài)變量刷新
switch(j)
{
case 0:ADDR0 = 0;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[0]];break;
case 1:ADDR0 = 1;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[1]];break;
case 2:ADDR0 = 0;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[2]];break;
case 3:ADDR0 = 1;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[3]];break;
case 4:ADDR0 = 0;ADDR1 = 0;ADDR2 = 1;j++;P0 = number[a[4]];break;
case 5:ADDR0 = 1;ADDR1 = 0;ADDR2 = 1;j = 0;P0 = number[a[5]];break;
default :break;
}
}
main()
{
ENLED = 0;ADDR3 = 1; //138譯碼器使能
timer1_led(); //定時(shí)初始化
int_init();
while(1);
}
void interrupt_timer1() interrupt 3 //中斷函數
{
static uint32 sec=0; //定義變量
TH1 = 0xFC;
TL1 = 0x67;
counter++;
if(1000==counter)
{
sec++;
counter=0;
a[0] = sec%10; //個(gè)位數取余
a[1] = sec/10%10; //十位取余
a[2] = sec/100%10; //百位取余
a[3] = sec/1000%10; //...............
a[4] = sec/10000%10;
a[5] = sec/100000%10;
}
refresh_led();
}

本文引用地址:http://dyxdggzs.com/article/201611/324040.htm


關(guān)鍵詞: 數碼管計時(shí)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>