當前位置:首頁 » 編程語言 » c語言數碼管程序

c語言數碼管程序

發布時間: 2023-05-07 16:19:36

『壹』 51單片機,8個數碼管循環顯示1-9的c語言程序。

假設8個歷氏鎮數碼核鄭管肢粗公共端均接地,同時顯示1-9x0dx0a#includex0dx0a#includex0dx0a#defineucharunsignedcharx0dx0a#_CODE[]=x0dx0a{x0dx0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xffx0dx0a};x0dx0avoidDelayMS(uintx)x0dx0a{x0dx0auchart;x0dx0awhile(x--)x0dx0afor(t=120;t>0;t--);x0dx0a}x0dx0avoidmain()x0dx0a{x0dx0auchari=0;x0dx0aP0=0x00;x0dx0awhile(1)x0dx0a{x0dx0aP0=~DSY_CODE[i];x0dx0ai=(i+1)%10;/*顯示0-9*/x0dx0aDelayMS(200);x0dx0a}x0dx0a}x0dx0a下面程序從左到右顯示x0dx0a#includex0dx0a#includex0dx0a#defineucharunsignedcharx0dx0a#_CODE[]=x0dx0a{x0dx0a0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90x0dx0a};x0dx0ax0dx0avoidDelayMS(uintx)x0dx0a{x0dx0auchari;x0dx0awhile(x--)x0dx0a{x0dx0afor(i=200;i>0;i--);x0dx0a}x0dx0a}x0dx0ax0dx0avoidmain()x0dx0a{x0dx0auchari,k=0x80;x0dx0awhile(1)x0dx0a{x0dx0afor(i=8;i>0;i--)x0dx0a{x0dx0aP2=0xff;x0dx0ak=_crol_(k,1);x0dx0aP0=DSY_CODE[8-i];x0dx0aP2=k;x0dx0aDelayMS(3);x0dx0a}x0dx0a}x0dx0a}

『貳』 求用c語言寫的八位數碼管動態顯示程序,P0控制段,P2控制位。

#include"reg51.h"
#include "intrins.h" //_nop_();延老拿時函數用
#define uchar unsigned char
#define uint unsigned int
#define SEG_OUT P0 //段碼輸出口
#define BIT_OUT P2 //掃描口
sbit dot=P2^7; //LED小數點控制
uchar code tab[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/* 共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */
uchar data dis_buff[8]={1,2,0,0,0,0}; //待顯示單元數據,共6個數據
unsigned long temp;
/*************1毫秒延時程序**************/
delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<侍虧搭120;j++)
;
}
//
/***********LED顯空友示動態掃描函數**********/
display()
{
char k;
char m=0xfe;
for(k=0;k<8;k++) //8位LED掃描控制
{ BIT_OUT=0xff;
SEG_OUT=tab[dis_buff[k]];
BIT_OUT=m;
delay1ms(3);
m=(m<<1)|0x01;

}
dis_buff[0]=temp/10000000;

dis_buff[1]=(temp%10000000)/1000000;
dis_buff[2]=(temp%1000000)/100000;
dis_buff[3]=(temp%100000)/10000;
dis_buff[4]=(temp%10000)/1000;
dis_buff[5]=(temp%1000)/100;
dis_buff[6]=(temp%100)/10;
dis_buff[7]=temp%10;
}
/**************初始化程序****************/
void initiation()
{
TMOD=0x01;
TH0=-10000/256;
TL0=-10000%256; //10MS定時初值(T0計時用)
ET0=1;
TR0=1;
EA=1;
}

/****************定時器0中斷服務程序*****/
void init_timer0(void) interrupt 1
{
TH0=-10000/256;
TL0=-10000%256; //10MS定時初值(T0計時用)
t10ms++;
if(t10ms==100)
{
t10ms=0;
ts++;
if(ts==60)
{
temp++;
ts=0;
}
}
}
/****************主程序******************/
main()
{
initiation();
while(1)
{
display();
}
}
一秒加1

『叄』 C語言數碼管計數程序

#include<咐昌扮reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
};
sbit key1=P3^4;

uchar num=0;
void delay(uint z);
void main()
{
while(1)
{
P2=0xfe;
P0=table[num];
delay(50);

if(key1==0)
{
while(!key1);
num++;
};

if(num==10)
{
num=0;
};
}
}

void delay(uint z)
{
while(z--);
}

