用微控制器控制8段數碼管,其迴圈顯示數字0到9,每位數字顯示時間為一秒,定時功能用微控制器中斷顯示

2021-03-27 17:56:57 字數 5822 閱讀 7573

1樓:瀋陽_大偉

有乙個一模一樣的提問,好吧,俺再發布一次

給你乙份我自己寫的,利用四位數碼管顯示模擬時鐘的程式吧,供你研究

另外,再給你乙個一位數碼管的,是你要求的那種

這兩個都是利用微控制器的定時器中斷來產生秒訊號的

下面這個是 四位數碼管的,最下邊的是一位數碼管的,埠不一樣的話,自己改下

#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)//如果達到一小時,小時加一

用微控制器控制乙個8段數碼管迴圈顯示數字0至9;按鍵k用於啟停控制,系統上電後系統處於停止狀態 求解

2樓:匿名使用者

你好!程式是c語言寫嗎?原理圖確定了嗎?發一下看看

3樓:匿名使用者

在主函式加乙個判斷語句就可以。上電復位的函式裡吧所有位致零,

c51程式設計:如何讓一位數碼管迴圈顯示數字0~9,時間間隔為1秒?

4樓:匿名使用者

非精確的,用定時器就足夠了,

有**圖,

p0加上拉電阻,

74hc373做驅動,不過沒加

版保護電阻,

**通權過:

這是原始碼:

#include

unsigned char code1[10] = ;

unsigned int a;

void delay()

main()}}

利用51微控制器,4個數碼管設計乙個計時器,要求在數碼管上顯示的資料從0開始每1秒鐘加1。

5樓:匿名使用者

我正好也寫了那麼乙個程式,我說一下自己的思路吧,我也剛學。

先做乙個段選錶和位選錶,用兩個陣列儲存,如果有八個燈,位選就有8個。然後再定義乙個陣列

digit[8] 裡面儲存 個位十位百位等數字。然後再定時器中斷函式裡,用乙個switch語句,分別表明位選在01234567的情況。 我把它貼出來吧。

switch (num_we) //控制每一次位選的數碼管顯示

上面ledcode 是段選錶 wecode 是位選錶 。 num_we是位選標誌,表示選到了第幾個數碼管。

然後在除錯差不多掃瞄幾回為1秒,每到了一定的回數,個位數字就+1,個位數字到10,個位清零,十位+1,,以此類推。

6樓:絕種好風

那得看你的數碼管是怎麼接的,其實重要的是51微控制器定時器的使用,兩個,t0和t1,隨便選乙個,就行了,只是提醒下,

微控制器 用51微控制器顯示乙個數碼管輪流顯示9到0再從0到9每隔一秒出現一次(用組合語言)謝謝各

7樓:文鵬

*** 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

8樓:匿名使用者

需要知道你的微控制器中led數碼管的段碼才可以通過查表的方式用串列埠通訊方式0來完成

微控制器的po口連數碼管,現控制數碼管迴圈顯示0-9,迴圈顯示間隔1s。數碼管共陰極要畫圖,寫程式。

9樓:匿名使用者

把 數碼管的 1-9 的 對應的碼算出來就好了例如:#include

//數字0-9的字形碼

unsigned char code table=;

unsigned char dispcount;

void delay02s(void);

void main(void)}}

void delay02s(void)

補充:微控制器(microcontrollers)是一種積體電路晶元,是採用超大規模積體電路技術把具有資料處理能力的**處理器cpu、隨機儲存器ram、唯讀儲存器rom、多種i/o口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調變電路、模擬多路轉換器、a/d轉換器等電路)整合到一塊矽片上構成的乙個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位微控制器,發展到現在的300m的高速微控制器

求微控制器大神指教,1.要求微控制器完成功能:利用p2口控制乙個共陰極的數碼管,使之迴圈顯示0—9數字……

10樓:匿名使用者

^^#include

#define uchar unsigned charuchar table=;

sbit rstkey=p2^2;

