国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

將AT89C52用作多功能外圍器件使用

發布時間:2010-3-13 22:13    發布者:蹦蹦
關鍵詞: 多功能 , 器件
AT89C52(簡稱89C52)的廣泛使用,使單片機的價格大大下降。目前,89C52的市場零售價已經低于8255、8279、8253、 8250等專用接口芯片中的任何一種;而89C52的功能實際上遠遠超過以上芯片。因此,如把89C52作為接口芯片使用,在經濟上是合算的。在本人設計的系統中,將89C52設計為多功能可編程接口,其相關程序固化在片內的Flash ROM中。該芯片(以下簡稱多功能接口)具有如下功能:①有1個專用的鍵盤/顯示接口;②有1個全雙工異步串行通信接口;③有2個16位定時/計數器。這樣,1個89C52芯片,承擔了3個專用接口芯片的工作;不僅使成本大大下降,而且優化了硬件結構和軟件設計,給用戶帶來許多方便。

1 硬件結構

把89C52當作接口使用,接口自身必須盡可能地少占用硬件資源,與主系統之間的連接線也應盡可能少,這樣才能少占主機引腳,把更多的資源留給系統。本設計中,主機與多功能接口之間采用串行通信。主機與多功能接口之間有四根連接線:CE、CLK、DAT、INTR。CE用于作片選信號輸入端。此引腳為低電平時,主機能與多功能接口進行數據傳送。CLK為時鐘輸入端,當主機向多功能接口發送指令時,此引腳電平上升表示數據有效。DAT為串行數據輸入/輸出端。INTR為多功能接口輸出端。當多功能接口內的數據準備好時,由INTR向主機發低電平,通知主機,數據已準備就緒,可以進行讀操作。該信號可供主機查詢,也可用作發向主機的中斷請求信號。

89C52的P0、P1、P2口用作鍵盤/顯示接口。用程序掃描的方法進行鍵盤輸入和顯示輸出。P0口作為字段口,P1口作為鍵盤的列輸入口,P2作為顯示器的字位口以及鍵盤的行掃描輸出口。由于顯示器字位口電流較大,P2口需進行電流驅動。該多功能接口最多可連接8個LED顯示器和1個 8×8鏈盤矩陣。其硬件原理如圖1所示。


圖1

P3.2、P3.3、P3.6、P3.7分別用作CE、CLK、DAT和INTR信號;而P3.0、P3.1用作異步串行通信數據線RXD和 TXD;P3.4、P3.5分別是OUT0/T0和OUT1/T1信號線。該引腳在定時器工作于連續脈沖方式時,可輸出通斷比與頻率可編程的連續脈沖;工作在計數器方式時,該引腳作為外部計數脈沖輸入端輸入計數脈沖。



2 通信協議

實現多功能接口的關鍵是主機和多功能接口之間的通信。在本設計中,采用主從方式進行通信,所有的操作都由主機發出操作指令。多功能接口在收到主機發來的操作指令后,對操作碼進行軟件譯碼。根據操作碼的內容轉入相應的工作通道,并從操作數部分獲取所需要的數據。
多功能接口采用串行方式與主機通信。串行數據從DAT引腳送入芯片,并由CLK端同步。當片選信號CE變低后,DAT引腳上的數據在CLK引腳的上升沿被寫入多功能接口的寄存器中。

串行接口的時序如圖2所示。


圖2

由于多功能接口接收指令的工作用軟件進行,因此,圖中的t1、t2、t3、t4、t5時間較長,要求t1-t4時間在10μs~1000μs。指令有兩類:一類寫指令,一類是讀指令。寫指令中不管是操作碼還是操作數,其數據傳送方向均為從主機到多功能接口;而對讀指令來講,操作碼部分的數據方向是從主機到多功能接口,而操作數部分的數據方向是從多功能接口到主機。

t5是讀指令中操作碼與操作數之間需要的時間間隔,t5應在30μs~1000μs的范圍。在讀操作時,CLK時鐘的上升沿來到時,多功能接口將數據送到DAT引腳上。

3 指令編碼

多功能接口共有13條指令。指令長度為1字節、2字節、3字節和4字節不等。

(1)復位指令

