51微控制器數碼管P0 table 1w0 0 delay 1w0 1 P

2021-04-20 12:57:59 字數 3881 閱讀 4507

1樓:聖蓮君_小心

提前準備機制,就像**執行一樣這個順序是不可以亂的。

這裡w0用來開啟數碼的開關。然後呢,把準備的資料放進去。

你一來直接往裡放肯定不準確啥。

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

2樓:anyway丶

共陽數碼管中斷程式:

#include

#define uint unsigned int

#define uchar unsigned char

uchar code table=

;uint num,a;

uchar bai,shi,ge;

void init();

void delay(uint);

void display(ucharbai,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

}void init()

void display(ucharbai,ucharshi,ucharge)

void timeoff() interrupt 1}}

void delay(uint z)

uint fb()

uint fs()

uint fg()

擴充套件資料

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

乙個全雙工序列通訊口

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

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

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

單一+5v電源供電

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

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

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

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

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

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

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

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

3樓:匿名使用者

我剛剛寫好的 我的數碼管是共陽的 用中斷函式來寫#include

#define uint unsigned int#define uchar unsigned charuchar code table=

;uint num,a;

uchar bai,shi,ge;

void init();

void delay(uint);

void display(ucharbai,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

}void init()

void display(ucharbai,ucharshi,ucharge)

void timeoff() interrupt 1}}void delay(uint z)

uint fb()

uint fs()

uint fg()

4樓:匿名使用者

#include

#define uint unsigned int

uint qian,bai,shi,ge;

int a;

unsigned char code table=;

void chushihua(); //初始化函式

void delay(unsigned int i); //延時函式

void xianshi(uint qian,uint bai,uint shi,uint ge); //顯示函式

void main()

xianshi(qian,bai,shi,ge); } }

void exter1() interrupt 1

void chushihua()

void delay(unsigned int i)

void xianshi(uint qian,uint bai,uint shi,uint ge)

5樓:匿名使用者

這個不難的 你自己動手練習一下就會了的

用51微控制器八位共陰極數碼管三極體,設計微控制器動態掃瞄顯示系統,八位數碼管穩定同時顯示1-8數字。

6樓:匿名使用者

樓上的程式不是看你圖編寫的,當然會錯,他那程式裡應該用到鎖存器了,你這兒是直接控制段選,位選的。

7樓:匿名使用者

#include

unsigned char code table=;

void show();

void delay();

void main()

void show()

}void delay()

8樓:琪羅琳

#include"reg52.h"

#define uchar unsigned char#define uint unsigned intsbit dula=p2^6;

sbit wela=p2^7;

uchar aa;

uchar code table=;

void delay(uint x)

void main()}}}

用c語言程式設計,使51微控制器數碼管從0顯示到60

9樓:匿名使用者

#include

#include

#define uchar unsigned char#define uint unsigned int#define dataport p0

#define rs_clr rs = 0#define rs_set rs = 1#define rw_clr rw = 0#define rw_set rw = 1#define en_clr en = 0#define en_set en = 1sbit rs = p1^3; //定義埠sbit rw = p1^4;

sbit en = p1^5;

sbit wx = p2^6;

sbit dx = p2^7;

sbit beep = p2^2;

unsigned char code table = ;

/** 功 能:延時,若干毫秒

* 參 數:毫秒數

* 返回值:無

*/void delayms(unsigned int i) //乙個延時函式,這個函式在11.0592m晶振下的延時時間大概為1ms

/** 功 能:延時

* 參 數:延時的數量

* 返回值:無

*/void delay(uint x)

/** 功 能:顯示計時的秒數

* 參 數:無

* 返回值:無

*/void display(uchar d2, uchar d1)void main()

d2 = second / 10;

d1 = second % 10;

for(i=50; i>0; i--)}}

微控制器控制數碼管為什麼顯示很暗,微控制器數碼管顯示 為什麼會乙個亮其他的都暗

可能是延時問題,以前也遇到過 延時時間太短,至少兩三毫秒 兩位的不需要接三極體。真正的這樣接的話,不串限流電阻,應該會燒數碼管的,估計這數碼管很差。延時0.2ms的都做過,顯示正常。加個上拉電阻。使用外部供電!微控制器控制數碼管為什麼顯示很暗 長期點亮就是 數碼管最亮 的時候。但動態顯示中做不到長期...

C51微控制器數碼管秒錶程式問題P3口顯示,P1口控制

晶振是11.0592mhz,1ms重新整理一次資料。case 0 led1 0 j p3 number a 0 break case 1 led2 0 j p3 number a 1 break case 2 led3 0 j p3 number a 2 break case 3 led4 0 j ...

用51微控制器控制4位led數碼管,使其顯示出想要的數字,程式

1 建立數字與p口對應的陣列 2 位選顯示 數碼管是8段的吧,正好對應某個p口的8個位,要顯示某個陣列只需將相應的px x亮起來就可以了 這樣 1 首先把段碼端和片選端都設為輸出,也就是led和微控制器連的那幾個角 2 你先用延時來做吧,大致是這樣的 設乙個片選有效 把要顯示的內容放段碼中 延時15...