『壹』 寫一個單片機控制LED小燈閃爍的程序,編譯時出現五處錯誤,如圖
#include<reg52.h>
typedefunsignedintuint16;
typedefunsignedcharuint8;
sbitADDR0=P1^0;
sbitADDR1=P1^1;
sbitADDR2=P1^2;
sbitADDR3=P1^3;
sbitENLED=P1^4;
sbitLED2=P0^0;
voiddelay(uint8)//////////////////////////////////////////////////////////再這里加個分號
main()
{
uint8counter=0;//定義一個累加變數
ENLED=0;ADDR3=0;//打開74HC138解碼器(3線8線解碼器)
ADDR2=1;ADDR1=1;ADDR0=0;//通過輸入信號110使輸出端LEDS6輸入信號0
TMOD=0x01;//設定計數器T0的模式為16位定時器
TH0=0xDC;TL0=0x00;//給16位定時器的高八位和低八位賦初值,累加到溢出清零剛好0.01S
TR0=1;//打開定時器,16位定時器從初值開始+1
while(1)
{
if(1==TF0)//TF是溢出標志,TF=0代表16位定時器累加到清零溢出
{
TH0=0xDC;TL0=0x00;//使16位定時器變回初值
TF0=0;//手動給溢出標志TF清零
counter++;//溢出一次,counter+1一次
}
if(100==counter)//重復溢出100次,也就是16位定時器從初值到清零溢出循環了100次0.01×100=1S
{
counter=0;//counter清零進入下一輪1S延遲
LED2=~LED2;//LED2如果是亮的就變成暗的,如果是暗的就變成亮的,每次亮或滅間隔1S
}
}
}
『貳』 8個LED指示燈循環閃爍的程序(單片機)
1:設置一個變數i,它可以從0循環到3
2:檢測一個已取消緩沖的鍵。按「+1」
3:當I值為每個值時,執行相應的模式。
水量燈參考程序
#include
#include
#定義uchar無符號字元
Ucharj,溫度;
無效延遲(無符號整型ms)
{
Uchart;
(女士)
對於(t = 0;T < 123;T + +);
}
Voidmain()
{
P1=0XFF;
延遲(500);
Temp=0xfe;//奇怪,led連接在P2.3~P2.6
對於(j = 0;J < 4;J + +)
{
P1=temp;
延遲(500);
Temp=_crol_(Temp,1);
}
P1=0XFF;
(1);
}
(2)編譯LED閃爍程序擴展閱讀:
注意事項:
#include「reg52。這個文件為單片機定義了一些特殊的功能寄存器
Typedef無符號int在16以下;//以聲明的方式定義數據類型
無符號charu8;
//LED燈
Sbitleda=P0;
Sbitled1=P0^0;
Sbitled2=P0^1;
Sbitled3=P0^2;
Sbitled4=P0^3;
Sbitled5=P0^4;
Sbitled6=P0^5;
Sbitled7=P0^6;
Sbitled8=P0^7;
無效延遲(16歲以下)
{
,(我);
}
Voidmain()
{
而(1)
{
勒達=1;//所有的燈都亮著
//從左到右熄滅
Led1=0;
延遲(50000);//延遲時間約為450毫秒
Led2=0;
延遲(50000);//延遲時間約為450毫秒
Led3=0;
延遲(50000);//延遲時間約為450毫秒
Led4=0;
延遲(50000);//延遲時間約為450毫秒
Led5=0;
延遲(50000);//延遲時間約為450毫秒
Led6=0;
延遲(50000);//延遲時間約為450毫秒
Led7=0;
延遲(50000);//延遲時間約為450毫秒
Led8=0;
延遲(100000);//延遲大約900毫秒
//從右到左照明
Led8=1;
延遲(50000);//延遲時間約為450毫秒
Led7=1;
延遲(50000);//延遲時間約為450毫秒
Led6=1;
延遲(50000);//延遲時間約為450毫秒
Led5=1;
延遲(50000);//延遲時間約為450毫秒
Led4=1;
延遲(50000);//延遲時間約為450毫秒
Led3=1;
延遲(50000);//延遲時間約為450毫秒
Led2=1;
延遲(50000);//延遲時間約為450毫秒
Led1=1;
延遲(50000);//延遲時間約為450毫秒
勒達=1;//所有的燈都亮著
}
}
『叄』 單片機控制LED燈閃爍的程序,編譯時遇到了兩個錯誤,如圖
void delay(uint8 x);
main()
{}
void delay(uint8 x); //聲明一個延遲x秒的函數 //定義一個延遲x秒的函數
{
uint8 i,j;
TMOD=0x01; //設定寄存器模式為16位定時器
TH0=0xDC;TL0=0x00; //設定16位定時器的高八位和低八位初值
for(i=0;i!=x;i++) //大循環:一個循環=1秒,循環x次,總計x秒
for(j=0;j!=100;j++) //中循環:一個循環=0.01秒,循環100次,總計1秒
{
for(;0==TF0;) //小循環:TH0,TL0從初值累加到溢出所需的時間=0.01秒
{
TR0=1; //打開定時器從初值開始累加
}
TF0=0; //TF是溢出標志需要手動清零,TF==0表示沒溢出
}
}
『肆』 編寫一個c程序來控制LED閃爍,通過iic匯流排,就是sbit sda....sbit scl.... 求告知 應該怎麼編寫
有一個51單片機的
/**************************************************************************************
*LED閃爍的簡單試驗*
*
*連接方法:JP11(P2)和JP1用8PIN排線連接起來*
**
***************************************************************************************/
#include<reg51.h>//此文件中定義了51的一些特殊功能寄存器
voiddelay(unsignedinti);//聲明延時函數
main()
{
P1=0x00;//置P0口為低電平
delay(600);//調用延時程序
P1=0xff;//置P0口為高電平
delay(600);//調用延時程序
}
/*******延時函數*************/
voiddelay(unsignedinti)
{
unsignedcharj;
for(i;i>0;i--)
for(j=255;j>0;j--);
}
單片機是連線
『伍』 匯編語言或C語言編寫一個控制燈閃爍的程序
我寫的這個程序應該可以,按一下燈亮,再按一下燈滅
#include "REG52.H"
sbit LED1_01 = P1^1; //LED燈
sbit KEY0_01 = P1^2; //按鍵
void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}
int main(void)
{
LED1_01 = 1; //打開LED燈點亮
while(1)
{
if(KEY0_01 == 0) //檢測按鍵是否按下
{
Delay_1ms(10); //延時去抖動
if(KEY0_01 == 0) //確定按鍵按下
{
LED1_01 = ~ LED1_01; //取反LED燈 [ 亮 . 滅 ] }
while(KEY0_01 == 0); //檢測鬆手
}
}
}
你的圖里有A/D轉換器
AD轉換函數ADC_DIS.C
#include <REGX51.H>
#include"def.h"
#include"lib.h"
sbit adc_cs=P1^0;
sbit adc_rd=P1^1;
sbit adc_wr=P1^2;
/***ADC0804啟動轉換函數***/
INT8U start_ad()
{
INT8U
temp;
adc_cs=0;
adc_wr=1;
delay(1);
adc_wr=0;
delay(1);
adc_wr=1;
delay(1); //啟動AD
adc_rd=1;
delay(1);
adc_rd=0;
delay(1);
temp=P2;
delay(1);
adc_rd=1;
delay(1);
//讀取數據
return
temp;
}
用這個程序。
『陸』 用C語言編寫一個單片機控制LED燈閃爍三次的程序,急求!
# P1上接LED等。
#include "reg51.h"
void delayms(unsigned int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=0;j<120;j++);
}
void main(void)
{
char i;
for(i=0;i<6;i++)
{
P1 = ~P1;
delayms(1000);
}
while(1);
}
『柒』 如何用匯編語言控制led燈閃爍
用AT89C2051單片機(可以換成任意的51單片機)模擬,控制一個LED燈閃爍,LED燈接在P1.7腳上。程序如下
LED1 BIT P1.7
MAIN:CPL LED1
ACALL DELAY
SJMP MAIN
DELAY:MOV R7,#0;延時子程序
MOV R6,#0
LOP:DJNZ R6,$
DJNZ R7,LOP
RET
模擬圖如下
『捌』 用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--);
}
(8)編譯LED閃爍程序擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
『玖』 用keil編一個led燈閃爍程序
點亮 小燈的程序我們第二課完成了,就是讓 LED = 0。熄滅小燈的程序也很簡單,就是 LED = 1。點亮和熄滅都會了,那麼如果我們在亮和滅中間加個延時,反復不停的點亮和熄滅小燈,就成了閃爍了。
我們首先復習一下 Keil 寫程序的過程,建立工程-->保存工程-->建立文件-->添加文件到工程-->編寫程序-->編譯-->下載程序。
LED 對於有 C 基礎的同學來說很簡單,那我先寫出來,大家可以先看下。沒有C 語言基礎的同學也可以跟著抄一遍,下節課我會補充部分 C 語言基礎知識,這樣你先抄一遍後,再跟著看 C 語言基礎知識的時候也比較容易理解透徹。
純文本復制
#<reg52.h>
sbit LED = P0^0;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
main(){ //void 即函數類型
//以下為聲明語句部分
unsigned int i = 0; //定義一個變數 i,並賦初值 0
//以下為執行語句部分
ENLED = 0; //U3、U4 兩片 74HC138 總使能
ADDR3 = 1; //使能 U3 使之正常輸出
ADDR2 = 1; //經 U3 的 Y6 輸出開啟Q16
ADDR1 = 1;
ADDR0 = 0;
(1){
LED = 0; //點亮小燈
for (i=0; i<30000; i++); //延時一段時間
LED = 1; //熄滅小燈
for (i=0; i<30000; i++); //延時一段時間
}
}
大家把這個程序編譯一下,下載到里,就會發現 LED2 這個小燈會閃爍了。
『拾』 單片機LED燈閃爍程序
char LED;
sbit key1down=P1^0 ; // 設開關key1連接此埠
sbit key2down=P1^1 ; // 設開關key2連接此埠
void main(){
P0=0xff; // 輸出低電平LED亮
LED=0xfe;
while(1){
P0=LED; delay();
if(key1){ LED <<= 1 ; } // 將LED左移一位;
if(key2){ LED >>= 1 ; LED |=0x80; } // 將LED右移一位;
if(key1down==0) { key1=1; key2=0;}
if(key2down==0) { key1=0; key2=1;}
}