1樓:匿名使用者
非精確的,用定時器就足夠了,
有**圖,
p0加上拉電阻,
74hc373做驅動,不過沒加
版保護電阻,
**通權過:
這是原始碼:
#include
unsigned char code1[10] = ;
unsigned int a;
void delay()
main()}}
用微控制器控制一個8段數碼管,其迴圈顯示數字0到9,每位數字顯示時間為一秒,定時功能用微控制器中斷顯示
2樓:瀋陽_大偉
有一個一模一樣的提問,好吧,俺再發布一次
給你一份我自己寫的,利用四位數碼管顯示模擬時鐘的程式吧,供你研究
另外,再給你一個一位數碼管的,是你要求的那種
這兩個都是利用微控制器的定時器中斷來產生秒訊號的
下面這個是 四位數碼管的,最下邊的是一位數碼管的,埠不一樣的話,自己改下
#include
sbit p20=p3^7; sbit p21=p3^6; sbit led=p2^7;//按鍵及led埠定義
sbit axs=p1^3; sbit bxs=p1^2; sbit cxs=p1^1; sbit dxs=p1^0;//數碼管位選埠
char table[10]=;//數碼管顯示編碼
unsigned int h,m,s,t,n;
void ys(char hs)//延時函式
void xs(int xh,int xm) //顯示子函式
void main(void)
}while(!p20)}
if(p21==0)}while(!p21)}
xs(h,m);//呼叫數碼管顯示函式}}
void int1() interrupt 1 //定時器中斷
//led閃爍
if(n>1000)//如果達到一秒,秒加一
if(s>59)//如果達到一分,分加一
if(m>59)//如果達到一小時,小時加一
if(h>23)//如果達到24小時,小時清零
#include
sbit axs=p1^3;//數碼管位選埠
char table[10]=;//數碼管顯示編碼
unsigned int h,m,s,t,n;
void ys(char hs)//延時函式
void main(void)
void int1() interrupt 1 //定時器中斷
//如果達到一秒,秒加一
if(m>9)//如果達到一小時,小時加一
微控制器 用51微控制器顯示一個數碼管輪流顯示9到0再從0到9每隔一秒出現一次(用組合語言)謝謝各
3樓:文鵬
org 0000h
mov dptr,#tab
mov p0,#0ffh
lop:
loop0:mov 20h,#9
mov r0,#10
loop1:mov a,20h; 9-0
movc a,@a+dptr
mov p0,a
dec 20h
call dell;yanshi
djnz r0,loop1
mov 20h,#0;0-9
mov r0,#10
loop2:mov a,20h; 0-9
movc a,@a+dptr
mov p0,a
inc 20h
call dell;yanshi
djnz r0,loop2
ajmp lop
tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
dell:mov r7,#250;yanshi,shizhong:1weimiao,yuewei1s
del1:mov r6,#200
del2:mov r5,#10
del3:djnz r5,del3
djnz r6,del2
djnz r7,del1end
4樓:匿名使用者
需要知道你的微控制器中led數碼管的段碼才可以通過查表的方式用串列埠通訊方式0來完成
51微控制器定時器中斷問題,單個數碼管間隔1秒一次顯示0到9。 5
5樓:匿名使用者
時間太長大哥 估計要好幾秒 根據你的程式 沒必要加延時 還有 如果用不到int這麼大的型別 就改為unsigned char 可以節約微控制器空間
6樓:昔勤
定時器中斷就是用來代替延時delay的 你在加個delay,怎麼可能會用
7樓:匿名使用者
if(tt>=20)/
另外程式這樣寫是不行的,費勁啊
8樓:
延時太大,等延時完成時tt>20,迴圈不能進行。
9樓:匿名使用者
因為 delay(500)延時時間太長
微控制器實驗:要求用最後一個數碼管顯示0到9,並且每個數字顯示延時1秒。用組合語言編寫!!!
10樓:胖大海君
硬體電路是什麼樣的啊? 硬體電路不同 程式也是不一樣的 想要得到幫助 就具體說明一下你的硬體 還是硬體也要一同設計呢?
11樓:沙裡波特
這是一位數的秒錶,對吧?
80c51微控制器定時器中斷問題,單個數碼管間隔1秒一次顯示0到9。(彙編語
12樓:匿名使用者
org 0000h
ljmp main
org 000bh
ljmp t0isr
org 0030h
main:
mov tmod,#01h
mov th0,#high(65536-50000)mov tl0,#low(65536-50000)setb tr0
setb et0
setb ea
mov r2,#20
mov r3,#0
sjmp $
t0isr:
clr tr0
mov th0,#high(65536-50000)mov tl0,#low(65536-50000)setb tr0
djnz r2,t0e
mov r2,#20
mov dptr,#table
mov a,r3
movc a,@a+dptr
mov p0,a
inc r3
cjne r3,#10,t0e
mov r3,#0
t0e:
reti
table: ; 共陰極數碼管顯示**表db 3fh,06h,5bh,4fh,66h ;01234db 6dh,7dh,07h,7fh,6fh ;56789end
三位數乘以一位數的豎式計算,三位數乘一位數怎樣列豎式計算
比如可以是300 2 600 一 培養認真審題的習慣 認真審題是正確解題 準確計算的前提。小學生因審題不嚴而導致錯誤的現象較重,原因是一方面學生識字量少,理解水平低 另一方面是做題急於求成,不願審題。因此,教師在教學中,要引導學生認識審題的重要性,增強審題意識。同時,還要教給學生審題方法,建立解題的...
最小的一位數是1還是,最小的一位數是1還是0?
答案其實是1 最小的一位數是1還是0?要回答這個問題須從 位數 和 數位 說起。位數是指一個整數所佔有數位的個數。把佔有一個數位的數叫一位數,佔有兩個數位的數叫兩位數 例如,12345是五位數,因為它佔有五個數位,這裡 0 佔有數位。0能不能稱為一位數呢?不能。因為記數法裡有個規定 一個數的最高位不...
最小的一位數是1還是,最小的一位數是1還是
0不是自然數最小一位數是1嗎?重要的數 最小的自然數是0還是1,同學們總是爭論不休,是誰呢?0只能佔位而不能算位。只有當他作為有效數字出現時才能算位。單獨出現的0不是有效數字,所以不存在 位 的問題。0不能稱為一位數呢。因為記數法裡有個規定 一個數的最高位不能是0。為什麼要這樣規定呢?因為若沒有這樣...