51微控制器數字秒錶設計用4位數碼管分別顯示十秒,秒,百毫秒

2021-04-21 21:00:29 字數 1586 閱讀 7389

1樓:瀋陽_大偉

#include

sbit axs=p1^3; sbit bxs=p1^2; sbit cxs=p1^1; sbit dxs=p1^0;//數碼管位選埠

char table[10]=;//數碼管顯示編碼

void ys(char hs); void xs(int xm,int xs); void time1(void);int n,i,m,s;

void main(void)}//主函式

void int1() interrupt 1 //定時器中斷}}}

void time1(void)//定時器初始化

void xs(int xm,int xs) //數碼管顯示

void ys(char hs)}//延時函式

和你要的一樣,無償奉獻了

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

2樓:匿名使用者

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

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

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

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

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

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

3樓:絕種好風

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

用51微控制器做定時器,時間顯示在數碼管上,要求有秒鐘十秒鐘分鐘十分鐘,四個數碼管,程式一開始就直接

4樓:照月明

............這不是最簡單來

的嗎?用源微控制器的定時bai器設定成50ms中斷du

一次,然後20次就是1秒,秒到zhi了60,然後把dao秒變成0,分鐘加1,數碼管你看看是用什麼控制138加595,還是數碼管晶元直接驅動

5樓:匿名使用者

#include

#define uchar unsigned char#define uint unsigned intuchar ledtab=;

uchar disdat[4]=;

uchar num=0;

uchar min=0,sec=0;

void datdeal()

void t0isr() interrupt 1datdeal();

p0=ledtab[disdat[num]];

num++;

num&=0x03;

}void t1isr() interrupt 3}}void ext0isr() interrupt 0main()

用C51系列的微控制器控制在8位數碼管動態顯示秒錶要c語言版程式謝謝

顯示程式和硬體關聯,如驅動方式 位數等,所以沒有統一的程式,假定動態顯示,大概思路如下 1 設定定時中斷,定時中斷時間是5毫秒 2 中斷程式完成秒計時,秒數發生變化時,要將秒數對應的顯示碼放到顯示緩衝區 3 每次中斷迴圈顯示一位數碼管 下面是我曾經寫的乙個顯示程式 顯示緩衝區g disp buf d...

微控制器求動態顯示分別顯示0123在四位數碼管

include define uchar unsigned charuchar tab 0到f uchar num uchar led void delay uchar a main c語言微控制器 數碼管動態顯示 這裡的16個元素代表的是從 十六進製制數0 9 a b c d e f的段碼,根據什...

我微控制器設計裡驅動4位數碼管段選由P1口控制,位選通過74LS373驅動,請問他的原理,這裡373的作

這裡373不是做鎖存器copy用,純粹用來增加驅動bai電流,因為oe腳接高電du平,這樣 zhi373輸出完全和輸入一dao致。這樣做,是因為51的驅動能力弱,當作為數碼管位驅動時能力不夠,位電流是所有的段電流之和,比如顯示數字8時,是段電流的7倍。1 擴充套件io口 2 增大驅動能力 io口無法...