機器碼為00H。當多功能接口收到復位指令后,所有字符消隱,所有定時器清零,定時中斷和串行中斷關閉。其狀態與系統上電復位的情況相似。

(2)顯示數據指令

該指令向多功能接口的顯示緩沖器中發送顯示數據。這是一個2字節指令,其指令編碼如下:
D7D6D5D4D3D2D1D0
00010000
D7D6D5D4D3D2D1D0
dip000d3d2d1d0

其中dip為小數點控制位,a2、a1、a0為位地址,d3、d2、d1、d0為待顯示的字符,其格式如表1、2所列。

(3)閃爍指令

該指令控制各個數碼管的閃爍屬性。d7~d0分別對應數碼管1~8,1為閃爍,0為不閃爍。
D7D6D5D4D3D2D1D0
00010000
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

(4)循環左移指令

指令碼為11H。該指令將所有顯示從左向右移動1位。

表1
a2a1a0顯示位
0001
0012
0103
0114
1005
1016
1107
1118

表2
d3d2d1d0顯示字符
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010-
1011H
1100L
1101P
1110E
1111

(5)循環右移指令

指令碼為12H。該指令將所有顯示從右向左移動1位。

(6)讀鍵盤指令

指令為2字節指令,操作數為讀到的鍵值。各鍵盤的鍵值如圖1所示。該指令格式如下:
D7D6D5D4D3D2D1D0
00010011
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

(7)連續脈沖輸出指令

該指令對定時器進行編程。使OUT0/OUT1輸出連續脈沖,脈沖的通斷比和頻率可以通過編程設定。其指令為4,格式如下:

第1字節
D7D6D5D4D3D2D1D0
00010011/0

第2字節
D7D6D5D4D3D2D1D0
M3M2M1M0N3N2N1N0

第3字節
D7D6D5D4D3D2D1D0
f15f14f13f12f11f10f9F8

第4字節
D7D6D5D4D3D2D1D0
f7f6f5f4f3f2f1f0

其中M:N是脈沖的通斷比,M或N的設置范圍是1~10。f15~f0是頻率設置,其設置范圍是1~9999Hz。采用BCD碼設置。指令操作碼中,D0設置定時器0或定時器1工作。

(8)定時器方式指令

該指令為3字節指令。操作碼為22H、23H,其中D0位確定對定時器0還是定時器1進行操作。第2、第3字節為定時時間。

(9)計數器方式指令

該指令為3字節指令。操作碼為24H、25H,其中D0位確定對定時器0還是定時器1進行操作。第2、第3字節為計數初值。

(10)讀計數器指令

為3字節指令。操作碼為26H、27H,第2、第3字節為從計數器讀到的計數值。操作碼的D0位確定對計數器0還是計數器1進行操作。通過該指令讀以16位計數器的當前計數值。

(11)串行發送指令

該指令對異步串行通信進行初始化,其指令格式如下:

第1字節
D7D6D5D4D3D2D1D0
00110a2a1a0

表2字節
D7D6D5D4D3D2D1D0
b1b0d5d4d3d2d1d0

第3字節
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

第4字節
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

串行通信采用批傳送的方法進行。每條指令傳送1個數據幀。指令中,第1、第2字節用來進行串行通信初始化,第3字節以后是發送的各個數據。b1、b0用來確定奇校驗、偶校驗還是不校驗。第2字節的操作數d5、d4、d3、d2、d1、d0用來設定該幀數據的個數,最多1幀可發送64個字符。a2、a1、 a0設定串行通信的波特率。其波特率如表3所列。

表3
a2  a1  a0波特率/baud
0   0   0110
0   0   1150
0   1   0300
0   1   1600
1   0   01200
1   0   12400
1   1   04800
1   1   19600

(12)串行接收指令

指令格式如下:

第1字節
D7D6D5D4D3D2D1D0
00111a2a1a0

第2字節
D7D6D5D4D3D2D1D0
b1b0d5d4d3d2d1d0

第3字節
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

第4字節
D7D6D5D4D3D2D1D0
d7d6d5d4d3d2d1d0

指令編碼與串行發送送似,第3字節之后為接收到的數據。

(13)讀狀態指令

