Ⅰ 51單片機LED燈亮的c語言程序
/* 程序詳細功能介紹:
*利用取表的方法,使埠P0做單一燈的變化:左移2次,右移2次,閃爍2次(延時的時間0.2秒)。
*在用表格進行程序設計的時候,要用以下的指令來完成
*(1).利用MOV DPTR,#DATA16的指令來使數據指針寄存器指到表的開頭。
*(2).利用MOVC A,@A+DPTR的指令,根據累加器的值再加上DPTR的值,就可以使程序計數器PC指到表格內所要取出的數據。
*因此,只要把控制碼建成一個表,而利用MOVC 工,@A+DPTR做取碼的操作,
*就可方便地處理一些復雜的控制動作.
*/
#include <AT89X51.H>
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x00,0xff,0x00,0xff,
0x01};
unsigned char i;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
if(table[i]!=0x01)
{
P0=table[i];
i++;
delay();
}
else
{
i=0;
}
}
}
Ⅱ 用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--);
}
(2)c語言程序設計led擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
Ⅲ 編寫C語言程序,在「C語言編程訓練系統」上完成LED顯示功能
#include <stdio.h>
/* input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
Ⅳ C語言編程式控制制LED燈亮滅
如果你LED的介面一個低電平,即0,燈就會亮,給一個高電平,1,就會滅。如果要一閃一閃的,只需給亮和滅的中間加延時,控制亮滅次數,可以使用一個循環。
Ⅳ 用c語言編程三個按鍵對應點亮三個LED燈的程序,AT89S52單片機,最好有原理圖,謝謝。急求
這個也求?用按鍵點亮LED燈這個是51入門最基礎的東西,真心想學的話,買塊51的開發板,都帶有常式,很快就可以入門的。建議你還是多看看資料把基礎的東西學好。推薦你看一下《十天學會單片機和C語言編程》的視頻教程對入門還是不錯的。
三路搶答器提供你編程思路(按鍵掃描方式)參考,程序還是要根據你的硬體電路自己編寫。
埠配置:
1、選擇4個埠作為輸入埠連接按鍵(獨立按鍵,按鍵一端接單片機埠,另一端接地)。 三路為搶答的按鍵KEY1、KEY2、KEY3,一路為搶答後復位按鍵KEY0。
2、選擇3個埠作為輸出埠連接LED燈(高電平點亮還是低電平點亮要看你電路設計)對應為LED1、LED2、LED3。
編程思路:
1、初始設置一個搶答鍵按下與否的位標志變數:bit flag = 0;(沒有搶答按鍵按下flag = 0,有搶答按鍵按下flag = 1)。
2、主程序按鍵掃描循環。
3、按鍵按下程序KEY1、KEY2、KEY3基本相同。以KEY1為列:
首先判斷是否有搶答鍵按下(KEY1==0),如有搶答按鍵按下,延時10ms(消抖),再判斷是否KEY1==0,如果KEY1==0說明KEY1搶答按鍵已經按下,然後再判斷是否flag = =0,如果flag = =0,則點亮LED1(其他按鍵按下的話點亮相應的LED燈)、按鍵按下標志置「1」(flag = 1)。
4、復位按鍵程序判斷KEY0按下並且flag = =1時,關閉所有LED燈、按鍵按下標志復位置「0」(flag = 0)。
Ⅵ 單片機c語言編程點亮led燈
0xaa就是1357亮,0x55就是2468亮,加個延時加個while就行了
Ⅶ 求用C語言編程實現51單片機的LED燈移動
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,b,c,d;
void delay()
{
uint i;
for(i=0;i<200;i++)
}
void anjian()
{
if(P1^0==0)
{
delay();
if(P1^0==0)
a=1;
}
if(P1^1==0)
{
delay();
if(P1^1==0)
b=1;
}
if(P1^2==0)
{
delay();
if(P1^2==0)
c=1;
}
if(P1^3==0)
{
delay();
if(P1^3==0)
d=1;
}
}
void main()
{
while(1)
{
anjian();
if(a==1)
....... //io口做相應的處理,這里你具體沒說明,我都不知道怎麼寫了
if(b==1)
.......
if(c==1)
.......
if(d==1)
.......
}
}
Ⅷ 單片機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燈是如何實現的嗎
其實說白了,首先led燈要導通,才會亮,這個你懂的吧,然後呢,其實就是控制單片機的埠高低電平,然後呢,讓led燈導通就亮了,在你編程的時候,對應使用哪個埠出高低電平,這個是在程序中一目瞭然的,那麼高低電平再去讓led燈亮滅,基本就是這樣,不知道你聽懂了沒有
Ⅹ 用C語言編程實現8位led燈循環
這個是P4的配置
ANSB&=0XFF00;//管模擬輸入模式
TRISB|=0X00FF;//埠設為輸出模式
埠配置是這樣的,