51單片機之手把手教你點亮LED燈

51單片機C語言版 點亮LED燈

仿真軟件 proteus + keil

在這裏插入圖片描述

單片機c語言基本知識:

sfr:特殊功能寄存器聲明
eg: sfr 堆棧名=地址
這裏一般不需要自己定義,特殊功能寄存器在reg51.h這個頭文件裏已經定義好了。
sbit:特殊功能位聲明
eg: sbit 變量名=地址名
在給某個引腳取名的時候會用到
bit:位變量聲明
例: sfr SCON=0x89;
sbit LED =P0^2; //表示將LED燈接在P0.2引腳上
C51中常用到的一些預處理命令:
#define
#define A P0(注意後面不加分號)
#typedef
typedef unsigned char uint;(此處後面要加分號)
下圖爲C51的基本數據類型在這裏插入圖片描述
用typedf是因爲有時關鍵字比較長,因此重新定義。
#ifndef…#endif :條件編譯
常用於頭文件的定義還有一些程序條件編譯
運算符
==測試等於
!=測試不等於
&&邏輯與
||邏輯或
!邏輯非
---------------------------------------------------------------------------------------
點亮LED仿真

keil:

1.新建一個文件夾,打開keil軟件,新建一個工程,保存到剛纔新建的文件夾中,此處命名爲LED,在Atmel中選擇自己所用的AT89C51單片機,點擊確定;
在這裏插入圖片描述
2.選擇文件新建一張白紙,保存,保存時要將擴展名寫成.c的形式,因爲這裏是要寫主函數,此處命名爲main.c。雙擊源組將這張白紙添加到工程裏,此時可寫代碼。
在這裏插入圖片描述

代碼如下:
//實現一個LED燈
#include<reg51.h>    //頭文件包含所需的庫
//#define  led P1    //定義整個P1IO口寄存器
sbit led1=P1^0;   //sbit (置位)注意此處P應該大寫
sbit led2=P1.1;
sbit led3=P1.2;
sbit led4=P1.3;
sbit led5=P1.4;
sbit led6=P1.5;
sbit led7=P1.6;
sbit led8=P1.7;
void main()
{
     while(1)   //設置一個while死循環,讓程序永遠執行下面代碼
    {
   //led1=0xfe;     //1111  1110
   led1=0;     //對每一位進行設置,可設置任意的LED燈
   led2=1;
   led3=0;
   led4=1;
   led5=0;
   led6=1;
   led7=0;
   led8=1;
     }
 }

3.編譯成功後,如下圖點擊,之後選擇output,勾選creat HEX file.產生HEX文件。
在這裏插入圖片描述

proteus:

如下圖所示,選擇放置器件單片機和LED燈,並連接好電路。
在這裏插入圖片描述
雙擊單片機芯片,在program file中添加剛纔所產生的HEX文件,添加成功後進行編譯。
編譯後:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章