當前位置:首頁 » 編程軟體 » 單片機led編程

單片機led編程

發布時間: 2022-05-16 23:29:57

㈠ 用c語言單片機led燈顯示數字「28」,如何編程

摘要 給LED編個數組,控制IO口,或者直接控制IO口,不過要看顯示的28要多大,會佔用比較多的IO口,道理和矩陣鍵盤差不多。

㈡ 單片機C語言編程點亮LED燈

可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。 具體實現方法可以參考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循環點亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,點亮下一位LED delay(55); } // 向右循環點亮LED for(i=0; i/ 右移一位,,點亮上一位LED delay(55); } }}// 延時函數,延時a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}

㈢ 用c語言單片機led燈顯示數字「28」,如何編程

  1. 給LED編個數組,控制IO口,或者直接控制IO口,不過要看顯示的28要多大,會佔用比較多的IO口,道理和矩陣鍵盤差不多。

  2. 常式:

    #include<reg52.h>//單片機頭文件
    voiddelay1ms(unsignedintms);//延時ms函數聲明(可根據實際情況更改)
    unsignedcharcodeled0[]={};//字碼表,你自己把你要顯示的字碼放進去就可以了
    voidmain()
    {
    unsignedcharw,i;
    while(1)
    {
    //顯示0
    w=0x01;//行變數為第一行
    for(i=0;i<8;i++)
    {
    P1=w;//行數據送P1口
    P0=led0[i];
    delayms(1);//列數據送P0口
    w<<=1;//向下移動一行
    }

    }
    }
    voiddelay1ms(unsignedintms)
    {
    unsignedinti,j;
    for(i=0;i<ms;i++)
    for(j=0;j<110;j++)
    }

㈣ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!

C語言實現LED燈閃爍控制配套51單片機開發板。

#include //包含單片機寄存器的頭文件

/****************************************
函數功能:延時一段時間

*****************************************/

void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。

{

unsigned int i; //定義無符號整數,最大取值范圍65535。

for(i=0;i<20000;i++) //做20000次空循環。

; //什麼也不做,等待一個機器周期。

}

/*******************************************************

函數功能:主函數 (C語言規定必須有也只能有1個主函數)。

********************************************************/
void main(void)

{

while(1) //無限循環。

{

P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。

delay(); //延時一段時間。

P0=0xff; //P1=1111 1111B, P0.0輸出高電平。

delay(); //延時一段時間。

}

}

單片機驅動LED燈的源程序:

#include<reg52.h> //頭文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定義。

void delay_ms(uint);//mS級帶參數延時函數。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延時子程序

{

uint x,y;

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

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

}

(4)單片機led編程擴展閱讀:

單片機應用分類:

通用型:

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型:

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。

另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型:

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。

通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

參考資料來源:網路-單片機



㈤ 單片機編程:LED動態顯示

不知道你要怎能么動?我就給個數字顯示也動,數碼館也流水顯示的
#include
#include
//包含流水燈的頭文件
#define
uint
unsigned
int
#define
uchar
unsigned
char
uint
temp,aa,num,numwe;
sbit
an=P3^3;
//段控制端定義
sbit
wei=P3^4;
//位控制端定義
uchar
code
tablewe[]={0x01,0x02,0x04,0x08,0x10,0x20};
//6個數碼管位碼
uchar
code
table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E,};
//數碼管段碼(共陽)
void
main()
{
//以下為初值:
aa=0;
num=0;
//段碼要顯示的個數,初始為0
numwe=0;
//位碼要移動的位數,初始為0
temp=0x01;
//顯示狀態為單燈暗涌移動,若改成0xfe則單燈點亮移動
P2=temp;
//LED顯示在第一位
an=1;
//選通段
P0=0xC0;
//送段碼、從0開始顯示
an=0;
//關閉段
wei=1;
//選通位
P0=0x01;
//送位碼、從第一位數碼管開始顯示
wei=0;
//關閉位
TMOD=0x01;
//TO工作方式1,也直接寫TMOD=0
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
//賦定時初值50MS
EA=1;
ET0=1;
//開定時器0中斷
TR0=1;
//啟動定時器0
//以下為循環:
while(1)
{
if(aa==100)
//變化延時
{
aa=0;
temp=_crol_(temp,1);
//單燈左移值
P2=temp;
//顯示
num++;
//段加1
if(num==16)//0~F共16個,最多到顯示」F"
num=0;
an=1;
//開段
P0=table[num];
//顯示
an=0;
numwe++;
//位加1
if(numwe==6)//最多移6位
numwe=0;
wei=1;
//開位
P0=tablewe[numwe];
//顯示
wei=0;
}
}
}
void
exter0()
interrupt
1
using
1
//using選通用工作寄存器R0-R7,默認為0組
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
aa++;
}

