導航:首頁 > 操作系統 > 單片機數碼管顯示從0到9

單片機數碼管顯示從0到9

發布時間:2022-09-05 06:03:40

單片機匯編語言讓數碼管顯示0到9

小建議,釆用STC的51晶元替代AT的,釆用595替代164。

㈡ 51單片機c語言設計,按鍵控制數碼管,依次按下顯示0到9循環

假設你的是共陽極數碼管,P0接數碼。按鍵接P2^0;

#include<reg52.h>
typedef unsinged int uint;
sbit key=P2^0;
unsigned char tab[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void denay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--)

}

void main()
{
uchar a;

while(1)
{
P0=tab[a];

if (key1==0)
{delay(10);
if(key==0)
{
while(!key1);

a++;
if(a==10) a=0;

}

}

}

㈢ 單片機數碼管顯示0到9

#include<reg51.h>

sbitk1=P1^0;

#define uint16 unsigned int

#define uchar unsigned char

uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay(){

uint16 i=1000;

while(i--);}

void main()

{

uchar n ;

P2=0xfe;

P1=0xff;

while(1)

{

if(k1==0){

if(n>=9) n=0;

else n++;

P0=shuzu[n];

while(!k1);

delay();

while(!k1);

}

}

}

(3)單片機數碼管顯示從0到9擴展閱讀:

51單片機的功能特性

1,可以模擬63K程序空間,接近64K 的16位地址空間;

2,可以模擬64Kxdata 空間,全部64K 的16位地址空間;

3,可以真實模擬全部32 條IO腳;

4,完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;

5,可以使用C51語言或者ASM匯編語言進行調試 ;

6,可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;

7,可選 使用用戶晶振,支持0-40MHZ晶振頻率;

8,片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;

9,可以模擬雙DPTR 指針;

10,可以模擬去除ALE 信號輸出. ;

11,自適應300-38400bps 的所有波特率通訊;

12,體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;

13,模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;

14,模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;

15,RS-232介面不計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。

㈣ 單片機數碼管顯示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> }



(4)單片機數碼管顯示從0到9擴展閱讀:

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

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

運算器有兩個功能:

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

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

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



㈤ 我想要實現單片機: 數碼管每隔1s顯示從0-9怎麼實現 全部代碼。

你要c語言的還是匯編的?
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uchar x); //延時程序
void ds_50ms(void); //50ms定時,中斷程序
void Ptime(uchar); //時間處理函數
void Js_Scan(void); //數碼管掃描函數

sbit S1=P2^4; //置位P2.4為數碼管1控制位

int num=0,m=0; //定義數據類型

//int code LED_Num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數碼管掃描數組,共陰極
int code LED_Num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陽極

void main(void) //主函數
{
TMOD=0x01; //定義計時器工作類型
TH0=(65535-50000)/256; //定時器高4位初值
TL0=(65535-50000)%256; //定時器低4位初值
EA=1; //開中斷
ET0=1; //開中斷
while(1) //建立死循環
{
Js_Scan(); //調用數碼管掃描函數
TRO=1;
}
}
void ds_50ms(void) interrupt 1 using 1 //50ms定時中斷程序
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++; //執行累加,直到50ms
Ptime(num); //調用時間處理函數
}
void Ptime(uchar time) //時間處理函數
{
if(time==20) //判斷是否到1000ms,即1秒
{
num=0; //num清零
m++; //m累加
}
if(m==9) //數碼管顯示9時,m清零,重新計數
{
m=0;
}
}
void Js_Scan() //數碼管掃描函數
{
uchar j; //定義j數據類型
for(j=0;j<5;j++) //建立循環
{
S1=1;P0=LED_Num[m];delay(1);S1=0; //掃描顯示位,稍作延時(對於單位數碼管可直接置高置低,此為掃描的寫法,單位不需要延時,不需要寫for循環)
}
}
void delay(uchar x) //延時函數,防止數碼管顯示不穩定
{
uchar k;
while(x--)
for(k=0;k<125;k++);
}
這個是共陽極的,共陰極改變數組就行了。。。。 將前面的//刪掉 將後面數組加上// S1=0;S1=1;就行了。

㈥ 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();

(6)單片機數碼管顯示從0到9擴展閱讀

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

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

㈦ C51單片機:用數碼管顯示0到999的值。求c語言程序和原理圖

#include<reg51.h>

#define uchar unsigned char

