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