導航:首頁 > 操作系統 > 單片機數碼管顯示c程序

單片機數碼管顯示c程序

發布時間:2022-11-15 01:04:33

A. 求單片機0~99共陽數碼數碼管顯示用C語言編寫的程序謝謝!

#include<reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharnum,count,ge,shi;

voiddelayxms(uint);

voiddisplay(uchar,uchar);

ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x98};

voidmain()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while(1)

{

display(shi,ge);

}

}

voidT0_time()interrupt1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

count++;

if(count==5)

{

count=0;

num++;

if(num==100)

num=0;

shi=num/10;

ge=num%10;

}

}

voiddelayxms(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voiddisplay(ucharshi,ucharge)

{

P2=0x02;

P0=table[ge];

delayxms(20);

P2=0x01;

P0=table[shi];

delayxms(20);

}

B. 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);//程序不再執行其他步驟;

}

(2)單片機數碼管顯示c程序擴展閱讀:

數字0-9的對應段碼:

數字0 0x3f

數字1 0x06

數字2 0x5b

數字3 0x4f

數字4 0x66

數字5 0x6d

數字6 0x7d

數字7 0x07

數字8 0x7f

數字9 0x6f

C. 關於單片機數碼管的C語言代碼,高分求詳解,先謝過

一、LedNumVal%10000/1000
%是模,取余數的意思,%10000,得到的數最大是四位數。
/是整除的意思不帶小數,如8/3=2
一個小於10000的數,整除1000結果一定是0到9之間的一個數
二、Disp_Tab
以及LedOut,
dispbit都是數組,根據相應的數可得到對應的字元數據,達到位選的功能。

D. 運用51單片機實現4位8段LED數碼管的動態數字顯示,寫出C語言程序

#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,nn=0;
uchar dat[]={2,0,1,2,1,1,4,5,8,2};
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
number++;
number%=4;
switch(number)
{
case 0:P2=0x08;P0=distab[nn];
break;
case 1:P2=0x04;P0=distab[nn+1];
break;
case 2:P2=0x02;P0=distab[nn+2];
break;
case 3:P2=0x01;P0=distab[nn+3];
break;
default:break;
}
nn++;
nn%=7;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}

E. 求單片機實驗七段數碼管顯示實驗程序

/* ch03-3-4.c - 七段LED數碼管實驗程序 */
//==聲明區=================================================
#include<reg51.h> //定義8051寄存器的頭文件,P2-17~19
#define SEG P0 //定義七段LED數碼管接至Port 0
/*聲明七段LED數碼管驅動信號數組(共陽)*/
char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //數字0-4
0x92,0x83,0xf8,0x80,0x98}; //數字5-9
void delay(int); //聲明延遲函數
//==主程序==========================================
main() //主程序開始
{ unsigned char i; //聲明無符號變數i
while(1) //無窮循環,程序一直跑
for(i=0;i<10;i++) //顯示0-9,共10次
{ SEG=TAB[i]; //顯示數字
delay(500); //延遲500×1m=0.5秒
} //for循環結束
} //主程序結束
//==子程序==========================================
/* 延遲函數,延遲約x×1ms */
void delay (int x) //延遲函數開始
{ int i,j; //聲明整形變數i,j
for (i=0;i<x;i++) //計數x次,延遲x×1ms
for (j=0;j<160;j++); //計數120次,延遲1ms
} //延遲函數結束

F. 單片機led顯示c程序

電路圖如下:

#include<reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitan=P2^6;

sbitwei=P2^7;

ucharcodedigit[6]={0xf9,0xa4,0xb0,0x99,0x92,0X82};

voiddelay(xms)

{

uinti,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

voidmain()

{

while(1)

{

wei=1;

P0=0x01;

wei=0;

an=1;

P0=digit[0];

an=0;

delay(500);

wei=1;

P0=0x02;

wei=0;

an=1;

P0=digit[1];

an=0;

delay(500);

wei=1;

P0=0x04;

wei=0;

an=1;

P0=digit[2];

an=0;

delay(500);

wei=1;

P0=0x08;

wei=0;

an=1;

P0=digit[3];

an=0;

delay(500);

wei=1;

P0=0x10;

wei=0;

an=1;

P0=digit[4];

an=0;

delay(500);

wei=1;

P0=0x20;

wei=0;

an=1;

P0=digit[5];

an=0;

delay(500);

}

}

G. 運用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編譯不了的

H. 51單片機 讓數碼管自動顯示0至9的C程序。有沒有比這個更簡單的

可以通過代碼優化的方式來簡化代碼。

一、設置延時函數

延時函數在單片機中有著讓現實延時的能力,本程序中可以通過採用for循環方式進行延時,具體代碼如下:

void delay()

uinti,j;

for(i=100;i>0;i--)

for(j=1000;j>0;j--);

二、設置數碼管顯示數組

數組定義簡單,而且訪問很方便。所有元素類型相同,在數碼管顯示程序中可以讓程序代碼減少。數組代碼如下:

chara[10]={0xff,0x3,0x9f,0x25,0xd,0x99,0x49,0x41,0x1f,0x1,0x9};

三、設置數碼管顯示循環

數碼管顯示循環可以不用編寫一次又一次的數碼管顯示代碼,既方便又簡潔。具體代碼如下:

for(inti=0;i<10;i++)

P0=a[i];

delay();

(8)單片機數碼管顯示c程序擴展閱讀

單片機程序進行簡化可以查看是否有反復出現的代碼序列,整合成循環進行更改。同一類型且用法相同的變數可以整合成數組,方便對各個內容進行訪問。有特定功能的代碼段可以定義一個函數進行訪問。

注意:用C51語言編輯的單片機程序與普通C語言不同,C51語言中的數據類型和標准c中的數據類型不同。

I. 51單片機顯示八位數碼管的C語言程序

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

閱讀全文

與單片機數碼管顯示c程序相關的資料

熱點內容
內江市程序員招聘 瀏覽:448
程序員老師身份 瀏覽:34
手機生兼職app的哪個比較靠譜 瀏覽:567
lua編譯有什麼用 瀏覽:350
買了伺服器如何架設 瀏覽:929
如何運用mex函數編譯c 瀏覽:896
24歲程序員倒在工作上 瀏覽:919
怎麼算梁的加密區 瀏覽:93
2016版office怎麼解壓 瀏覽:270
怎麼把安卓手機調的更暗 瀏覽:167
蘋果空間新演算法 瀏覽:91
android文字動畫效果 瀏覽:146
java調試命令 瀏覽:213
android子線程looper 瀏覽:782
linux安裝java7 瀏覽:189
單片機fdh 瀏覽:107
單片機原理與應用下載 瀏覽:590
順風車車主app在哪裡下載 瀏覽:235
雷石柏雲伺服器功率 瀏覽:102
全球服是什麼伺服器 瀏覽:237