① 怎樣用keil編寫4位數碼管顯示1234的程序
這是用C編的:共陰數碼管#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
uint temp=1234;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71} ;
void play(uint);
void delay(uint);
void main()
{
while(1)
{
play(temp);
}
}
void play(uint temp)
{
la=1;
P0=table[temp/1000];
la=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(5);
la=1;
P0=table[temp%1000/100];
la=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
la=1;
P0=table[temp%1000%100/10];
la=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
la=1;
P0=table[temp%10];
la=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
② 運用51單片機實現4位8段LED數碼管的動態數字顯示,寫出C語言程序
動態顯示的是有固定格式的,賦值,開顯示,延時,關顯示,假設p0口接數據顯示位,p2口低4位接片選,
p2=tab[1];
//賦值
p3_0=0;
//開第一位顯示
for(i=0;i<200:i++);//延時
p3_0=1;
//關第一位顯示
p2=tab[2];
p3_1=0;
//開第二位顯示
for(i=0;i<200:i++);
p3_1=1;
這個程序就是讓兩個數碼管分別顯示1和2,注意程序開頭包含頭文件regx52.h,如果是包含reg52.h編譯不了的
③ 四位數碼管連接如何連接單片機
1、最開始,先打開keil。
④ 四位共陽極數碼管如何設置位選c語言編碼
如果是AT89***或者STC**單片機,如圖依圖完整的控制代碼沒時間弄你可以網路,資源多的是,如果只想知道數碼位的控制方法可以說一下,根據你圖示,只要在三極體的基極加上低電平就可以給相應的數碼位加電,簡單代碼如下:
1.可以分別定義控制埠
sbti WE1=P1^0;//這里假定用P1口控制數碼位
sbti WE2=P1^1;
sbti WE3=P1^2;
sbti WE4=P1^3;
進行上述定義後,在程序中只要有代碼WE1=0;則第一位數碼就通電了,此後會根據段碼數據顯示相應的數字。
2.如果I/O口資源充足,也可以用一個完整I/O口來控制,以P1為例,只要將WE1--4引線分別於P1.0--3連接,在程序中只要有代碼P1=0xfe,就可以點亮WE1位,同理,代碼0xfd;0xfb;0xf7
可以分別點亮WE2,WE3,WE4位。
⑤ AT89C51單片機怎麼用匯編語言讓4個數碼管同時顯示1234
1、首先我們先打開keil。
⑥ 用c語言編寫程序,用於c51單片機四位共陰數碼管顯示,顯示分秒的計時器。
用c語言編寫程序,用於c51單片機四位共陰數碼管顯示,顯示分秒的計時器。
用proteus做的時鍾
可以顯示年月日時分秒
可調整時間
有圖
*/
#includereg52.h
⑦ avr用C語言編程四位7段數碼管顯示
隨便找一本書AVR-C的書,基本都有AVR 數碼管的常式 ,稍微改一下就可以啊,
最簡單的判斷按鍵然後用不同的switch case就可以了
⑧ 四位數碼管單片機AT89C52求c語言編程
單片機是AT89C52,這是要模擬吧,那就先畫出模擬圖,確定什麼數碼管,才能寫程序。下圖是用四位一體的共陰數碼管畫的模擬圖,P0口輸出段碼,P2輸出位碼。
⑨ 共陰極數碼管四位0到999的循環在變為0怎麼用c語言編寫啊
#include<reg52.h>
#defineu16unsignedint
#defineu8unsignedchar/*********************************************************/
u8ds[4];//數碼管顯示緩存
codeu8w[]={~0x01,~0x02,~0x04,~0x08}; //位碼
codeu8d[]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90,~0xff,};//斷碼
voiddispaly(){//顯示函數
staticu8a;
if(++a>3)a=0;
P0=0x00;
P2=w[a];
P0=d[ds[a]];
}
/****************************************/
voidinit() //初始化函數
{
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
}
u16count=0;
u16js=0;
/***********************************/
voidmain()//主函數
{
init();//系統初始化
TR0=1;//定時器開始計時
while(1){
ds[0]=10;
ds[1]=count/100%10;//計數送到數碼管顯示緩存中
ds[2]=count/10%10;
ds[3]=count%10;
}
}
/****************************/
voidtimer0()interrupt1//1ms定時器
{
TH0=(65536-1000)/256;//重載初值
TL0=(65536-1000)%256;
dispaly();//顯示
if(++js>=1000){1秒加一
js=0;
if(++count>999)count=0;
}
}
⑩ 如何將鍵盤檢測的值動態顯示在四位數碼管上,用C語言編程
先掃描鍵盤輸入,存在一個數組里,再用循環程序進行輸出。由於你沒有具體的外圍電路設計,所以不能寫出具體代碼。給我分吧