看衡灶看吧,一迅銷個道理。

『肆』 用C語言編制一個在8個數碼管上輪流顯示1~8的程序(單片機8051)

#include
<搭沒reg51.h>
#define
uint
unsigned
int
/坦枝啟/
宏定義
可以不用
#define
uchar
unsigned
char
sbit
//位申明
具體看你的數碼管是共陰還是共陽的
還有要用到的I/O口
char
tab[]={}
//顯示1--8的數碼管編碼;
voide
delay(uint
a)
//延遲a
ms
晶讓如振偉11.0592
{
uint
i,
j;
for(i=a;i>0;i--);
for(j=110;j>0;j--);
}
main()
{
while(1)
{
//在循環語句里執行顯示函數
}
}
說明:由於這個得看你的電路圖具體情況,上面只是一個框框,你可以自己該就可以!

『伍』 51單片機的共陰數碼管怎麼顯示數字(c語言)

要讓51單片機共陰數碼管顯示數字,只需要將單片機的P2埠輸出數字對應的段碼即可。

以顯示數字「0」碧飢為例,c語言程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

//數碼管的段碼編碼

Uchar table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void main(){//主函數

P0 = table[0];//顯示0,大家可以修改裡面的數據。

while(1);//程序不再執行其他步驟;

}

擴展跡返資料:

數字0-9的對應段碼:

數字0 0x3f

數字1 0x06

數字2 0x5b

數字3 0x4f

數字4 0x66

數字5 0x6d

數字6姿慧飢 0x7d

數字7 0x07

數字8 0x7f

數字9 0x6f

『陸』 單片機數碼管顯示0到999c語言程序怎麼編

#include<reg51.h>

unsigned char xs_d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsigned int time=0,s,sz;delay(unsigned int k)
{

unsigned int i,j;

for(i=0;i<k;i++)

for(j=0;j<125;j++);

}INT_0()interrupt 0

{ delay(10);

if(INT0==0){sz++;<br> if(sz>2){sz=0;}

}
}

void T0_int()interrupt 1
{

TH0=(65535-50000)/256;//設置初值

TL0=(65535-50000)%256;

s++;
if(s>首喊20){s=0;<br> if(sz==1)time++;<br> if(time>999){time=0;}

if(sz==0){time=0;//清零<br>伏卜 }



(6)c語言數碼管程序擴展閱讀:

運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存缺芹穗器等幾部分組成。

ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。

運算器有兩個功能:

(1) 執行各種算術運算。

(2) 執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。

運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。



『柒』 c語言程序怎麼讓數碼管循環顯示0123-9012再到0123然後數碼管熄滅

1.首先你要有幾個函數可以顯示每個數碼管數字

voidled1Show(chardat);
voidled2Show(chardat);
voidled3Show(chardat);
voidled4Show(chardat);
dat為你要顯示此世的字元,函數是不是能復用,看你代碼

2.再寫一個統一顯示的函數

voidledShow(intdat)//dat為你要顯示的數字
{
led1Show(dat/1000);
led2Show(dat%1000/100);
led3Show(dat%100/10);
led4Show(dat%10);
}

3.在你的主函數中調用

intdat=123;
while(1)
{

ledShow(dat);
並螞dat++;
if(dat>9012)
絕扒埋dat=123;
delay_ms(500);//加個延時,要不然會刷新太快。
}

『捌』 51單片機顯示八位數碼管的C語言程序

1、最開始,我們虛桐先打開keil。

熱點內容
centos升級python27 發布:2024-11-02 02:00:57 瀏覽:673
ue4未找到編譯器 發布:2024-11-02 01:46:08 瀏覽:155
python中的withopen 發布:2024-11-02 01:46:07 瀏覽:976
編程名人 發布:2024-11-02 01:42:18 瀏覽:867
伺服器電腦配置表 發布:2024-11-02 01:41:29 瀏覽:370
linux使用串口 發布:2024-11-02 01:37:11 瀏覽:702
二維碼掃的密碼從哪裡開始 發布:2024-11-02 01:24:57 瀏覽:473
如何將手錶改成開放式安卓系統 發布:2024-11-02 01:09:00 瀏覽:739
6s還能用嗎能和什麼安卓機比 發布:2024-11-02 01:08:09 瀏覽:765
SQL擴位 發布:2024-11-02 00:55:35 瀏覽:447