1樓:匿名使用者
//1:用at89c51微控制器的定時/計數器t0產生一秒的//定時時間,作為秒計數時間,當一秒產生時,秒//計數加1,秒計數到60時,自動從0開始。微控制器//晶振頻率為12mhz
#include
#define uchar unsigned char#define uint unsigned intuchar code table=;
void display(uchar fen,uchar miao);
uchar a,fen,miao,shu;
void delay(uint z);
void init();
void main()
}void timer0() interrupt 1}void init()
void display(uchar fen,uchar miao)void delay(uint z)
2樓:匿名使用者
彙編源程式
second equ 30h
org 0
start: mov second,#00hnext: mov a,second
mov b,#10
div ab
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,b
movc a,@a+dptr
mov p2,a
lcall dely1s
inc second
mov a,second
cjne a,#60,next
ljmp start
dely1s: mov r5,#100
d2: mov r6,#20
d1: mov r7,#248
djnz r7,$
djnz r6,d1
djnz r5,d2
rettable: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
endc語言源程式
#include
unsigned char code table=;
unsigned char second;
void delay1s(void)
void main(void)
p0=table[second/10];
p2=table[second%10];}}
3樓:匿名使用者
second equ 30h
org 0
start: mov second,#00hnext: mov a,second
mov b,#10
div ab
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,b
movc a,@a+dptr
mov p2,a
lcall dely1s
inc second
mov a,second
cjne a,#60,next
ljmp start
dely1s: mov r5,#100
d2: mov r6,#20
d1: mov r7,#248
djnz r7,$
djnz r6,d1
djnz r5,d2
rettable: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend
4樓:匿名使用者
用定時器做的...試一下
#include
unsigned int i=0;
void main()
}void timer() interrupt 1
51微控制器同時使用兩個計時器的問題
同時用兩個中斷肯定會衝突 定時器1完全可以不用,主程式只管顯示就行,定時器0中斷程式中更新計時數值 還可以嘗試在定時器0的中斷程式裡關閉定時器1,交且將定時器0的中斷優先順序設高 就你現在的程式可以正常掃描顯示的呀,就是有點閃爍的效果。但不知道,這是和誰學習的,數碼管顯示要用定時器定時,中斷一次顯示...
微控制器的程式計數器PC的構成,微控制器中的程式計數器PC用來做什麼
他就是一個單元,只是這個單元裝的是地址而已。給你舉個通俗的例子,假設你是一個網咖唯一的網管,任務是負責網咖600號電腦的檢查。你上班開始,就從1號電腦檢查,有問題維修,沒問題就檢查2號,接著是3號。檢查第8號機的時候,8號機主告訴你說 19號機有問題,這個時候,你離開8號機之後,不是去9號,而去19...
51微控制器計數器怎麼用,51微控制器計數器怎麼用
51微控制器是基礎入門的一個微控制器,還是應用最廣泛的。51微控制器的定時 計數器的概念 微控制器中,脈衝計數與時間之間的關係十分密切,每輸入一個脈衝,計數器的值就會自動累加1,只要相鄰兩個計數脈衝之間的時間間隔相等,則計數值就代表了時間的流逝,因此,微控制器中的定時器和計數器其實是同一個物理的電子...