久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3406|回復: 0
打印 上一主題 下一主題
收起左側

51單片機學習--第二章 流水燈設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:51090 發表于 2014-9-22 16:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
第二章 流水燈設計
§2.1  點亮第一個發光二極管
例2.1.1

#include             //52系列單片機頭文件
sbitled1=P1^0;         //聲明單片機P1口的第一位
voidmain()               //主函數
{
led1=0;               
}


例2.1.2

#include
void mian()
{
  P1=0xfe;
}


★    reg52.h頭文件的作用
在代碼中引用頭文件,其實際意義就是將這個頭文件中的全部內容放到引用頭文件的位置處,免去我們每次編寫同類程序都要將頭文件中的語句重復編寫.
#include :編譯器先進入到軟件安裝文件夾處開始搜索這個頭文件
#include “reg52.h”:編譯器先進入當前工程所在文件夾處開始搜索這個頭文件

★ 特殊功能位定義sbit   定義sfr的某一位

§2.2   while語句
★    格式:while(表達式)
        {內部語句(內部可為空)}
特點:先判斷表達式,若不是0,即為真,那么執行內部語句。否則跳出while語句,執行后面的語句。

例2.2.1

#include
void main()
{
  P1=0xfe;
  while(1);
}

§2.3  for語句及簡單的延時語句
★    格式:for(表達式1;表達式2;表達式3)
        {語句(內部可為空)}
特點:求解一次表達式1。求解表達式2,若其值為真,則執行for中的語句,然后求解執行表示3,再回到求解表達式2開始一直循環。若不是真直接跳出,不執行表達式3。

例2.3.1 實驗板上第一個發光二極管以間隔1s亮滅閃動

#include
#define uint unsignedint      //宏定義
sbitled1=P1^0;                //聲明單片機P1口的第一位
uint i,j;
voidmain()                    //主函數
{
while(1)                     //大循環
{
led1=0;                    
for(i=1000;i>0;i--)        //延時程序
  for(j=110;j>0;j--);
led1=1;                    
for(i=1000;i>0;i--)        //延時程序
  for(j=110;j>0;j--);
}
}


★    #define宏定義
格式:#define 新名稱原內容

§2.4 不帶參數函數的寫法及調用
voiddelay1s()                  //子函數體
{
  uint i,j;
for(i=1000;i>0;i--)           // i=1000即延時約1000毫秒
for(j=110;j>0;j--);
}

§2.5 帶參數函數的寫法及調用
void delayms(unsigned int xms)
{
  uint i;j;
for(i=xms;i>0;i--)          // i=xns即延時約xms毫秒
  for(j=110;j>0;j--);
}
例2.5.1 完整程序,讓實驗板上第一個發光二極管亮200ms、滅800ms

#include          //52系列單片機頭文件
#define uint unsigned int   //宏定義
sbit led1=P1^0;           //聲明單片機P1口的第一位
voiddelayms(uint);        //聲明子函數
voidmain()               //主函數
{
while(1)                //大循環
{
   led1=0;                  
   delayms(200);          //延時200毫秒
   led1=1;                 
   delayms(800);          //延時800毫秒
   }  
}
void delayms(uintxms)            
{
    uinti,j;
   for(i=xms;i>0;i--)     //i=xms即延時約xms毫秒
       for(j=110;j>0;j--);
}


§2.6 利用C51庫函數實現流水燈
★    移位操作
(1):左移“<<”
每執行一次左移指令,被操作的數將最高位移入單片機PSW寄存器的CY位,CY位中原來的數丟棄,最低位補0,其他位一次向左移動一位。

(2):右移“>>”
每執行一次右移指令,被操作的數將最低位移入單片機PSW寄存器的CY位,CY位中原來的數丟棄,最高位補0,其他位一次向右移動一位。

(3):循環左移。
最高位移入最低位,其他位一次向左移一位。C語言中沒有專門的指令,通過移位指令與簡單邏輯運算可以實現循環左移,或直接利用C51庫中自帶的函數_crol_實現。

(4):循環右移。
最低位移入最高位,其他位一次向右移一位。C語言中沒有專門的指令,通過移位指令與簡單邏輯運算可以實現循環右移,或直接利用C51庫中自帶的函數_cror_實現。

★    PSW寄存器
PSW(Program StatusWord)全稱為程序狀態字標志寄存器。是一個8為寄存器,位于單片機片內的特殊功能寄存器區,字節地址為D0H,用來存放運算結果的一些特征,如有無進位、借位等。其每位的具體含義如下圖所示。

①CY—進位標志位。它表示運算是否有進位(或借位)。如果操作結果在最高位有進位(加法)或者借位(減法),則該位為1,否則為0。

②AC—輔助進位標志,又稱半進位標志。它指兩個8位運算低4位是否有半進位,即低4位相加(或相減)是否進位(或借位),如有AC為1,否則為0。

③ F0—由用戶使用的一個狀態標志位。可用軟件來使它置1或清0,也可由軟件來測試它,以控制程序的流向。

④ RS1,RS0,—4組工作寄存器區選擇控制位。在匯編語言中這兩位用來選擇4組工作寄存器區中的哪一組為當前工作寄存區。

⑤ OV—溢出標志位。反映帶符號數的運算結果是否有溢出。有溢出時,此位為1,否則為0。

⑥P—奇偶標志位。反映累加器ACC內容的奇偶性,如果ACC中的運算結果有偶數個1(如11001100B,其中有4個1),則P為0,否則P為1。


例2.6.1 利用C51自帶的庫函數_crol_(),以間隔500ms,在實驗板上實現流水燈程序

#include             //52系列單片機頭文件
#include           //包含_crol_函數所在的頭文件
#define uint unsigned int     //宏定義
#define uchar unsigned char
voiddelayms(uint);            //聲明子函數
ucharaa;                      //定義一個變量,用來給P1口賦值
voidmain()                  //主函數
{
aa=0xfe;                   //賦初值11111110
while(1)                   //大循環
{
P1=aa;                     //先點亮第一個發光管
   delayms(500);              //延時500毫秒
   aa=_crol_(aa,1);           //將aa循環左移1位后再賦給aa
}
}
void delayms(uintxms)            
{
uint i,j;
f

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九免费观看视频 | 亚洲毛片在线观看 | 欧美日韩国产精品一区二区 | 午夜码电影 | 国产一级视频在线观看 | 日韩高清一区 | 亚洲a人 | 亚洲精品成人 | 台湾a级理论片在线观看 | 日本在线视频一区二区 | 日韩高清电影 | 九色www | 欧美一级www片免费观看 | av在线免费观看网站 | 中文久久| 久久99精品久久久97夜夜嗨 | a级免费观看视频 | 中文字幕 国产 | 久久不射电影网 | 国产高清视频 | 亚欧精品 | 日日干日日射 | 日韩久久综合 | 亚洲人成网亚洲欧洲无码 | 色爱区综合 | 色网站在线 | 日韩欧美高清dvd碟片 | 国产羞羞视频在线观看 | 亚洲一区二区三区视频 | 日本高清视频网站 | 精品一二区 | 欧美日韩国产中文字幕 | 国产精品亚洲片在线播放 | 日韩免费 | 国产成在线观看免费视频 | 久久精品国产久精国产 | 一级片子 | 在线观看亚洲专区 | 亚洲在线一区二区三区 | 成人深夜福利 | 久久久久久久久久一区 |