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

基于AT89S2051單片機(jī)串行通信接口的I/O擴(kuò)展技術(shù)研究

2015-04-12 00:00:00侯進(jìn)旺楊曉晴
現(xiàn)代電子技術(shù) 2015年7期

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

關(guān)鍵字: AT89S2051; 數(shù)據(jù)錯(cuò)位; 串行通信; 74LS166

中圖分類號(hào): TN95?34; TP391.4 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)07?0160?03

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

1 軟硬件設(shè)計(jì)

1.1 硬件電路

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

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

1.2 硬件電路原理

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

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

表1 74LS166功能表

圖2 74LS166邏輯圖

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

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

CLK:移位時(shí)鐘,低電平時(shí),寄存器保持原態(tài),上升沿,內(nèi)部寄存器由Q0向Q7方向移動(dòng)一位。

SI:串行數(shù)據(jù)輸入端,在移位時(shí)鐘上升沿,此端數(shù)據(jù)移位到內(nèi)部寄存器。

D0~D7:并行數(shù)據(jù)輸入端。

SO:串行數(shù)據(jù)輸出端。

[SH/LD:]數(shù)據(jù)移位或并行數(shù)據(jù)加載控制。當(dāng)此端低電平,在移位時(shí)鐘的上升沿,并行輸入數(shù)據(jù)送入內(nèi)部寄存器Q0~Q7。當(dāng)此端為高電平,允許寄存器移位。

1.2.2 電路工作原理

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

8個(gè)按鈕分別接入74LS166的8個(gè)并行輸入(D7~D0)端,74LS166的串行輸出SO接單片機(jī)的串行接口的數(shù)據(jù)端RXD??紤]到74LS166的CLK是上升沿移位,而單片機(jī)通過(guò)串口讀取數(shù)據(jù)時(shí)TXD發(fā)出八個(gè)負(fù)脈沖,因此將TXD端輸出脈沖經(jīng)過(guò)反相器變?yōu)檎}沖作為移位時(shí)鐘,8個(gè)按鈕作為外部的輸入信號(hào)。P1口接8個(gè)LED主要是用于控制器的工作狀態(tài)指示,在硬件調(diào)試時(shí),被用于觀察從串行口讀入的數(shù)據(jù)(將串行口讀到的數(shù)據(jù)直接向P1輸出)。由于串行口讀入的數(shù)據(jù)低位在前,高位在后,圖中的LED燈的信息由左到右逐位對(duì)應(yīng)的是由左到右按鈕的信息狀態(tài)。

1.3 控制軟件設(shè)計(jì)

串口讀入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; //發(fā)出脈沖

SH_LD=1; //允許移位

RI=0;

REN=1; //允許接收數(shù)據(jù)

while(!RI);

REN=0; //停止接收數(shù)據(jù)

RI=0;

n=SBUF;

return n;

}

void main(void)

{

uchar m;

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

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

//讀入74LS166輸出到P1口

}

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

1.4 調(diào)試結(jié)果分析

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

當(dāng)發(fā)出串行口允許輸入指令后,TXD輸出8位負(fù)脈沖,經(jīng)反相器變?yōu)檎}沖作為74LS166的移位脈沖CLK,其時(shí)序如圖3所示。

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

圖3 TXD輸出移位時(shí)鐘

1.5 電路的設(shè)計(jì)改進(jìn)

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

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

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

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

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

2 結(jié) 語(yǔ)

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

(2) 正確的硬件時(shí)序分析在基于單片機(jī)的控制系統(tǒng)的設(shè)計(jì)中非常重要。

利用單片機(jī)的串行通信接口擴(kuò)展輸入口時(shí),單片機(jī)的TXD發(fā)出移位脈沖后,才能讀入1位數(shù)據(jù),而74LS166在移位脈沖的上升沿來(lái)到時(shí),數(shù)據(jù)移動(dòng)1位,這兩者之間先后循序,決定硬件電路的設(shè)計(jì)。只有準(zhǔn)確理解單片機(jī)工作在串行通信接口下讀入數(shù)據(jù)和外部移位寄存器的時(shí)序,才能設(shè)計(jì)出單片機(jī)與外部移位寄存器正確配合的硬件電路,與軟件結(jié)合即可得到理想的結(jié)果。