指令格式如下:

D7D6D5D4D3D2D1D0
01000000
D7D6D5D4D3D2D1D0
000d4d3d2d1d0

在鍵盤輸入、計數器回等或串行通信中斷時,多功能接口將向INTR發出負脈沖,主機在響應后應發讀狀態指令,查詢狀態標志,確定是哪個狀態標志動作。其中d0為鍵盤輸入標志,d1為計數器0回零動作。d2為計數器1回零標志。d3為串行接收結束標志,d4為串行發送結束標志。

4 多功能接口的軟件設計

在主程序中進行顯示掃描和鍵盤掃描,如有鍵盤輸入,則找出鍵盤矩陣的鍵號。鍵號存入鍵值寄存器,并置位狀態標志,同時發出INTR負脈沖,通知主機來取鍵值。

主機通過指令對多功能接口進行操作。主機首先要將CE置0。該下降沿通過P3.2向多功能接口發出外部中斷。在中斷服務程序中,多功能接口進行取指和譯碼操作,并通過散轉指令轉入相應的處理通道。則中斷返回。至此,一條指令的取指-譯碼-執行的過程才告結束。程序回到主循環繼續進行顯示掃描和鍵盤掃描。

所謂取指操作實際上就是多功能接口與主機進行通信的過程。由于采取軟件進行通信,t1、t2、t3、t4、t5的寬度有一定的范圍。

在接收到主機的操作指令后,多功能接口與外設的串行通信及有關定時器的操作采用中斷方式進行。在中斷結束時,置位狀態標志,并向主機發INTR負脈沖。該負脈沖可供主機查詢,也可作為向主機發出的中斷請求信號。完成以上工作后,返回主程序。

89C52有三個定時器,其中T2在中串行通信時間來作為串行通信的波特率發生器。這樣T0和T1就可以出借給用戶作定時器內。T2在波特率發生器方式時,可置位T2CON寄存器中的TCLK位或RCLK位。在TH2、TL2中裝入計數初值,使T2從這個初值開始計數,但并不置位FT2。RCAR2H和RCAP2L中的常數由軟件設定后,T2的溢出率是嚴格不變的,因而使串行通信的波特率非常穩定。

5 應用實例

在本刊網絡補充版(http://www.dpj.com.cn)中,給出主機為AT89C52時的應用實例。程序的功能為等待鍵盤輸入,然后將所讀到的鍵盤碼轉換成十進制后送LED數碼管顯示。

相似文獻
   1. 期刊論文 基于單片機多功能接口電路的設計 - 廣西輕工業2007,23(3)

作 者: 江蘇技術師范學院 過幼南  
來 源: 單片機與嵌入式系統應用 2003(9)
本文地址:http://m.qingdxww.cn/thread-9344-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
alpha321 發表于 2010-3-15 00:38:47
這是一個不錯的思路, 可以借鑒.
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩 欧美 中文字幕 不卡 | 男女车车的车车网站W98免费| 一女被九男前后双龙小说| 在线国产视频| www亚洲欲色成人久久精品| 激情综合色| 揉抓捏打抽插射免费视频| 中文亚洲大香伊蕉不卡一区| 特级aa毛片在线播放| 欧美成人aa| 午夜视频在线网站| 日日操狠狠干| 色婷婷91| 一级毛片全部免费播放| 韩国和日本免费不卡在线| 色戒西瓜视频| 亚洲综合sss久久天堂| 日本免费v片一二三区| 亚洲国产日韩在线观频| 性欧美xxxxporn| 91亚洲 欧美 国产 制服 动漫| yellow日本动漫观看免费| 毛片大全网站| 伊人久久青青草| 欧美一级α片| 青青青青青青草| 亚洲国产午夜看片| 在线观看精品| 精品久久综合1区2区3区激情| 美女裸露100%奶头视频| 中文字幕乱码在线人视频| 欧美一级www片免费观看| 午夜性色福利影院| 亚洲国产成人私人影院| av亚洲色天堂2017| 年轻的的小婊孑2中文字幕| 日韩特级片| 视色4setv.com| 亚洲第一天堂无码专区| 曰批免费视频播放在线看片二| 成人在线视频观看|