㈥ 51單片機匯編語言的led亮燈編程題求解,必採納

LED1 BIT P3.7 ; 程序沒有改動,為了配合模擬圖只改了埠。

KEY1 BIT P3.2

LJMP MAIN

ORG 0030H

MOV R1,#1 ; 亮燈個數

MAIN: MOV P1,#0FFH

CHECK: JB KEY1,CHECK

MOV P1,#11111111B

MOV R2,#8

LOOP: INC R1 ; 每次亮燈個數r1+1

MOV A,P1

CLR C

RRC A

MOV P1,A ; 亮燈

LCALL DL ; 跳到延遲程序 每次亮間延遲一會

DJNZ R2,LOOP ; 到r2(8次)循環結束

LJMP CHECK


ORG 0100H

DL: MOV R7,#100 ; 延遲程序

L1: MOV R6,#100

L2: MOV R5,#60

L3: NOP

NOP

DJNZ R5,L3

DJNZ R6,L2

DJNZ R7,L1

RET

END

㈦ 單片機編程,從0到9的數字在LED上顯示

#include<reg51.h>
#define uchar unsigned char
uchar code ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共陽級數碼管碼表0-9
uchar time,dat;
bit flag=1;
sbit la=; //段和位控制位需要你自己填寫。
sbit wela=;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time>=20)
{
dat++;
dat%=10;
flag=1;
}
}
main()
{
TMOD0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(flag)
{
flag=0;
la=1;
P0=0xff;
la=0;
wela=1;
P0=0x01;
wela=0;
la=1;
P0=ledtab[dat];
la=0;
}
}
}

㈧ 單片機 8個LED燈隨機閃爍怎麼做

1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。

㈨ 單片機C語言LED控制的編程

int i,j;
unsigned char data[]={0xff,0x55,0x80,0x1};
for(i=0;i<4;i++)
{
if(i==0 && i==2)
{
for(j=0;j<5;j++)
{
P1=data[i];
data[i]=~data[i];
delay(500);
}
}
else
{
for(j=0;j<8;j++)
{
P1=data[i];
if(i==2)data[i]>>=1;
else data[i]<<=1;
delay(500);
}
P1=0xff;
delay(500);
}
}

熱點內容
app什麼情況下找不到伺服器 發布:2025-05-12 15:46:25 瀏覽:714
php跳過if 發布:2025-05-12 15:34:29 瀏覽:467
不定時演算法 發布:2025-05-12 15:30:16 瀏覽:131
c語言延時1ms程序 發布:2025-05-12 15:01:30 瀏覽:166
動物園靈長類動物配置什麼植物 發布:2025-05-12 14:49:59 瀏覽:737
wifi密碼設置什麼好 發布:2025-05-12 14:49:17 瀏覽:149
三位數乘兩位數速演算法 發布:2025-05-12 13:05:48 瀏覽:399
暴風影音緩存在哪裡 發布:2025-05-12 12:42:03 瀏覽:545
access資料庫exe 發布:2025-05-12 12:39:04 瀏覽:632
五開的配置是什麼 發布:2025-05-12 12:36:37 瀏覽:366