❶ 如何利用單片機讓4位數碼管顯示
程序如下(用的是STC89C52晶元):
#include<reg52.h>//52系列單片機頭文件
#defineucharunsignedchar
#defineuintunsignedint
uintx,y;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰極數碼管編碼
voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數
voiddelay(int);//聲明子函數
voidmain()
{
while(1)
{
display(1,2,3,4);//主程序始終調用數碼管顯示子程序
}
}
voiddisplay(uchara,ucharb,ucharc,uchard)
{
P2=0xef;
P0=table[a];//給第一個數碼管送"a"
delay(1);//延時1ms
P2=0xdf;
P0=table[b];//給第二個數碼管送"b"
delay(1);//延時1ms
P2=0xbf;
P0=table[c];//給第三個數碼管送"c"
delay(1);//延時1ms
P2=0x7f;
P0=table[d];//給第三個數碼管送"d"
delay(1);//延時1ms
}
voiddelay(uintz)//延時子函數
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(1)單片機數碼管代碼擴展閱讀
led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。
位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。
❷ 單片機中二位數碼管的顯示,怎樣用c語言寫一段從0到99的程序啊
公陽,P0.2,P0.3 分別通過PNP管接個位,十位數碼管公共端,P1口輸出數據,都是低電平有效
#include <reg51.h>
sbit shi=P0^3; //十位公共極
sbit ge=P0^2; //個位公共極
#define Out P1 //數據輸出端
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陽
// 實際顯示 0 1 2 3 4 5 6 7 8 9
//延時----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
unsigned char i=j=0;
while(1) //循環顯示
{
for(i=0;i<200;i++)
{
Out=tab[j%10];
ge=0;
Delay(1000);
ge=1;
Out=tab[j/10];
shi=0;
Delay(1000);
shi=1;
}
j++;
}
}
❸ 單片機用匯編寫兩個數碼管顯示0到99循環的程序
1、新建項目,做好准備。
❹ 單片機用匯編寫兩個數碼管顯示0到99循環的程序
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();
}
(5)單片機數碼管代碼擴展閱讀
單片機程序進行簡化可以查看是否有反復出現的代碼序列,整合成循環進行更改。同一類型且用法相同的變數可以整合成數組,方便對各個內容進行訪問。有特定功能的代碼段可以定義一個函數進行訪問。
注意:用C51語言編輯的單片機程序與普通C語言不同,C51語言中的數據類型和標准c中的數據類型不同。
❻ 在單片機C語言中數碼管的 斷碼和位碼定義起什麼作用
在單片機C語言中,數碼管的段碼定義了數碼管的顯示內容,比如0~9的顯示段碼分別定義為:
共陽:uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9
共陰:uchar code ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
數碼管位碼定義了具體哪個數碼管顯示,也就是顯示數碼管的位置。比如:共8個數碼管
共陽:uchar code WeiMa[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
共陰:uchar code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
❼ 51單片機怎麼用按鍵控制一個數碼管,按一下顯示一個數字,順序顯示
1、首先,要把代碼寫好,點亮數碼管。
❽ AT89C51單片機怎麼用匯編語言讓4個數碼管同時顯示1234
1、首先我們先打開keil。
❾ 51單片機怎樣用鍵盤控制數碼管顯示
51單片機怎樣用鍵盤控制數碼管顯示的方法。
如下參考:
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);//程序不再執行其他步驟;
}
(10)單片機數碼管代碼擴展閱讀:
數字0-9的對應段碼:
數字0 0x3f
數字1 0x06
數字2 0x5b
數字3 0x4f
數字4 0x66
數字5 0x6d
數字6 0x7d
數字7 0x07
數字8 0x7f
數字9 0x6f