sbit speaker=p2^0;

void delay()//延時約400毫秒main()}

11樓:

需要做實物嗎? 還是只要畫圖程式設計?

設計乙個微控制器輸入顯示系統,要求每按一下按鍵數碼管顯示資料加1(數碼管初始值為0,9加1 後顯示0)。

12樓:沈偉棟

程式清單如下:

#include < reg51.h >// 51微控制器標頭檔案

#define uchar unsigned char // 巨集定義

,用uchar替代無符號字元型

#define uint  unsigned int // 巨集定義,用uint 替代無符號整數型

sbit key = p2 ^ 7;

uchar count = 0;

uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'

;//延時n毫秒

void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的

//數碼管顯示   // 顯示方式為動態掃瞄,視覺暫留原理

void display( uchar num ) // *p指向main函式中的陣列shownum的首位址

void main( void )

while( !key );

}display( count );}}

擴充套件資料

8051微控制器具有如下功能:

8位cpu·4kbytes程式儲存器(rom) (52為8k)

128bytes的資料儲存器(ram) (52有256bytes的ram)

32條i/o口線·111條指令,大部分為單位元組指令

21個專用暫存器

2個可程式設計定時/計數器·5個中斷源,2個優先順序(52有6個)

乙個全雙工序列通訊口

外部資料儲存器定址空間為64kb

外部程式儲存器定址空間為64kb

邏輯操作位定址功能·雙列直插40pindip封裝

單一+5v電源供電

cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;

ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;

rom:用以存放程式、一些原始資料和**;

i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出

t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;

五個中斷源的中斷控制系統;

乙個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;

片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6m—12m。

13樓:匿名使用者

#include < reg52.h >   // 嵌入51微控制器標頭檔案

#define uchar unsigned char // 巨集定義,用uchar替代無符號字元型

#define uint  unsigned int // 巨集定義,用uint 替代無符號整數型

sbit key = p2 ^ 7;

uchar count = 0;

uchar code datachar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'p'

;//延時n毫秒

void delaynms( uint n ) // 利用x、y作簡單的自減運算,消耗微控制器指令週期,達到延時的目的

//數碼管顯示   // 顯示方式為動態掃瞄,視覺暫留原理

void display( uchar num ) // *p指向main函式中的陣列shownum的首位址

void main( void )

while( !key );

}display( count ); }}

微控制器實驗:要求用最後乙個數碼管顯示0到9,並且每個數字顯示延時1秒。用定時中斷實現

14樓:

硬體電路是什麼樣的啊? 硬體電路不同 程式也是不一樣的 想要得到幫助 就具體說明一下你的硬體 還是硬體也要一同設計呢?

用微控制器控制8段數碼管迴圈顯示數字0至9按鍵K用於啟停控制,系統上電後系統處於停止狀態求解

你好!程式是c語言寫嗎?原理圖確定了嗎?發一下看看 在主函式加乙個判斷語句就可以。上電復位的函式裡吧所有位致零,用微控制器控制乙個8段數碼管,其迴圈顯示數字0到9,每位數字顯示時間為一秒,定時功能用微控制器中斷顯示 有乙個一模一樣的提問,好吧,俺再發布一次 給你乙份我自己寫的,利用四位數碼管顯示模擬...

微控制器控制數碼管1按鍵控制開始數碼管迴圈顯示0F時

p1口外接共陽極bai的du8段數碼顯示器。zhip3.2外接乙個按鍵,按dao下後,接專地,用來起 屬動.0000h jb p3.2,mov r2,0 loop inc r2 mov a,r2 anl a,0fh mov dptr,tab movc a,a dptr mov p1,a lcall ...

51微控制器如何利用七段數碼管採用動態顯示顯示4位數字,如

顯示函式 函式名 display56 變數定義 unsigned char qian,bai,shi,ge 定義顯示緩衝區 unsigned char table 表 共陽數碼管 0 1 2 3 4 5 6 7 8 9 c 延時子函式,短暫延時 void delay56 void display56...