C51程式設計 如何讓一位數碼管迴圈顯示數字0 9,時間間隔為

2021-04-20 12:56:58 字數 3574 閱讀 5338

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。為什麼要這樣規定呢?因為若沒有這樣...