2006-05-11 09:46:20
at89c51微控制器高速序列輸出口設計
摘要:介紹使用at89c51微控制器擴充套件高速序列同步移位輸出口的方法,給出基於分立ttl元器件和可程式設計邏輯器件pld兩種電路的實現方案,在led點陣顯示屏系統中已得到應用。
at89c51(與mcs-51相容)微控制器的序列口在方式0工作狀態下,使用移位暫存器晶元可以擴充套件多個8位並行i/o口。在led點陣顯示屏應用系統中,一般都採用資料同步移位輸出方式,並使用移位暫存器晶元(如74ls595)擴充套件並行i/o口驅動led點陣顯示。led點陣顯示採用掃瞄方式,為不產生閃爍感,每秒需要傳送50屏點陣顯示資料,因此有大量的資料要通過同步移位的方式送到顯示驅動電路部分,這就要求微控制器能夠快速地輸出資料。at89c51微控制器的序列口在方式0工作狀態下,資料以fosc/12的波特率輸出,1個位元組資料寫入sbuf後,需檢查中斷標誌位ti是否為「1」並清「0」ti或延時幾個機器週期後才能繼續寫入了乙個資料,輸出速度慢。在led點陣顯示屏應用系統中,系統與pc機之間的通訊需要使用微控制器的序列口,顯示資料的同步移位輸出口只有另外擴充套件。本文介紹的高速序列同步移位輸出口(以下簡稱擴充套件序列口)電路,採用模組化設計,給出基於ttl和pld兩種電路的實現方案,波特率提高到fosc,資料輸出不需要等待或延時。
一、擴充套件序列口與微控制器的連線
擴充套件序列口電路框圖如圖1所示。與並行儲存器晶元類似,擴充套件序列口被視為乙個外部ram位址單元,直接掛接在at89c51的外部資料匯流排上,d0~d7為資料線,ce為片選訊號,we為寫脈衝訊號,也是擴充套件序列口的輸出控制訊號。at89c51外接晶體振盪器的振盪訊號經二個與非門整形後為擴充套件序列口提供時鐘脈衝xtal2。dat和clk分別是擴充套件序列口的資料輸出端和同步移位脈衝輸出端。
二、操作指令
假設at89c51分配給擴充套件序列口的位址是0000h,使用movx@dptr,a或movx@r0,a指令將資料寫入擴充套件序列口並移位資料。下面的程式段將內部ram資料區首址為30h的32位元組資料送擴充套件序列口同步移位輸出:
mov p2,#00h ;設定擴充套件序列口位址高8位
mov r1,#30h ;設定內部ram資料區首址
mov r7,#32 ;輸出位元組個數
loop:mov a,@r1 ;從內部ram資料區讀入1位元組
movx @r0,a ;資料送擴充套件序列口輸出
djnz r7,loop ;32位元組未送完繼續
ret
三、基於ttl電路的設計方案和工作原理
圖2是用ttl電路實現的擴充套件序列口電路。74ls74是有預置、清零功能的雙上公升沿d觸發器,d1~d5構成8脈衝發生器(計數器原理),74ls165是8位並行輸入序列輸出移位暫存器。cpu執行movx@r0,a(或movx @dptr,a)指令時,資料被鎖存在74ls165中。產生8脈衝訊號的時序如圖3所示。圖3中,q0~q5分別是6個d觸發器的輸出端,擴充套件序列口片選有效(ce=0),寫脈衝we到來時,wr=0,在時鐘脈衝xtal2的上公升沿觸發器d0的輸出q0=0,q0復位q5,使q5=1;寫脈衝結束後,wr=1,則wr·q5=1,計數器的復位端無效,計數器開始計數,同時在q1端輸出方波脈衝;第8個脈衝結束後,q5=1,則wr·q5=0,計數器被復位,停止計數,等待下乙個寫脈衝。q1端輸出的8個脈衝作為同步移位脈衝接74ls165的clk2(15腳),同時也是擴充套件序列輸出口的同步移位脈衝輸出訊號:由movx指令鎖存在74ls165中的資料在同步移位脈衝(clk)的作用下,從擴充套件序列輸出口的資料端(dat)輸出。
四、基於pld電路的設計方案
用可程式設計門陣列器件設計電路,可使電路簡化,器件數量減少。圖2中虛線框內的8脈衝發生器電路用1片gal16v8d就可以實現,如圖4所示。xtal2是擴充套件序列口時鐘脈衝輸入訊號,wr是片選有效情況下的寫脈衝訊號,q1是8脈衝輸出端。根據圖3所示時序圖寫出q1~q5的邏輯表示式,下面是gal16v8d晶元的邏輯設計示例。
aft16v8d
name:ed13_u00
author:fuhao
date:04.15.1999
;1 2 3 4 5 6 7 8 9 10(pin)
clk wr nc nc nc nc nc nc nc gnd
;11 12 13 14 15 16 17 18 19 20(pin)
oe q1 q2 q3 q4 q5 nc nc nc vcc
q1:=/q1*wr*/q5
q2:=/q2*q1*wr*/q5
+q2*/q1*wr*/q5
q3:=/q3*q2*q1*wr*/q5
+q3*/q2*wr*/q5
+q3*/q2*wr*/q5
q4:=/q4*q3*q2*q1*wr*/q5
+q4*/q3*wr*/q5
+q4*/q2*wr*/q5
+q4*/q1*wr*/q5
q5:=/q5*q4*q3*q2*q1*wr
+q5*/q4*wr
+q5*/q3*wr
+q5*/q2*wr
+q5*/q1*wr
description
結束語
本文介紹的微控制器擴充套件高速序列同步移位輸出口的方法,以及給出的基於ttl和pld兩種電路的實現方案,在led點陣顯示屏系統中都已得到成功的應用。擴充套件序列口採用模組化設計,很容易移植到其他應用系統中。
51微控制器(一) 初學STC89C52微控制器
1.cpu運算器和控制器 微控制器的核心構成部分之一 2.內部資料儲存器存放可讀的資料,如程式中的定義。3.程式儲存器8kb,0000h 1fffh 存放程式,原始資料。4.定時 計算器3個定時器 計算器,即可設定成計數方式用於外部事件計數,也可以設定成定時模式,用於對微控制器的計時控制。5.並行埠...
51微控制器C語言
使用c語言已成為微控制器應用系統開發的趨勢。include 包含微控制器暫存器的標頭檔案這個檔案對微控制器內部各種暫存器進行了定義。如果將 sfr p0 0x80 語句中的 p0 改為其他名字,如 q0 那麼在程式設計時,使用第一行的 檔案包含 處理命令後,微控制器以後就不再認識 p0 而是只認識 ...
51微控制器與C51
微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...