uchar temp;

int key1,key,disbuf;// 此表為 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f

unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

unsigned char ledx[8];

bit s0,s1;

void delay(uchar z)

{

uchar i,j;

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

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

}

void scan() //要是按鍵了,掃描鍵盤編碼值

{

P1=0xF0;

delay(1);

temp=P1;

switch(temp)

{

case 0xe0: key1=0;

break;

case 0xd0: key1=1;

break;

case 0xb0: key1=2;

break;

case 0x70: key1=3;

break;

}

P1=0x0f;

delay(1);

temp=P1;

switch(temp)

{

case 0x0E: key=key1+0;

break;

case 0x0D: key=key1+4;

break;

case 0x0B: key=key1+8;

break;

case 0x07: key=key1+12;

break;

default : key=-1;

}

if((key1+1)&&(key+1)) disbuf=key;

}

void ejjc() //判斷是否按鍵

{

P1=0xF0;

if(P1!=0xF0) { scan();s0=1;}

else { s0=0; s1=1;}

}

void main()

{

uchar i;

while(1)

{

ejjc();

if(s0==1 && s1==1)

{

s0=0;s1=0;

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

{ ledx[i]=ledx[i+1]; ledx[8]=disbuf; }

}

P0=0xff;

P2=LED7Code[ledx[0]];

P0=0xfe;

delay(5);

P0=0xff;

P2=LED7Code[ledx[1]];

P0=0xfd;

delay(5);

P0=0xff;

P2=LED7Code[ledx[2]];

P0=0xfb;

delay(5);

P0=0xff;

P2=LED7Code[ledx[3]];

P0=0xf7;

delay(5);

P0=0xff;

P2=LED7Code[ledx[4]];

P0=0xef;

delay(5);

P0=0xff;

P2=LED7Code[ledx[5]];

P0=0xdf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[6]];

P0=0xbf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[7]];

P0=0x7f;

delay(5);

}

}

㈧ 求:用單片機C語言編一位數碼管的數字顯示 要求可以從0變化到9

//程序功能:000-999顯示
//2012-
//作者:李超峰
//版本:VER:1.0
//=============================
#include
<reg51.h>
sbit
SEG=P1^5;
unsigned
char
SEGTAB[10]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
////////延時子函數////////////////////
void
delay(int
x)
{
int
i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
///////////主函數部分///////////////////
main(void)
{
while(1)
{
int
i;
for(i=0;i<9;i++)
{
SEG=0;
P0=SEGTAB[i];
delay(1000);
}
}
}

㈨ 51單片機 編寫4個LED數碼管同時循環顯示0—9的數字 的程序。

#include<reg51.h>

#defineucharunsignedchar
ucharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9
uchartime,scanled,tiao;
uchardisdat[6]="201803";
voiddelay(unsignedintx)
{
unsignedinti,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
voidt0isr()interrupt1 //秒計時
{
TH0=0x3c;
TL0=0xb0;
time++;
if(time==20)
{
time=0;
tiao++;
tiao%=10;
}
}

voidt1isr()interrupt3 //顯示
{
TH1=0xec;
TL1=0x78;
P2=1<<scanled;
P0=~ledtab[tiao];
scanled++;
scanled%=4;
}
main()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
while(1);
}

閱讀全文

與單片機數碼管顯示從0到9相關的資料

熱點內容
wordtopdf轉換 瀏覽:840
雲伺服器在哪設置ftp 瀏覽:620
黑客社會工程學攻擊pdf 瀏覽:996
專業中穎單片機程序開發 瀏覽:424
python多進程多線程實例 瀏覽:637
山東濟南生產伺服器雲主機 瀏覽:310
演算法員跳槽四年 瀏覽:730
秦九昭演算法v0怎麼求 瀏覽:384
斗魚java 瀏覽:896
程序員對老師的感謝 瀏覽:29
什麼app能查看銀行卡照片 瀏覽:24
win7pdf虛擬列印 瀏覽:332
程序員喜歡的女生條件 瀏覽:123
阿里雲伺服器ip搭建教程 瀏覽:85
解壓和拉伸這一動畫的原理是什麼 瀏覽:740
tbc戰士的命令怒吼 瀏覽:481
idea快捷鍵看源碼 瀏覽:976
手機碎屏解壓工具 瀏覽:245
jsonrpcphp使用 瀏覽:566
網上求職系統源碼 瀏覽:699