熟妇,五月综合激情,黄片无限看欧美,亚洲草原天堂视频

文章詳情
所在位置: 首頁> 技術(shù)文章> 其它>

單片機開發(fā)時序

日期:2024-09-20 06:56
瀏覽次數(shù):1029
摘要:單片機開發(fā)時序是指單片機執(zhí)行指令時應發(fā)出的控制信號的時間序列。這些控制信號在時間上的相互關(guān)系就是CPU的時序。它是一系列具有時間順序的脈沖信號。 CPU發(fā)出的時序有兩類:一類用于片內(nèi)各功能部件的控制,它們是芯片設(shè)計師關(guān)注的問題,對用戶沒有什么意義。另一類用于片外存儲器或I/O端口的控制,需要通過器件的控制引腳送到片外,這部分時序?qū)Ψ治鲇布娐返脑碇陵P(guān)重要,也是軟件編程遵循的原則,需要認真掌握。 CPU發(fā)出的時序有兩類:一類用于片內(nèi)各功能部件的控制,它們是芯片設(shè)計師關(guān)注的...

      單片機開發(fā)時序是指單片機執(zhí)行指令時應發(fā)出的控制信號的時間序列。這些控制信號在時間上的相互關(guān)系就是CPU的時序。它是一系列具有時間順序的脈沖信號。       

      CPU發(fā)出的時序有兩類:一類用于片內(nèi)各功能部件的控制,它們是芯片設(shè)計師關(guān)注的問題,對用戶沒有什么意義。另一類用于單片機外部芯片的控制,這部分時序?qū)Ψ治鲇布娐返脑碇陵P(guān)重要,也是軟件編程遵循的原則。

      單片機開發(fā)時序永遠使用是任何一片IC芯片的主要的內(nèi)容。一個芯片的所有使用細節(jié)都會在它的官方器件手冊上包含。所以使用一個器件事情,要充分做好的首件事就是要把它的器件手冊上有用的內(nèi)容提取,掌握其工作時序。

     在這里我們以液晶單片機開發(fā)時序1602為例,分析其操作時序。其基本時序有讀狀態(tài),寫指令,讀數(shù)據(jù)和寫數(shù)據(jù)。


     1602的引腳定義

     我們首先來看1602的引腳定義,1602的引腳是很整齊的SIP單列直插封裝,所以器件手冊只給出了引腳的功能數(shù)據(jù)表:

 

     1 基本操作時序

     1.1讀狀態(tài):輸入:RS=L,RW=H,E=H                                   輸出:D0-D7=狀態(tài)字

     1.2寫指令:輸入:RS=L,RW=L,D0-D7=指令碼,E=高脈沖      輸出:無

     1.3讀數(shù)據(jù):輸入:RS=H,RW=H,E=H                                  輸出:D0-D7=數(shù)據(jù)

     1.4寫數(shù)據(jù):輸入:RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖         輸出:無


      我們只需要關(guān)注以下幾個管腳:

      3腳:VL,液晶顯示偏壓信號,用于調(diào)整LCD1602的顯示對比度,一般會外接電位器用以調(diào)整偏壓信號,注意此腳電壓為0時可以得到*強的對比度。

      4腳:RS,數(shù)據(jù)/命令選擇端,當此腳為高電平時,可以對1602進行數(shù)據(jù)字節(jié)的傳輸操作,而此腳為低電平時,則是進行命令字節(jié)的傳輸操作。命令字節(jié),即是用來對LCD1602的一些工作方式作設(shè)置的字節(jié);數(shù)據(jù)字節(jié),即使用以在1602上顯示的字節(jié)。值得一提的是,LCD1602的數(shù)據(jù)是8位的。

      5腳:R/W,讀寫選擇端。當此腳為高電平可對LCD1602進行讀數(shù)據(jù)操作,反之進行寫數(shù)據(jù)操作。此腳其實用處不大,直接接地長久置為低電平也不會影響其正常工作。但是尚未經(jīng)過復雜系統(tǒng)驗證,保留此意見。

      6腳:E,使能信號,其實是LCD1602的數(shù)據(jù)控制時鐘信號,利用該信號的上升沿實現(xiàn)對LCD1602的數(shù)據(jù)傳輸。

      7~14腳:8位并行數(shù)據(jù)口,使得對LCD1602的數(shù)據(jù)讀寫大為方便。

    單片機開發(fā)時序?qū)懨詈蛯憯?shù)據(jù)

    在此,我們分析兩個寫時序:寫命令和寫數(shù)據(jù)。

     寫命令

     當我們要寫指令字,設(shè)置LCD1602的工作方式時:需要把RS置為低電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,*后E引腳一個高脈沖將數(shù)據(jù)寫入。

voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC為0時忽略忙檢測

{

if(BuysC)ReadStatusLCD();//根據(jù)需要檢測忙

LCD_Data=WCLCD;//將要寫的命令放在數(shù)據(jù)線上

LCD_RS=0;//RS為低表明要寫的為命令

LCD_RW=0;//RS為低表明執(zhí)行的是寫操作

LCD_E=0;

LCD_E=0;

LCD_E=1;//以上三條語句引入一個高脈沖

}

    單片機開發(fā)時序?qū)憯?shù)據(jù)

      當我們要寫入數(shù)據(jù)字,在1602上實現(xiàn)顯示時:需要把RS置為高電平,RW置為低電平,然后將數(shù)據(jù)送到數(shù)據(jù)口D0~D7,*后E引腳一個高脈沖將數(shù)據(jù)寫入。

voidWriteDataLCD(unsignedcharWDLCD)

{

ReadStatusLCD();//檢測忙

LCD_Data=WDLCD;//將要寫的命令放在數(shù)據(jù)線上

LCD_RS=1;//RS為高表明要寫的為數(shù)據(jù)

LCD_RW=0;//RS為低表明執(zhí)行的是寫操作

LCD_E=0;

LCD_E=0;

LCD_E=1;//以上三條語句引入一個高脈沖

}

      寫指令和寫數(shù)據(jù),差別僅僅在于RS的電平不一樣而已。大家寫驅(qū)動代碼的時候一定要充分理解器件的時序圖(配合文字說明),否則寫不出合格的驅(qū)動代碼,器件也就不能工作。