參考文獻(xiàn)

[1] 余永權(quán).Atmel89系列單片機(jī)應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.

[2] 李華.MCS?51系統(tǒng)單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1993,1?50.

[3] 楊忠煌.單芯片8051實(shí)務(wù)與應(yīng)用[M].北京:中國(guó)水利水電出版社,2001.

[4] 趙曉安.MCS?51單片機(jī)原理及應(yīng)用[M].天津:天津大學(xué)出版社,2001.

[5] 王幸之,王雷,翟成,等.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.

[6] 岳學(xué)軍.基于單片機(jī)與串行通信的電子密碼鎖設(shè)計(jì)[J].云南農(nóng)業(yè)大學(xué)學(xué)報(bào),2009(1):154?157.

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

[8] 霍愛(ài)清.基于89C51單片機(jī)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2001,24(6):10?12.

[9] 高占國(guó),宋文強(qiáng),楊秀清,等.微機(jī)原理與接口技術(shù)[M].重慶:重慶大學(xué)出版社,2006.

[10] 王幸之,鐘愛(ài)琴,王雷,等.AT89 系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004.

主站蜘蛛池模板: 国产幂在线无码精品| 99久久性生片| 日韩无码白| 动漫精品中文字幕无码| 亚洲人成影院在线观看| 亚洲日韩欧美在线观看| 亚洲黄色视频在线观看一区| 一级做a爰片久久毛片毛片| 亚洲另类色| 久久综合结合久久狠狠狠97色| 91亚洲影院| 蜜臀AV在线播放| 99久久亚洲精品影院| 日韩在线成年视频人网站观看| 久久精品人妻中文系列| 伊人久久婷婷五月综合97色| 欧洲一区二区三区无码| av一区二区三区在线观看 | 国产成人无码AV在线播放动漫| 粉嫩国产白浆在线观看| 黄色免费在线网址| 91小视频在线播放| 日韩毛片免费视频| 一级毛片免费观看不卡视频| 欧美特黄一级大黄录像| 最新国产精品第1页| 在线观看91香蕉国产免费| 欧美日韩国产综合视频在线观看| 精品综合久久久久久97| 草草线在成年免费视频2| 欧美日韩免费观看| jizz在线观看| 无码啪啪精品天堂浪潮av| 性欧美精品xxxx| 女人毛片a级大学毛片免费| 九九香蕉视频| 青青草91视频| 91久久国产成人免费观看| 精品成人一区二区三区电影| 在线中文字幕网| 亚洲精品va| 国产青榴视频在线观看网站| 国产色伊人| 一级香蕉人体视频| 九色在线观看视频| 亚洲一区二区三区在线视频| 国产性生交xxxxx免费| 自拍偷拍欧美| 色播五月婷婷| 国产精品永久不卡免费视频| 亚洲日韩日本中文在线| 免费可以看的无遮挡av无码| 国产精品.com| 在线观看无码a∨| 福利在线不卡一区| 久久国产亚洲偷自| 欧美日韩国产精品综合| 国产亚洲欧美日本一二三本道| 成人免费黄色小视频| 亚洲无码熟妇人妻AV在线| 91精品专区国产盗摄| 六月婷婷精品视频在线观看| 91区国产福利在线观看午夜| 久久综合丝袜长腿丝袜| 国产一区二区网站| 午夜性刺激在线观看免费| 女人av社区男人的天堂| 日韩在线中文| 成人va亚洲va欧美天堂| 国产天天色| 性欧美精品xxxx| 天天色综网| 国产综合日韩另类一区二区| 久久久久88色偷偷| 一级高清毛片免费a级高清毛片| 999精品免费视频| 国产对白刺激真实精品91| 色一情一乱一伦一区二区三区小说| 国产欧美又粗又猛又爽老| 国产精品lululu在线观看| 国产成本人片免费a∨短片| 亚洲第一极品精品无码|