999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AT89S2051單片機串行通信接口的I/O擴展技術研究

2015-04-12 00:00:00侯進旺楊曉晴
現代電子技術 2015年7期

摘 要: 白色智能家電產品多以單片機進行控制。這一類產品的特點是體積較小,需要外部輸入的信息和對外輸出的信息多,因此要求單片機體積小且I/O多。通過對基于單片機的串行通信接口與并入串出移位寄存器74LS166配合進行輸入口擴展的關鍵技術進行研究,提出解決數據錯位的方法。

關鍵字: AT89S2051; 數據錯位; 串行通信; 74LS166

中圖分類號: TN95?34; TP391.4 文獻標識碼: A 文章編號: 1004?373X(2015)07?0160?03

在單片機的控制系統中,經常會進行I/O口擴展,常用擴展方法有:利用單片機提供的三總線(數據、地址、控制)技術配合通用的數據寄存器、數據緩沖器(74LS373、273、244、245等)進行I/O擴展,也可以利用I/O擴展專用芯片(8255、8155等)進行I/O擴展。在實際的控制器中,由于控制板體積限制,采用體積較小簡化版的單片機(如AT89S2051),但這類單片機I/O少,且不能提供三總線,如何實現I/O擴展?在一款家電產品的控制器設計時,利用AT89S2051單片機的串行異步通信接口進行配合并入串出移位寄存器74LS166進行輸入口擴展,但在設計仿真時,遇到讀入數據錯位的問題,下面就這一問題的解決方法進行探究。

1 軟硬件設計

1.1 硬件電路

AT89Sxx系列單片機都提供有一個全雙工串行異步通信接口TXD(P3.1)和RXD(P3.0),其工作方式有四種,方式1、2、3主要用于單片機與其他設備的數據通信,在此不做討論;方式0稱為移位寄存器方式,與外部移位寄存器配合可以用于I/O擴展,此時單片機的RXD端作為數據的發送和接收,TXD端作為單片機提供給外部移位寄存器的移位時鐘。利用單片機TXD、RXD與外部并入串出移位寄存器74LS166進行8位輸入口擴展,也可以通過串級擴展更多位輸入口。硬件電路如圖1所示。

圖1 單片機串行通信接口擴展輸入接口電路(一)

1.2 硬件電路原理

1.2.1 移位寄存器74LS166的基本功能

74LS166是一片通用的并入串出8位移位寄存器。圖2是74LS166的邏輯圖。表1是74LS166的功能表。

表1 74LS166功能表

圖2 74LS166邏輯圖

MR:清零端,低電平清零。

INH:時鐘屏蔽端,高電平,移位時鐘被屏蔽;低電平,移位時鐘有效。

CLK:移位時鐘,低電平時,寄存器保持原態,上升沿,內部寄存器由Q0向Q7方向移動一位。

SI:串行數據輸入端,在移位時鐘上升沿,此端數據移位到內部寄存器。

D0~D7:并行數據輸入端。

SO:串行數據輸出端。

[SH/LD:]數據移位或并行數據加載控制。當此端低電平,在移位時鐘的上升沿,并行輸入數據送入內部寄存器Q0~Q7。當此端為高電平,允許寄存器移位。

1.2.2 電路工作原理

單片機采用AT89S系列簡易版AT89S2051,20個管腳,只有P1口(8位)和P3口,無P0和P2口,以滿足單片機體積小的要求。本文電路采用Proteus仿真軟件繪制。

8個按鈕分別接入74LS166的8個并行輸入(D7~D0)端,74LS166的串行輸出SO接單片機的串行接口的數據端RXD。考慮到74LS166的CLK是上升沿移位,而單片機通過串口讀取數據時TXD發出八個負脈沖,因此將TXD端輸出脈沖經過反相器變為正脈沖作為移位時鐘,8個按鈕作為外部的輸入信號。P1口接8個LED主要是用于控制器的工作狀態指示,在硬件調試時,被用于觀察從串行口讀入的數據(將串行口讀到的數據直接向P1輸出)。由于串行口讀入的數據低位在前,高位在后,圖中的LED燈的信息由左到右逐位對應的是由左到右按鈕的信息狀態。

1.3 控制軟件設計

串口讀入8位按鈕的信息在P1口顯示的程序如下:

#include

#define uchar unsigned char

sbit SH_LD=P3^7;

sbit CLK=P3^1;

uchar Read_166 (void)

{

uchar n;

SH_LD=0; //裝載8位按鈕信息

CLK=0;CLK=1; //發出脈沖

SH_LD=1; //允許移位

RI=0;

REN=1; //允許接收數據

while(!RI);

REN=0; //停止接收數據

RI=0;

n=SBUF;

return n;

}

void main(void)

{

uchar m;

SCON=0x00; //單片機串口工作于方式0

while(1) {P1=Read_166();}

//讀入74LS166輸出到P1口

}

讀數據函數,首先發出并行數據裝載指令(SH_LD=0;CLK=0;CLK=1;SH_LD=1)D0~D7到74LS166內部寄存器的輸出;然后發出串口讀入指令,TXD輸出8位移位脈沖,在移位脈沖的作用下,74LS166分別移位8次,單片機依次讀入8位數據,函數返回讀到的8位按鈕信息。在主程序中將讀數函數的結果直接送入P1口。

1.4 調試結果分析

單片機執行上述程序后,當最左邊的兩個和最右邊按鈕按下后,得到的結果如圖1所示。圖中黑色LED表示不亮,P1口該位輸出為高電平,白色LED表示LED被點亮,P1口該位輸出的是低電平。從仿真的結果可以看到,輸入8位按鈕信息是00111110(0x3E),而讀到的數據由P1輸出為10011111(0x9F),也就是說,最低位按鈕的數據(讀入的第一位數據)丟失,也就是說輸入的最高兩位數00,向低位移了一位,發生了數據錯位。這樣圖1所示電路會造成讀入數據錯誤,下面就對其原因進行討論。

當發出串行口允許輸入指令后,TXD輸出8位負脈沖,經反相器變為正脈沖作為74LS166的移位脈沖CLK,其時序如圖3所示。

單片機在TXD每輸出一位脈沖后讀入一位數據。由于74LS166的移位脈沖是上升沿移位,也就是對應TXD下降沿移位,因此在TXD發出第一個負脈沖的下降沿,74LS166先移位(Q6的數據移到Q7即SO輸出),單片機再讀入,單片機讀入的第一位數據實際上就是Q6(也就是D6所接按鈕)對應的數據,D7的數據丟失,這也是圖1電路讀入數據錯誤的原因,也就是單片機串口讀取數據的時刻、TXD發出的移位脈沖與74LS166硬件接入的并行按鈕在時序上沒有匹配。實際上當單片機TXD發出8個脈沖后,讀入的8位數據是D6~D0和SI的數據。

圖3 TXD輸出移位時鐘

1.5 電路的設計改進

根據對圖1電路出現讀數錯位的原因分析,將圖1電路中8個按鈕依次接入SI、D0~D6,D7接高電平(或低電平),執行上述程序,結果如圖4電路所示。從仿真結果看到,P1口輸出的數據00111110就是8個按鈕的信息。

圖4 單片機串行通信接口擴展輸入接口電路(二)

圖4電路中,將按鈕依次低接一位,D7不接(或高或低),就能讀到正確的結果。

實際上將單片機TXD端直接接到74LS166的CLK端,8個按鈕按圖1的電路接入D0~D7單片機也能讀到正確的結果(見圖5電路所示)。在TXD發出第一個負脈沖,讀到的第一位數就是Q7,也就是D7裝載到Q7(SO)的數據;以后在發出7個脈沖的上升沿,74LS166移位寄存器依次將Q6~Q0的7位數據移到Q7(SO)輸出,由單片機讀入。

圖5 單片機串行通信接口擴展輸入口電路(三)

2 結 語

(1) 利用AT89S2051單片機的串行通信接口和外部移位寄存器74LS166配合,可以有效地解決智能家電產品控制器對單片機在體積小I/O多的矛盾的問題。

(2) 正確的硬件時序分析在基于單片機的控制系統的設計中非常重要。

利用單片機的串行通信接口擴展輸入口時,單片機的TXD發出移位脈沖后,才能讀入1位數據,而74LS166在移位脈沖的上升沿來到時,數據移動1位,這兩者之間先后循序,決定硬件電路的設計。只有準確理解單片機工作在串行通信接口下讀入數據和外部移位寄存器的時序,才能設計出單片機與外部移位寄存器正確配合的硬件電路,與軟件結合即可得到理想的結果。

參考文獻

[1] 余永權.Atmel89系列單片機應用技術[M].北京:北京航空航天大學出版社,2002.

[2] 李華.MCS?51系統單片機實用接口技術[M].北京:北京航空航天大學出版社,1993,1?50.

[3] 楊忠煌.單芯片8051實務與應用[M].北京:中國水利水電出版社,2001.

[4] 趙曉安.MCS?51單片機原理及應用[M].天津:天津大學出版社,2001.

[5] 王幸之,王雷,翟成,等.單片機應用系統抗干擾技術[M].北京:北京航空航天大學出版社,2000.

[6] 岳學軍.基于單片機與串行通信的電子密碼鎖設計[J].云南農業大學學報,2009(1):154?157.

[7] 林雪梅,彭佳紅,姚志成.單片機多機通信協議的設計[J].微計算機信息,2006(2):24?26.

[8] 霍愛清.基于89C51單片機的遠程數據采集系統設計[J].現代電子技術,2001,24(6):10?12.

[9] 高占國,宋文強,楊秀清,等.微機原理與接口技術[M].重慶:重慶大學出版社,2006.

[10] 王幸之,鐘愛琴,王雷,等.AT89 系列單片機原理與接口技術[M].北京:北京航空航天大學出版社,2004.

主站蜘蛛池模板: 永久天堂网Av| 国产精品视频导航| 日本影院一区| 国产男女免费完整版视频| 国产在线91在线电影| 国产91麻豆视频| 国产精品女人呻吟在线观看| 午夜高清国产拍精品| 精品视频一区二区观看| 婷婷综合色| 色色中文字幕| 激情在线网| 日韩少妇激情一区二区| 亚洲精品777| 久久福利片| 最新无码专区超级碰碰碰| 亚洲,国产,日韩,综合一区| 成年人福利视频| 国产亚卅精品无码| 美女被躁出白浆视频播放| 久久国语对白| 思思热精品在线8| 制服丝袜一区| 久久久精品久久久久三级| 精品人妻无码区在线视频| 欧美va亚洲va香蕉在线| 精品久久高清| 欧美一级爱操视频| 久久中文无码精品| 亚洲欧洲日产无码AV| 国产欧美日韩在线一区| 天天躁夜夜躁狠狠躁躁88| 欧美成人一级| 欧美精品1区| 亚州AV秘 一区二区三区| 波多野结衣二区| 欧美成人午夜影院| 永久免费无码成人网站| 亚洲三级a| 女同国产精品一区二区| 色综合国产| 54pao国产成人免费视频| 久久夜夜视频| 欧美成人国产| 国产精品极品美女自在线| 欧美一级夜夜爽| 熟妇无码人妻| 国产福利2021最新在线观看| 欧美成a人片在线观看| 亚洲精品综合一二三区在线| 高清精品美女在线播放| 国产极品美女在线播放| 亚洲一区二区精品无码久久久| 色欲国产一区二区日韩欧美| 日韩毛片免费视频| 亚洲青涩在线| 91在线丝袜| 最新精品国偷自产在线| 久久久无码人妻精品无码| 香蕉eeww99国产在线观看| 97成人在线视频| 精品人妻系列无码专区久久| 国产高颜值露脸在线观看| 亚洲一区二区三区国产精品| 国产成人精品2021欧美日韩| 免费无遮挡AV| 日本国产精品| 亚洲系列中文字幕一区二区| 国产亚洲精品无码专| 欧美第九页| 免费一级毛片完整版在线看| 99视频免费观看| 91精品国产情侣高潮露脸| 欧美色图久久| 国产69精品久久久久孕妇大杂乱| 国产办公室秘书无码精品| 91精品国产自产91精品资源| 亚洲黄网在线| 激情综合图区| 亚洲男人的天堂视频| 亚洲欧美日韩综合二区三区| 精品久久人人爽人人玩人人妻|