




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、7.1 外部擴(kuò)展資源和擴(kuò)展編址技術(shù)概述7.2 并行I/O口擴(kuò)展7.3 大容量閃速存儲(chǔ)器Flash的擴(kuò)展7.4 單片機(jī)系統(tǒng)中的鍵盤(pán)接口技術(shù)7.5 單片機(jī)系統(tǒng)中的LED數(shù)碼顯示器7.6 單片機(jī)系統(tǒng)中的LCD液晶顯示器7.7 日歷時(shí)鐘接口芯片及應(yīng)用17.8 單片機(jī)數(shù)據(jù)采集系統(tǒng)7.9 I2C 總線(xiàn)接口電路EEPROM及應(yīng)用7.10 RS-232C和 RS-485/422通信接口本章小結(jié)27.1 外部擴(kuò)展資源和擴(kuò)展編址技術(shù)概述7.1.1 單片機(jī)外部擴(kuò)展資源分類(lèi)單片機(jī)外部擴(kuò)展資源包含有:外部RAM/ROM、鍵盤(pán)、顯示、A/D、D/A、I/O擴(kuò)展、中斷擴(kuò)展、串行通信、總線(xiàn)驅(qū)動(dòng)、電源監(jiān)控、看門(mén)狗等一些最基本的
2、模塊,它們都是大多數(shù)單片機(jī)應(yīng)用系統(tǒng)必不可少的關(guān)鍵部分。 31. 外部程序存儲(chǔ)器ROM當(dāng)單片機(jī)內(nèi)部程序存儲(chǔ)器ROM容量無(wú)法滿(mǎn)足應(yīng)用系統(tǒng)要求時(shí),需要在外部進(jìn)行擴(kuò)展。對(duì)于80C51系列,內(nèi)部存儲(chǔ)器都達(dá)到64KB,用戶(hù)沒(méi)有必要再擴(kuò)展外部程序存儲(chǔ)器。 42. 外部數(shù)據(jù)存儲(chǔ)器RAM 由于單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器容量較小,在需要大量數(shù)據(jù)緩沖的單片機(jī)應(yīng)用系統(tǒng)中(如語(yǔ)音系統(tǒng)、商場(chǎng)收費(fèi)POS)仍然需要在外部擴(kuò)展數(shù)據(jù)存儲(chǔ)器。 外部數(shù)據(jù)存儲(chǔ)器有SRAM、Flash EEPROM 53. 并行I/O口資源擴(kuò)展在較為復(fù)雜的控制系統(tǒng)(尤其是工業(yè)控制系統(tǒng),如可編程控制器)中,經(jīng)常需要擴(kuò)展I/O口。常用的I/O接口芯片有74HC
3、系列鎖存器/寄存器、8255和8155等。 64. 鍵盤(pán)和顯示器鍵盤(pán)和顯示器提供了用戶(hù)與單片機(jī)應(yīng)用系統(tǒng)之間的人機(jī)界面,用戶(hù)通過(guò)鍵盤(pán)向單片機(jī)系統(tǒng)輸入數(shù)據(jù)或程序,而通過(guò)顯示器用戶(hù)可以了解單片機(jī)系統(tǒng)的運(yùn)行狀態(tài)。75. 串行通信接口單片機(jī)通常都提供了一個(gè)串行通信接口,且信號(hào)為T(mén)TL電平,為了方便單片機(jī)系統(tǒng)與PC機(jī)、打印機(jī)、外設(shè)等接口,往往需要擴(kuò)展通用的RS-232通信接口。為了實(shí)現(xiàn)遠(yuǎn)距離通信,還要擴(kuò)展RS-485通信接口。常用的RS-232接口芯片為MAX232,常用的RS-485接口芯片為MAX485。當(dāng)單片機(jī)系統(tǒng)需要更多的串行通信接口時(shí),可以通過(guò)串行口芯片擴(kuò)展,常用的串行口芯片有8251、8250
4、、16C554等。86. 模數(shù)轉(zhuǎn)換A/DA/D轉(zhuǎn)換接口將外設(shè)輸入的模擬量轉(zhuǎn)換為計(jì)算機(jī)使用的數(shù)字量,常用的A/D轉(zhuǎn)換芯片有ADC0808/0809、ADC0816/0817、ADC1140、ADC71/76、AD574A等。 7. 數(shù)模轉(zhuǎn)換D/AD/A轉(zhuǎn)換接口將計(jì)算機(jī)的數(shù)字量轉(zhuǎn)換為外設(shè)使用的模擬量,常用的D/A轉(zhuǎn)換芯片有DAC0832、DA7520、DAC1208、DAC1230等。98. 電源監(jiān)控和硬件看門(mén)狗在電源不穩(wěn)定或有強(qiáng)大的干擾源時(shí),系統(tǒng)經(jīng)常會(huì)出現(xiàn)“程序跑飛”等異常情況,給系統(tǒng)的開(kāi)發(fā)和實(shí)際應(yīng)用帶來(lái)了極大的不便,嚴(yán)重時(shí)會(huì)使系統(tǒng)癱瘓,甚至發(fā)生工業(yè)事故。為此需要使用專(zhuān)用的電源監(jiān)控復(fù)位芯片,人們
5、常把此類(lèi)電路稱(chēng)為硬件看門(mén)狗,當(dāng)系統(tǒng)電壓下降和“程序跑飛”時(shí),它能發(fā)出復(fù)位信號(hào),保證系統(tǒng)正常工作。常用的電源監(jiān)控復(fù)位芯片有CSI24C161、DS1232、X5045等。109. 硬件日歷時(shí)鐘由單片機(jī)構(gòu)成的大多數(shù)計(jì)費(fèi)、計(jì)時(shí)系統(tǒng)中,日期和時(shí)間是數(shù)據(jù)庫(kù)中的一個(gè)重要參數(shù),為此需要在單片機(jī)系統(tǒng)中擴(kuò)展日歷時(shí)鐘芯片。常用的日歷時(shí)鐘接口電路有DS1302、DS12887等。單片機(jī)系統(tǒng)是指以單片機(jī)為核心,根據(jù)其應(yīng)用目標(biāo)擴(kuò)展相關(guān)的外圍電路所構(gòu)成的硬件系統(tǒng),外部擴(kuò)展是和應(yīng)用緊密聯(lián)系的。本章只是對(duì)單片機(jī)系統(tǒng)中常用資源擴(kuò)展和流行接口加以論述。 117.1.2 單片機(jī)系統(tǒng)擴(kuò)展結(jié)構(gòu)與編址技術(shù)12圖7.1為AT89C52單片
6、機(jī)通過(guò)三總線(xiàn)的擴(kuò)展系統(tǒng)結(jié)構(gòu)圖。圖7.113譯碼器產(chǎn)生地址譯碼信號(hào),在任一時(shí)刻其輸出的有效片選信號(hào)使得單片機(jī)只能訪(fǎng)問(wèn)RAM、I/O 和CLOCK其中之一,避免了總線(xiàn)競(jìng)爭(zhēng)現(xiàn)象。下面介紹單片機(jī)擴(kuò)展中的地址譯碼技術(shù)。 地址譯碼有兩種方法,線(xiàn)選法和全地址譯碼法。 14線(xiàn)選法線(xiàn)選法一般用于擴(kuò)展少量的片外存儲(chǔ)器和I/O接口芯片。所謂線(xiàn)選法通常是將單片機(jī)的高8位地址線(xiàn)A8A15中的某幾根與外部接口芯片的片選端一一相連,當(dāng)該地址線(xiàn)為0時(shí)(對(duì)0選通有效的外部芯片而言),與該地址線(xiàn)相連接的外部芯片被選通。這種方法的缺點(diǎn)是:全部地址空間是斷續(xù)的,每個(gè)接口電路的地址空間又可能是重疊的。15圖是線(xiàn)選法典型電路組成。 16
7、圖7.2中,當(dāng)A15 = 0時(shí),選中RAM 6264,而A14 = 0時(shí),選中I/O芯片8255,為了避免產(chǎn)生總線(xiàn)競(jìng)爭(zhēng), A15和A14不能同時(shí)為0,由此可確定選中RAM6264的二進(jìn)制數(shù)地址應(yīng)為:01xxxxxx xxxxxxxx,x為任意,即可以是0也可以是1。故RAM 6264的地址范圍二進(jìn)制數(shù)是01000000 0000000001111111 11111111,對(duì)應(yīng)的十六進(jìn)制數(shù)是4000H7FFFH。而RAM6264容量只有8KB,故4000H5FFFH、6000H7FFFH兩段地址完全重疊。同樣可確定選中I/O芯片8255的二進(jìn)制數(shù)地址應(yīng)是:10 xxxxxx xxxxxxxx,x
8、為任意。故I/O芯片8255的地址范圍二進(jìn)制數(shù)是10000000 0000000010111111 11111111。對(duì)應(yīng)十六進(jìn)制數(shù)是8000HBFFFH。而I/O8255實(shí)際只占用4個(gè)地址單元,故地址重疊部分更多。 172. 全地址譯碼法全地址譯碼法,是通過(guò)譯碼電路對(duì)單片機(jī)可利用的高位地址線(xiàn)進(jìn)行譯碼,以得到較多的片選信號(hào)。 18用全地址譯碼法擴(kuò)展存儲(chǔ)器舉例197.1.3 單片機(jī)系統(tǒng)存儲(chǔ)器擴(kuò)展方法20217.2 并行I/O口擴(kuò)展7.2.1 8255可編程并行I/O接口芯片1. 8255 的電路結(jié)構(gòu)和功能8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道
9、3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。228255內(nèi)部結(jié)構(gòu)如圖7.5所示。238255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線(xiàn)接口,即數(shù)據(jù)線(xiàn)、地址線(xiàn)、控制線(xiàn)接口。同時(shí)必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與CPU連接部分、與外設(shè)連接部分、控制器部分。 241)與CPU連接部分根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線(xiàn)為8根D0D7。由于8255具有3個(gè)通道A、B、C,所以只要兩根地址線(xiàn)就能
10、尋址A、B、C口及控制寄存器,故地址線(xiàn)為兩根A0A1。此外CPU要對(duì)8255進(jìn)行讀、寫(xiě)與片選操作,所以控制線(xiàn)為片選、復(fù)位、讀、寫(xiě)信號(hào)。 252)與外設(shè)接口部分根據(jù)定義,8255有3個(gè)通道A、B、C與外設(shè)連接,每個(gè)通道又有8根線(xiàn)與外設(shè)連接,所以8255可以用24根線(xiàn)與外設(shè)連接,若進(jìn)行開(kāi)關(guān)量控制,則8255可同時(shí)控制24路開(kāi)關(guān)。 3)控制器8255將3個(gè)通道分為兩組,即PA0PA7與PC4PC7組成A組,PB0PB7與PC0PC3組成B組。相應(yīng)的控制器也分為A組控制器與B組控制器。 262. 8255芯片引腳與CPU的連接271)數(shù)據(jù)總線(xiàn)DB引腳AT89C52的P0.0P0.7與8255的D0D7
11、連接 2)地址總線(xiàn)AB引腳A0、A1通過(guò)74HC373鎖存器與AT89C52的P0.0、P0.1連接。A1A0取0011值,可選擇A、B、C口與控制寄存器,選擇方法如下:A1A0=00:選擇A口。A1A0=01:選擇B口。A1A0=10:選擇C口。A1A0=11:選擇控制寄存器。28其中,xx表示取值可任意 294)3個(gè)通道引腳(1)A口的8個(gè)引腳PA0PA7與外設(shè)連接,用于8位數(shù)據(jù)的輸入與輸出。(2)B口的8個(gè)引腳PB0PB7與外設(shè)連接,用于8位數(shù)據(jù)的輸入與輸出。(3)C口的8個(gè)引腳PC0PC7與外設(shè)連接,用于8位數(shù)據(jù)的輸入與輸出或通信線(xiàn)。 303. 8255的工作方式4. 8255初始化1
12、)工作方式選擇字8255工作方式選擇字共8位,如圖所示,存放在8255控制寄存器中。最高位D7為標(biāo)志位,D7=1表示控制寄存器中存放的是工作方式選擇字,D7 = 0表示控制寄存器中存放的是C口置位/復(fù)位控制字。 3132D3D6用于A組的控制,D6D5 = 00表示A組工作于基本I/O方式0,D6D5 = 01表示A組工作于應(yīng)答I/O方式1,D6D5 = 1x表示A組工作于雙向應(yīng)答I/O方式2(x取0或1)。D4 = 1表示A口工作于輸入方式,D4 = 0表示A口工作于輸出方式,D3 = 1表示上C口工作于輸入方式,D3 = 0表示上C口工作于輸出方式。33D0D2用于B組的控制,各位含義如圖
13、7.8所示。D2 = 0表示B組工作于基本I/O方式0,D2 = 1表示B組工作于應(yīng)答I/O方式1。D1 = 1表示B口工作于輸入方式,D1 = 0表示B口工作于輸出方式,D0 = 1表示下C口工作于輸入方式,D0 = 0表示下C口工作于輸出方式。工作方式字應(yīng)輸入控制寄存器,按上面的連接方式,控制寄存器的地址為E003H。 所謂8255初始化,就是要根據(jù)工作要求確定8255工作方式選擇字,并輸入8255控制寄存器。 34【例7.1】 按照8255與AT89C52的連接圖對(duì)8255初始化編程:(1)A、B、C口均為基本I/O輸出方式。(2)A口與上C口為基本I/O輸出方式,B口與下C口為基本I/
14、O輸入方式。(3)A口為應(yīng)答I/O輸入方式,B口為應(yīng)答I/O輸出方式。 35解:(1)A、B、C口均為基本I/O輸出方式。#define COM8255 XBYTE0 xe003 /* 定義8255控制寄存器地址 */void init8255(void) COM8255=0 x80; /*工作方式選擇字送入8255控制寄存器,設(shè)置A、 B、C口為基本I/O輸出方式 */36(2)A口與上C口為基本I/O輸出方式,B口與下C口為基本I/O輸入方式。37(3)A口為應(yīng)答I/O輸入方式,B口為應(yīng)答I/O輸出方式。uchar xdata COM8255 _at_ 0 xe003; /*定義8255控
15、制寄存器地址*/void init8255(void) COM8255=0 xb4; /*工作方式選擇字送入8255控制寄存器,設(shè)置A、B、C口為基本I/O輸出方式 */ 382)C口置/復(fù)位控制字8255的C口可進(jìn)行位操作,即可對(duì)8255C口的每一位進(jìn)行置位或清0操作,該操作是通過(guò)設(shè)置C口置/復(fù)位字實(shí)現(xiàn)的。C口置/復(fù)位字共8位,各位含義如圖所示。 由于8255的工作方式選擇字與C口置/復(fù)位字共用一個(gè)控制寄存器,故特別設(shè)置D7為標(biāo)志位,D7=0表示控制字為C口置/復(fù)位字,D7 = 1表示控制字為8255工作方式選擇字。 395. 8255應(yīng)用舉例【例7.2】 按照?qǐng)D7.7 8255與AT89C
16、52的連接圖,用8255C口的PC3引腳向外輸出連續(xù)的正方波信號(hào),頻率為500Hz。解:(1)軟件延時(shí)方式實(shí)現(xiàn)將C口設(shè)置為基本I/O輸出方式,先從PC3引腳輸出高電平1,間隔1ms后向PC3輸出低電平0,再間隔1ms后向PC3輸出高電平1,周而復(fù)始,則可實(shí)現(xiàn)從PC3輸出頻率為500Hz正方波的目的。 40(2)定時(shí)器1工作方式1中斷實(shí)現(xiàn)中斷實(shí)現(xiàn)有效提高CPU的工作效率。將C口設(shè)置為基本I/O輸出方式,12MHz晶振,定時(shí)器初值設(shè)為65536-1000即可,每次中斷PC3引腳翻轉(zhuǎn),周而復(fù)始,則可實(shí)現(xiàn)從PC3輸出頻率為500Hz正方波的目的。417.2.2 用74HC系列芯片擴(kuò)展I/O接口在80C
17、51單片機(jī)應(yīng)用系統(tǒng)中,采用74HC系列的鎖存器和觸發(fā)器通過(guò)P0口也可以構(gòu)成各種類(lèi)型的輸入/輸出接口,這種I/O口具有電路簡(jiǎn)單、成本低、配置靈活方便等優(yōu)點(diǎn)。故在單片機(jī)應(yīng)用系統(tǒng)中也被廣泛采用。421. 用鎖存器擴(kuò)展輸出接口432. 用總線(xiàn)驅(qū)動(dòng)器擴(kuò)展輸入接口通過(guò)P0口擴(kuò)展輸入接口時(shí),總線(xiàn)驅(qū)動(dòng)器被視為一個(gè)外部RAM地址單元。使用MOVX A,DPTR指令從輸入口讀取數(shù)據(jù)。圖7.11是AT89C52通過(guò)74HC245擴(kuò)展輸入口的原理圖。 44在單片機(jī)數(shù)據(jù)總線(xiàn)上用74HCXX系列芯片擴(kuò)展I/O接口,74HCXX芯片被視為80C51的片外RAM單元,用MOVX指令對(duì)其進(jìn)行讀寫(xiě)。以80C51的信號(hào)對(duì)它們進(jìn)行讀
18、寫(xiě)控制時(shí)需要注意三點(diǎn):輸出鎖存。輸入三態(tài)。用RD、WR和地址線(xiàn)產(chǎn)生的有效選片信號(hào)(可能高、也可能低),作為數(shù)據(jù)輸入或輸出控制信號(hào)。 457.3 大容量閃速存儲(chǔ)器Flash的擴(kuò)展本節(jié)以Super Flash 28SF040A存儲(chǔ)器為例,介紹閃速存儲(chǔ)器Flash存儲(chǔ)器在單片機(jī)系統(tǒng)中的使用方法。 7.3.1 Super Flash 28SF040A簡(jiǎn)介28SF040A是一個(gè)容量為512KB的CMOS快速閃存,可塊擦除、字節(jié)編程的Flash EEPROM,引腳與EPROM、EEPROM兼容。 46472. 引腳排列及芯片特殊操作命令對(duì)28SF040A的讀操作非常簡(jiǎn)單,類(lèi)似于SRAM,這里不再贅述。 4
19、828SF040A的其他特殊操作命令包括扇區(qū)擦除(Sector_Erase)、芯片擦除(Chip_Erase)、字節(jié)編程、復(fù)位、讀ID號(hào)、軟件數(shù)據(jù)寫(xiě)保護(hù)、軟件數(shù)據(jù)寫(xiě)保護(hù)打開(kāi)。 497.3.2 89C52單片機(jī)和28SF040A接口方法28SF040A是大容量并行存儲(chǔ)器共計(jì)512KB,地址線(xiàn)A0A18共19根,而89C52全部尋址空間僅為64KB,地址線(xiàn)A0A15共16根,因此需要增加高位地址線(xiàn)訪(fǎng)問(wèn)28SF040A。501. 使用單片機(jī)的I/O口控制高位地址線(xiàn)用P1口的P1.2P1.0控制28SF040A高位地址線(xiàn) 512. 使用單片機(jī)的擴(kuò)展I/O口控制高位地址線(xiàn)527.4 單片機(jī)系統(tǒng)中的鍵盤(pán)接
20、口技術(shù)鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)最常用的輸入設(shè)備,操作人員可以通過(guò)鍵盤(pán)向單片機(jī)系統(tǒng)輸入指令、地址和數(shù)據(jù),實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。 537.4.1 鍵盤(pán)工作原理及消抖鍵盤(pán)是一組按鍵的集合,鍵是一種常開(kāi)型按鈕開(kāi)關(guān),平時(shí)(常態(tài))鍵的兩個(gè)觸點(diǎn)處于斷開(kāi)狀態(tài),按下鍵時(shí)它們才閉合(短路),如圖所示。54鍵盤(pán)分編碼鍵盤(pán)和非編碼鍵盤(pán),按鍵的識(shí)別由專(zhuān)用的硬件譯碼實(shí)現(xiàn),并能產(chǎn)生鍵編號(hào)或鍵值的稱(chēng)為編碼鍵盤(pán),如BCD碼鍵盤(pán)、ASCII碼鍵盤(pán)等,而缺少這種鍵盤(pán)編碼電路要靠自編軟件識(shí)別的稱(chēng)為非編碼鍵盤(pán)。在單片機(jī)組成的電路系統(tǒng)及智能化儀器中,用得更多的是非編碼鍵盤(pán),本節(jié)只討論非編碼鍵盤(pán)。 551. 鍵盤(pán)操作特點(diǎn)在圖中,當(dāng)按鍵S未被按下
21、(即斷開(kāi))時(shí),P1.1輸入為高電平,S閉合后,P1.1輸入為低電平。通常的按鍵所用的開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),電壓信號(hào)波形如圖(b)所示。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)馬上斷開(kāi),因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng)。 562. 按鍵抖動(dòng)的消除方法鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次,為了確保單片機(jī)對(duì)鍵的一次閉合僅做一次處理,必須去除鍵抖動(dòng),在鍵閉合穩(wěn)定時(shí)取鍵狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再進(jìn)行處理。按鍵的抖動(dòng),可用硬件或軟件兩種方法消除。通常在鍵數(shù)較少時(shí),可用硬件方法消除鍵抖動(dòng)。RS觸發(fā)器為常用的硬件去抖電路。單片機(jī)系統(tǒng)中常用
22、軟件法。 577.4.2 獨(dú)立式鍵盤(pán)與工作原理獨(dú)立式按鍵是各按鍵互相獨(dú)立地接通一條輸入數(shù)據(jù)線(xiàn),各按鍵的狀態(tài)互不影響,如圖7.16所示,這是最簡(jiǎn)單的鍵盤(pán)結(jié)構(gòu),該電路采用了中斷方式讀取鍵值。由于89C51系列單片機(jī)P1口在內(nèi)部已經(jīng)有上拉電阻,根據(jù)使用經(jīng)驗(yàn)圖7.16中的3個(gè)外部上拉電阻可省掉。 58當(dāng)沒(méi)有鍵按下時(shí),與之相連的輸入口線(xiàn)為1(高電平),與門(mén)輸出為高電平。當(dāng)任何一個(gè)鍵按下時(shí),與之相連的輸入口線(xiàn)被置0(低電平),與門(mén)輸出由高變低,產(chǎn)生外中斷條件,在中斷服務(wù)程序中讀取鍵盤(pán)值。59【例7.4】 按照?qǐng)D7.16,使用外中斷,編寫(xiě)?yīng)毩⑹桨存I程序。607.4.3 行列式鍵盤(pán)與工作原理為了減少鍵盤(pán)與單片
23、機(jī)接口時(shí)所占用I/O口線(xiàn)的數(shù)目,在鍵數(shù)較多時(shí),通常都將鍵盤(pán)排列成行列矩陣式,每一水平線(xiàn)(行線(xiàn))與垂直線(xiàn)(列線(xiàn))的交叉處不相通,是通過(guò)一個(gè)按鍵連通的。利用這種行列矩陣結(jié)構(gòu)只需N個(gè)行線(xiàn)和M個(gè)列線(xiàn)即可組成M N個(gè)按鍵的鍵盤(pán)。 61圖7.17是44(16鍵)行列式鍵盤(pán)電路。由于89C52單片機(jī)P1口在內(nèi)部已經(jīng)有上拉電阻,根據(jù)使用經(jīng)驗(yàn)外部上拉電阻可以省掉。 62在這種行列矩陣式非編碼鍵盤(pán)的單片機(jī)系統(tǒng)中,對(duì)鍵的識(shí)別通常采用兩步掃描判別法。具體方法描述見(jiàn)主教材252頁(yè)。637.4.4 鍵盤(pán)掃描的控制程序單片機(jī)對(duì)按鍵的控制通常有以下三種方式:(1)程序控制掃描方式,即利用程序連續(xù)地對(duì)鍵盤(pán)進(jìn)行掃描。(2)定時(shí)掃
24、描方式,即單片機(jī)定時(shí)地對(duì)鍵盤(pán)進(jìn)行掃描。(3)中斷掃描方式,即鍵的按下引起中斷后,單片機(jī)對(duì)鍵盤(pán)進(jìn)行掃描。64【例7.5】 按照?qǐng)D7.17的電路,使用兩步掃描法,編寫(xiě)的鍵掃描程序。有鍵按下,掃描函數(shù)返回值為鍵值,若無(wú)鍵按下,返回值為0 xff。要求每10ms定時(shí)檢測(cè)一次按鍵,使用定時(shí)器中斷實(shí)現(xiàn)定時(shí)。按鍵信息由printf輸出到串口。657.5 單片機(jī)系統(tǒng)中的LED數(shù)碼顯示器7.5.1 LED顯示器的結(jié)構(gòu)與原理66單片機(jī)系統(tǒng)中通常使用8段LED數(shù)碼顯示器,8段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)長(zhǎng)條形的發(fā)光二極管排列成“日”字形,另一個(gè)圓點(diǎn)形的發(fā)光二極管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,通過(guò)不
25、同的組合可用來(lái)顯示各種數(shù)字,包括AF在內(nèi)的部分英文字母和小數(shù)點(diǎn)“”等字樣。 67LED顯示器的顯示方法有靜態(tài)顯示與動(dòng)態(tài)顯示兩種,下面分別予以介紹。7.5.2 LED靜態(tài)顯示接口數(shù)碼管工作在靜態(tài)顯示方式時(shí),共陰極(共陽(yáng)極)的公共端COM連接在一起接地(電源)。每位的段選線(xiàn)與一個(gè)8位并行口相連。只要在該位的段選線(xiàn)上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。 68圖7.19是通過(guò)串行口擴(kuò)展8位LED顯示器靜態(tài)驅(qū)動(dòng)電路,在TXD(P3.1)運(yùn)行時(shí)鐘信號(hào),將顯示數(shù)據(jù)由RXD(P3.0)口串行輸出,串行口工作在移位寄存器方式(方式0)。69顯然,要顯示某字符,首先要把這個(gè)字符轉(zhuǎn)換成相應(yīng)的字形碼,然后再通
26、過(guò)串行口發(fā)送到74HC164。74HC164把串行口收到的數(shù)變?yōu)椴⑿休敵黾拥綌?shù)碼管上。 70先建立一個(gè)字形碼表,以十六進(jìn)制數(shù)的次序存放它們的相應(yīng)字形碼,共陰極字形碼表如主教材257頁(yè)表7.5所示。 如要顯示字符6,查表可知6的字形碼為0 x7d,把0 x7d送到8位移位寄存器74HC164即可。顯然,要顯示字符09、AF,其高4位為全0,而低4位為十六進(jìn)制數(shù)。如果要顯示的數(shù)高半字節(jié)不是0,則要通過(guò)程序加以變換。 71【例7.6】 按照?qǐng)D7.19顯示電路編寫(xiě)顯示驅(qū)動(dòng)程序。727.5.3 LED動(dòng)態(tài)掃描顯示接口靜態(tài)LED顯示法有著顯示亮度大,軟件較為簡(jiǎn)單的優(yōu)點(diǎn),但硬件上使用芯片多,每個(gè)LED顯示器
27、需要一個(gè)驅(qū)動(dòng)電路。 LED動(dòng)態(tài)顯示的基本做法在于分時(shí)輪流選通數(shù)碼管的公共端,使得各數(shù)碼管輪流導(dǎo)通,在選通相應(yīng)LED后,即在顯示字段上得到顯示字形碼。這種方式不但能提高數(shù)碼管的發(fā)光效率,而且由于各個(gè)數(shù)碼管的字段線(xiàn)是并聯(lián)使用的,從而大大簡(jiǎn)化了硬件線(xiàn)路。73動(dòng)態(tài)掃描顯示接口是單片機(jī)系統(tǒng)中應(yīng)用最為廣泛的一種顯示方式。其接口電路是把所有顯示器的8個(gè)筆劃段adp同名端并聯(lián)在起,而每一個(gè)顯示器的公共極COM是各自獨(dú)立地受I/O線(xiàn)控制。 動(dòng)態(tài)掃描是指采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。 74在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺(jué)暫留現(xiàn)
28、象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。 75圖7.20是一個(gè)典型的動(dòng)態(tài)掃描8位LED顯示接口電路。該電路由74HC245提供段adp的驅(qū)動(dòng),74LS145提供位COM1COM8的驅(qū)動(dòng)。請(qǐng)注意89C52的P0.0P0.7每個(gè)口線(xiàn)上有1個(gè)10k的上拉電阻,圖中未示出。76數(shù)碼管是8段共陰極LED顯示器,所以發(fā)光時(shí)字形驅(qū)動(dòng)輸出1有效,位驅(qū)動(dòng)輸出0有效。但注意位驅(qū)動(dòng)是74LS145的譯碼輸出,如果要顯示第5位(數(shù)碼管序號(hào)為07)數(shù)碼管,74LS145的輸入端應(yīng)為DCBA=0101。77【例7.7】 按照?qǐng)D7.
29、20電路,編寫(xiě)在8個(gè)數(shù)碼管依次顯示0, 1, , 7的程序。787.6 單片機(jī)系統(tǒng)中的LCD液晶顯示器LCD液晶顯示器是一種被動(dòng)式的顯示器,與LED不同,液晶本身并不發(fā)光,而是利用液晶在電壓作用下,能改變光線(xiàn)通過(guò)方向的特性,而達(dá)到顯示白底黑字或黑底白字的目的。液晶顯示器具有體積小、功耗低,抗干擾能力強(qiáng)等優(yōu)點(diǎn),特別適用于小型手持式設(shè)備。這幾年隨著價(jià)格的下降而得到廣泛的應(yīng)用。 79常見(jiàn)的液晶顯示器有七段式LCD顯示器、點(diǎn)陣式字符型LCD 顯示器和點(diǎn)陣式圖形LCD 顯示器。 本節(jié)主要介紹點(diǎn)陣式字符型LCD 顯示器以及應(yīng)用。 807.6.1 字符型液晶顯示模塊的組成和基本特點(diǎn)字符型液晶顯示模塊是專(zhuān)門(mén)用
30、于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶顯示模塊。分4位和8位數(shù)據(jù)傳輸方式。提供57點(diǎn)陣光標(biāo)和510點(diǎn)陣光標(biāo)的顯示模式。提供內(nèi)部上電自動(dòng)復(fù)位電路,當(dāng)外加電源電壓超過(guò)+4.5V時(shí),自動(dòng)對(duì)模塊進(jìn)行初始化操作,將模塊設(shè)置為默認(rèn)的顯示工作狀態(tài)。 81字符型液晶顯示模塊組件內(nèi)部主要由LCD 顯示屏(LCD PANEL)、控制器(controller)、驅(qū)動(dòng)器(driver)、少量阻、容元件,結(jié)構(gòu)件等裝配在PCB板上構(gòu)成。如圖7.21所示。82字符型液晶顯示模塊目前在國(guó)際上已經(jīng)規(guī)范化,無(wú)論顯示屏規(guī)格如何變化,其電特性和接口形式都是統(tǒng)一的。因此只要設(shè)計(jì)出一種型號(hào)的接口電路,在指令設(shè)置上稍加改動(dòng)即可使用各種規(guī)格的
31、字符型液晶顯示模塊。下面介紹點(diǎn)陣式字符型LCD 顯示器LCD1602模塊以及應(yīng)用。837.6.2 LCD1602模塊接口引腳功能LCD1602共有16個(gè)引腳,見(jiàn)主教材261頁(yè)表7.6。管腳進(jìn)一步說(shuō)明如下:第1腳:VSS為地電源;第2腳:VDD接5V正電源;第3腳:VO為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度;84第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器;第5腳:R/W為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯
32、示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù);第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令;第714腳:DB0DB7為8位雙向數(shù)據(jù)線(xiàn);第15、16兩腳用于帶背光模塊,不帶背光的模塊這兩個(gè)管腳懸空不接。857.6.3 LCD1602模塊的操作命令1. 1602LCD 各寄存器介紹控制器主要由指令寄存器IR、數(shù)據(jù)寄存器DR、忙標(biāo)志BF、地址計(jì)數(shù)器AC、DDRAM、CGROM、CGRAM以及時(shí)序發(fā)生電路組成。寄存器介紹見(jiàn)主教材262-263頁(yè)。86 指令寄存器(IR)和數(shù)據(jù)寄存器(DR) 本系列模塊內(nèi)部具有兩個(gè)8位寄存器:指令寄存
33、器(IR)和數(shù)據(jù)寄存器(DR)。用戶(hù)可以通過(guò)RS和R/W輸入信號(hào)的組合選擇指定的寄存器,進(jìn)行相應(yīng)的操作。87 忙標(biāo)志位BF 忙標(biāo)志BF=1時(shí),表明模塊正在進(jìn)行內(nèi)部操作,此時(shí)不接受任何外部指令和數(shù)據(jù)。當(dāng)RS=0、R/W=1以及E為高電平時(shí),BF輸出到DB7。每次操作之前最好先進(jìn)行狀態(tài)字檢測(cè),只有在確認(rèn)BF=0之后,MPU才能訪(fǎng)問(wèn)模塊;88 地址計(jì)數(shù)器(AC) AC地址計(jì)數(shù)器是DDRAM或者CGRAM的地址指針。隨著IR中指令碼的寫(xiě)入,指令碼中攜帶的地址信息自動(dòng)送入AC中,并做出AC作為DDRAM的地址指針還是CGRAM的地址指針的選擇。 89 顯示數(shù)據(jù)寄存器(DDRAM) DDRAM存儲(chǔ)顯示字符
34、的字符碼,其容量的大小決定著模塊最多可顯示的字符數(shù)目??刂破鲀?nèi)部有80字節(jié)的DDRAM緩沖區(qū),DDRAM地址與LCD顯示屏上的顯示位置的對(duì)應(yīng)關(guān)系如圖7.22所示。90 字符發(fā)生器ROM 在CGROM中,模塊已經(jīng)以8位二進(jìn)制數(shù)的形式,生成了58點(diǎn)陣的字符字模組字符字模(一個(gè)字符對(duì)應(yīng)一組字模)。字符字模是與顯示字符點(diǎn)陣相對(duì)應(yīng)的88矩陣位圖數(shù)據(jù)(與點(diǎn)陣行相對(duì)應(yīng)的矩陣行的高三位為“0”),同時(shí)每一組字符字模都有一個(gè)由其在CGROM中存放地址的高八位數(shù)據(jù)組成的字符碼對(duì)應(yīng)。 字符碼地址范圍為00HFFH,其中00H07H字符碼與用戶(hù)在CGRAM中生成的自定義圖形字符的字模組相對(duì)應(yīng)。91 字符發(fā)生器RAM
35、在CGRAM中,用戶(hù)可以生成自定義圖形字符的字模組??梢陨?8點(diǎn)陣的字符字模8組,相對(duì)應(yīng)的字符碼從CGROM的00H0FFH范圍內(nèi)選擇。922. 1602LCD指令說(shuō)明模塊向用戶(hù)提供了11條指令,大致可以分為四大類(lèi): 模塊功能設(shè)置,諸如:顯示格式、數(shù)據(jù)長(zhǎng)度等; 設(shè)置內(nèi)部RAM地址; 完成內(nèi)部RAM數(shù)據(jù)傳送; 完成其他功能。說(shuō)明詳細(xì)見(jiàn)主教材264-266頁(yè)! 937.6.4 LCD1602與89C52單片機(jī)接口與編程LCD1602適配M6800系列MPU的操作時(shí)序,可直接與該系列MPU連接。由于80C51系列單片機(jī)的操作時(shí)序與M6800系列不同,可采用80C51的I/O模擬LCD1602的操作
36、時(shí)序。其連接方法如圖7.23所示。圖7.2394采用圖7. 23中接口電路將占用很多80C51寶貴的I/O口資源,將80C51的讀寫(xiě)信號(hào)經(jīng)門(mén)電路變換后,可直接將LCD1602連到80C51的三總線(xiàn)上。95如圖7. 24所示,是采用AT89C52、74HC00和74HC573組成的接口電路。圖中連接方法LCD1602的寄存器讀寫(xiě)地址如下: uchar xdata Lcd1602CmdPort _at_ 0 x8000;/寫(xiě)IR寄存器,命令uchar xdata Lcd1602StatusPort _at_ 0 x8001;/讀IR寄存器,狀態(tài)uchar xdata Lcd1602WdataPor
37、t _at_ 0 x8002;/寫(xiě)DR寄存器uchar xdata Lcd1602RdataPort _at_ 0 x8003;/讀DR寄存器96【例7.8】 如圖7. 24所示電路,編寫(xiě)程序順序?qū)崿F(xiàn):(1)LCD1602初始化;(2)在LCD1602顯示W(wǎng)elcome to scut!- By zhangqin;(3)然后在第2行循環(huán)顯示ASCII可打印字符。 977.7 日歷時(shí)鐘接口芯片及應(yīng)用7.7.1 并行接口日歷時(shí)鐘芯片DS12887DS12887是內(nèi)置鋰電池的實(shí)時(shí)日歷時(shí)鐘芯片,它可以產(chǎn)生秒、分、時(shí)、星期、日、月及年等7個(gè)時(shí)標(biāo),并有供用戶(hù)使用的114B帶掉電保護(hù)的RAM,可以通過(guò)編程讀
38、取和修改這些時(shí)標(biāo),也可以編程產(chǎn)生定時(shí)間隔時(shí)間中斷,使用十分方便。1. DS12887芯片的引腳982. 片內(nèi)結(jié)構(gòu)和寄存器DS12887的內(nèi)部有10B時(shí)標(biāo)寄存器、4B狀態(tài)寄存器、114B帶掉電保護(hù)的RAM。其地址分配如圖7.26所示。 991)時(shí)標(biāo)寄存器 10個(gè)時(shí)標(biāo)寄存器可用二進(jìn)制表示,也可用BCD碼表示。其功能和數(shù)值范圍如表7.7所示。1002)寄存器0AH寄存器0AH的格式如圖7.27所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新周期進(jìn)行標(biāo)志位,UIP = 1時(shí),芯片正處于或?qū)㈤_(kāi)始新周期,此期間不允許讀寫(xiě)時(shí)標(biāo)
39、寄存器。DV2DV0:為010時(shí)晶振工作,其他組合時(shí)晶振停止。 RS3RS0:中斷周期時(shí)間和SQW輸出頻率選擇位。 1013)寄存器0BH寄存器0BH中的格式如圖7.28所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SETPIEAIEUIESQWEDM24/12DSESET:為1時(shí)禁止更新。為0時(shí)正常。 PIE:為1時(shí)周期中斷允許。AIE:為1時(shí)警報(bào)中斷允許。UIE:為1時(shí)更新結(jié)束中斷允許。SQWE:為1時(shí)方波輸出允許。DM:為0時(shí)時(shí)間為BCD碼,為1時(shí)為二進(jìn)制。24/12:為1時(shí)是24小時(shí)進(jìn)制。為0時(shí)是12小時(shí)進(jìn)制。DSE:置0。 1024)寄存器0CH寄存器0CH的
40、格式如圖7.29所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRQFPFAFUF0000IRQF:中斷申請(qǐng)標(biāo)志。PF:周期中斷標(biāo)志。AF:警報(bào)中斷標(biāo)志。UF:更新結(jié)束中斷標(biāo)志。1035)寄存器0DH寄存器0DH格式如圖7.30所示。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0VRT0000000VRT:為0時(shí)表示內(nèi)部鋰電池耗盡。 1043. DS12887與89C52的接口電路圖7.31是89C52與DS12887的接口電路,DS12887的片選信號(hào)接P2.4,即P2.4 = 0時(shí),選中DS12887,設(shè)片內(nèi)時(shí)標(biāo)寄存器和掉電RAM的地址范圍是:0E
41、400H0E47FH。105時(shí)標(biāo)寄存器設(shè)置的步驟為:(1)寄存器B的SET位置1,芯片停止工作。(2)時(shí)標(biāo)寄存器置初值。秒、分、時(shí)、星期、年、月、日時(shí)標(biāo)寄存器的地址順序?yàn)椋篍400H、E402H、E404H、E406H、E407H、E408H、E409H。(3)讀寄存器C,以消除已有的中斷標(biāo)志。(4)讀寄存器D,使片內(nèi)寄存器和RAM數(shù)據(jù)有效。(5)寄存器B的SET位清0,啟動(dòng)DS12887開(kāi)始工作。1067.7.2 串行接口日歷時(shí)鐘芯片DS1302串行接口的日歷時(shí)鐘芯片以其使用簡(jiǎn)單、接口容易、與微機(jī)連線(xiàn)少等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng),尤其是手持式信息設(shè)備中得到廣泛應(yīng)用。下面介紹在單片機(jī)應(yīng)用系統(tǒng)中廣
42、為使用的串行接口實(shí)時(shí)時(shí)鐘芯片DSl302的特點(diǎn)和使用方法。1071. DS1302特性和引腳說(shuō)明DSl302內(nèi)部具有實(shí)時(shí)時(shí)鐘、日歷和用戶(hù)可用RAM,通過(guò)一個(gè)簡(jiǎn)單的串行接口與微機(jī)通信,可根據(jù)月份和閏年的情況自動(dòng)調(diào)整月份的結(jié)束日期,時(shí)鐘可由用戶(hù)決定是以24小時(shí)制式或12小時(shí)制式工作。108芯片主要特性實(shí)時(shí)時(shí)鐘包括秒、分、小時(shí)、日、月、星期和年等信息。31B靜態(tài)RAM可供用戶(hù)使用。簡(jiǎn)單的3線(xiàn)串行I/O接口。2.5V5.5V的電壓工作范圍。TTL/CMOS兼容(Vcc5V時(shí))。在2.5V工作時(shí),芯片電流小于300nA。8腳DIP或SOIC封裝??蛇x的涓流充電方式。工作電源和備份電源雙引腳輸入。備份電源
43、可由超級(jí)電容(1F)替代。1092. 基本控制操作1)命令字節(jié)命令字節(jié)的格式如圖所示 110每次數(shù)據(jù)的傳輸都是由命令字節(jié)開(kāi)始的,這里的最高有效位必須是1。D6是RAM(為1)或時(shí)鐘/日歷(為0)的標(biāo)識(shí)位。D1D5定義片內(nèi)寄存器的地址。最低有效位(D0)定義了寫(xiě)操作(為0時(shí))或讀操作(為1時(shí))。命令字節(jié)的傳輸始終從最低有效位開(kāi)始。1112)數(shù)據(jù)的寫(xiě)入或讀對(duì)芯片的所有寫(xiě)入或讀出操作都是由命令字節(jié)為引導(dǎo)的。每次僅寫(xiě)入或讀出1B數(shù)據(jù)的操作稱(chēng)為單字節(jié)操作。每次對(duì)時(shí)鐘/日歷的8B或31個(gè)RAM字節(jié)進(jìn)行全體寫(xiě)入或讀出操作,稱(chēng)其為多字節(jié)突發(fā)模式操作。 112圖7.35 多字節(jié)突發(fā)模式操作格式圖7.34 單字節(jié)
44、傳送操作格式 1133)時(shí)鐘/日歷寄存器地址命令格式及功能定義訪(fǎng)問(wèn)DS1302片內(nèi)各寄存器地址命令格式見(jiàn)主教材277頁(yè)表7.9所示。訪(fǎng)問(wèn)DS1302片內(nèi)各寄存器數(shù)據(jù)格式見(jiàn)主教材277頁(yè)表7.10所示。時(shí)鐘/日歷寄存器共有秒、分、時(shí)、日、月、星期和年共7個(gè)寄存器。秒寄存器的最高位CH標(biāo)志位是時(shí)鐘的暫停標(biāo)志。當(dāng)這一位被置為邏輯1時(shí),時(shí)鐘振蕩電路停振,且DS1302進(jìn)入低功耗空閑狀態(tài),這時(shí)芯片消耗電流將小于l00nA。當(dāng)這一位被置為邏輯0時(shí),時(shí)鐘將工作。 114控制寄存器即寫(xiě)保護(hù)寄存器,該寄存器的最高位是芯片的寫(xiě)保護(hù)位,D0D6應(yīng)強(qiáng)迫寫(xiě)0,且讀出時(shí)始終為0。對(duì)任何片內(nèi)時(shí)鐘/日歷寄存器或RAM,在寫(xiě)操
45、作之前,寫(xiě)保護(hù)位必須是0,否則將不可寫(xiě)入。因此,通過(guò)置寫(xiě)保護(hù)位,可提高數(shù)據(jù)的安全性。115涓流充電寄存器控制著DSl302的涓流充電特性。寄存器的D4D7決定是否具備充電性能,僅在1010編碼的條件下才具備充電性能,其他編碼組合不允許充電。D2和D3可以選擇在VCC2腳和VCC1腳之間串聯(lián)一個(gè)二極管還是兩個(gè)二極管。如果編碼是01,選擇一個(gè)二極管;如果編碼是10,選擇兩個(gè)二極管;其他編碼將不允許充電。該寄存器的D0和D1選擇與二極管相串聯(lián)的電阻值,其中編碼01為2k,10為4k,11為8k,而00將不允許進(jìn)行充電。116因此根據(jù)涓流充電寄存器的不同編程,可得到不同的充電電流。其充電電流具體計(jì)算公
46、式如下: 式中,5.0V為VCC2腳所接入的工作電壓,VD為二極管正向壓降0.7V, R為寄存器0和1位編碼決定的電阻值,VE為VCC1腳所接入的電池電壓。 1173. DS1302與89C52的接口電路圖7.36是89C52與DS1302的接口電路,DSl302的3條接口線(xiàn)可接到單片機(jī)的任何通用雙向I/O口上。圖7.36 89C52與DS1302的接口電路118【例7.10】 編寫(xiě)圖7.36所示的時(shí)鐘電路DS1302時(shí)鐘芯片驅(qū)動(dòng)程序。并在主程序中每隔1秒讀取時(shí)鐘信息送到串口輸出。在P1.7增加一個(gè)按鈕,當(dāng)按鈕按下時(shí)間超過(guò)1S時(shí),時(shí)鐘被初始化為08年1月1日0點(diǎn)0分0秒周二。 1197.8 單
47、片機(jī)數(shù)據(jù)采集系統(tǒng)在工業(yè)生產(chǎn)和科學(xué)技術(shù)研究的各行業(yè)中,常常利用PC或工控機(jī)對(duì)各種數(shù)據(jù)進(jìn)行采集如液位、溫度、壓力、頻率等物理量。現(xiàn)實(shí)世界的物理量都是模擬量,能把模擬量轉(zhuǎn)化為數(shù)字量的器件稱(chēng)為模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器)。A/D轉(zhuǎn)換器是單片機(jī)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵接口電路,按照和單片機(jī)系統(tǒng)的接口形式,可分為并行A/D轉(zhuǎn)換器和串行A/D轉(zhuǎn)換器。 1207.8.1 并行A/D轉(zhuǎn)換器ADC08091. ADC0809的特性與引腳ADC0809是單片CMOS器件,是8位模/數(shù)轉(zhuǎn)換器,帶有使能控制端,可以和微機(jī)直接接口。片內(nèi)帶有鎖存功能的8路模擬多路開(kāi)關(guān),可以對(duì)8路05V的輸入模擬電壓信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換。 121AD
48、C0809邏輯框圖如圖7.37所示。器件的核心部分是8位A / D轉(zhuǎn)換器,它由比較器、逐次逼近寄存器、D / A轉(zhuǎn)換器及控制和定時(shí)5部分組成。輸出具有TTL三態(tài)鎖存緩沖器,可直接連到單片機(jī)數(shù)據(jù)總線(xiàn)上。 122八路模擬開(kāi)關(guān)用于輸入IN0-IN7上八路模擬電壓。逐次逼近寄存器和比較器SAR在A/D轉(zhuǎn)換過(guò)程中存放暫態(tài)數(shù)字量,在A/D轉(zhuǎn)換完成后存放數(shù)字量,并可送到“三態(tài)輸出鎖存器”鎖存。 三態(tài)輸出鎖存器和控制電路 三態(tài)輸出鎖存器和控制電路用于鎖存A/D轉(zhuǎn)換完成后的數(shù)字量。CPU使OE引腳變成高電平就可以從“三態(tài)輸出鎖存器”取走A/D轉(zhuǎn)換后的數(shù)字量??刂齐娐酚糜诳刂?ADC0809 的操作過(guò)程。 123
49、ADC0809引腳圖如圖7.38所示。ADC0809采用雙列直插式封裝, 共有28條引腳 124IN0-IN7(8條):IN0-IN7為八路模擬電壓輸入線(xiàn),用于輸入被轉(zhuǎn)換的模擬電壓。地址輸入和控制(4條),ALE為地址鎖存允許輸入線(xiàn),高電平有效。 數(shù)字量輸出及控制線(xiàn)(11 條) 電源線(xiàn)及其它(5條) 125在啟動(dòng)端(START)加啟動(dòng)脈沖(正脈沖),開(kāi)始轉(zhuǎn)換。但是EOC信號(hào)是在START的下降沿10s后才變成無(wú)效的低電平。這就要求查詢(xún)EOC要在10s后才能開(kāi)始查詢(xún)。轉(zhuǎn)換結(jié)束后,由OE信號(hào)產(chǎn)生輸出結(jié)果。如將啟動(dòng)端(START)與轉(zhuǎn)換結(jié)束端(EOC)直接相連,轉(zhuǎn)換將是連續(xù)的,在用這種轉(zhuǎn)換方式時(shí),開(kāi)
50、始應(yīng)在外部加啟動(dòng)脈沖。1262. ADC0809與89C52的接口電路ADC0809與單片機(jī)有多種連接方式,圖7.39是89C52與ADC0809的接口電路。該電路通過(guò)調(diào)節(jié)滑線(xiàn)變阻器,改變ADC0809的輸入電壓。127【例7.11】按圖7.39所示電路,設(shè)計(jì)PWM輸出控制電路,根據(jù)ADC0809 IN0的輸入調(diào)制PWM占空比。PWM從P3.7口輸出。1287.8.2 串行A/D轉(zhuǎn)換器TLC2543 1. TLC2543的特性與引腳TLC2543是TI公司的TLC2543 12位串行A/D轉(zhuǎn)換器,使用開(kāi)關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過(guò)程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省80C51系列單片機(jī)的I/
51、O資源,而且價(jià)格適中。 1291302. TLC2543的工作過(guò)程TLC2543的工作過(guò)程分為兩個(gè)周期:I/O 周期和實(shí)際轉(zhuǎn)換周期。1)I/O周期 I/O周期由外部提供的I/O CLOCK定義,延續(xù)8、12或16個(gè)時(shí)鐘周期,決定于選定的輸出數(shù)據(jù)長(zhǎng)度。器件進(jìn)入I/O周期后同時(shí)進(jìn)行兩種操作。 131(1)在I/O CLOCK的前8個(gè)脈沖的上升沿,以MSB前導(dǎo)方式從DATA INPUT端輸入8位數(shù)據(jù)流到輸入寄存器。其中前4位為模擬通道地址,控制14通道模擬多路器從11個(gè)模擬輸入和3個(gè)內(nèi)部自測(cè)電壓中,選通一路送到采樣保持電路,該電路從第4個(gè)I/O CLOCK脈沖的下降沿開(kāi)始,對(duì)所選信號(hào)進(jìn)行采樣,直到最
52、后一個(gè)I/O CLOCK脈沖的下降沿。I/O周期的時(shí)鐘脈沖個(gè)數(shù)與輸出數(shù)據(jù)長(zhǎng)度(位數(shù))有關(guān),輸出數(shù)據(jù)長(zhǎng)度由輸入數(shù)據(jù)的D3、D2選擇為8、12或16位。當(dāng)工作于12或 16位時(shí),在前8個(gè)時(shí)鐘脈沖之后,DATA INPUT無(wú)效。 1322)轉(zhuǎn)換周期 在I/O周期的最后一個(gè)I/O CLOCK脈沖下降沿之后,EOC變低,采樣值保持不變,轉(zhuǎn)換周期開(kāi)始,片內(nèi)轉(zhuǎn)換器對(duì)采樣值進(jìn)行逐次逼近式A/D轉(zhuǎn)換,其工作由與I/O CLOCK同步的內(nèi)部時(shí)鐘控制。轉(zhuǎn)換完成后 EOC變高,轉(zhuǎn)換結(jié)果鎖存在輸出數(shù)據(jù)寄存器中,待下一個(gè)I/O周期輸出。I/O周期和轉(zhuǎn)換周期交替進(jìn)行,從而可以減小外部的數(shù)字噪聲對(duì)轉(zhuǎn)換精度的影響。133TLC
53、2543的工作時(shí)序如圖7.41所示。1343. TLC2543與89C52的接口電路圖7.42是89C52與TLC2543的接口電路,TLC2543的5條接口線(xiàn)可接到單片機(jī)的任何通用雙向I/O口上。135【例7.12】 按圖7.42所示電路,編寫(xiě)采集11個(gè)輸入通道模擬輸入的C程序。1367.9 I2C 總線(xiàn)接口電路EEPROM及應(yīng)用 I2C總線(xiàn),是Inter Integrated Circuit BUS的縮寫(xiě),即內(nèi)部集成電路總線(xiàn)。I2C總線(xiàn)采用時(shí)鐘(SCL)和數(shù)據(jù)(SDA)兩根線(xiàn)進(jìn)行數(shù)據(jù)傳輸,接口十分簡(jiǎn)單。本文將以I2C 總線(xiàn)串行EEPROM為例進(jìn)行介紹。 1377.9.1 串行EEPROM
54、電路CAT24WCXX概述CAT24WCXX系列EEPROM提供標(biāo)準(zhǔn)的8腳DIP封裝和8腳表面安裝的SOIC封裝。CAT24WC01/02/04/08/16/32/64、CAT24WC128、CAT24WC256引腳排列圖分別為如圖7.43(a)、(b)、(c)所示,其引腳功能描述如表7.11所示。138表7.11 引腳功能描述引 腳 名 稱(chēng)功 能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時(shí)鐘WP寫(xiě)保護(hù)VCC1.8V6.0VVSS地1397.9.2 串行EEPROM芯片的操作1. 器件尋址1)從器件地址位主器件通過(guò)發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過(guò)程,然后發(fā)送它所要尋址的從器件的地址。
55、8位從器件地址的高4位D7D4固定為1010(如圖7.45所示),接下來(lái)的3位D3D1(A2、A1、A0)為器件的片選地址位,或作為存儲(chǔ)器頁(yè)地址選擇位,用來(lái)定義哪個(gè)器件以及器件的哪個(gè)部分被主器件訪(fǎng)問(wèn),最多可以連接8個(gè)CAT24WC01/02、4個(gè)CAT24WC04、2個(gè)CAT24WC08、8個(gè)CAT24WC32/64、4個(gè)CAT24WC256器件到同一總線(xiàn)上,這些位必須與硬連線(xiàn)輸入腳A2、A1、A0相對(duì)應(yīng)。 1402)應(yīng)答信號(hào)應(yīng)答時(shí)序圖如圖7.44所示。I2C總線(xiàn)數(shù)據(jù)傳送時(shí),每成功地傳送1B數(shù)據(jù)后,接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào)。應(yīng)答的器件在第9個(gè)時(shí)鐘周期時(shí)將SDA線(xiàn)拉低,表示其已收到1B數(shù)據(jù)。
56、CAT24WCXX在接收到起始信號(hào)和從器件地址之后響應(yīng)一個(gè)應(yīng)答信號(hào),如果器件已選擇了寫(xiě)操作,則在每接收1B之后響應(yīng)一個(gè)應(yīng)答信號(hào)。 1412. 寫(xiě)操作方式1)字節(jié)寫(xiě)142圖7.45 CAT24WC01/02/04/08/16字節(jié)寫(xiě)時(shí)序圖 1432)頁(yè)寫(xiě)如圖7.46所示為CAT24WCXX頁(yè)寫(xiě)時(shí)序圖。在頁(yè)寫(xiě)模式下,CAT24WC01/02/04/08/16可一次寫(xiě)入8/16/16/16/16B的數(shù)據(jù)。頁(yè)寫(xiě)操作的啟動(dòng)和字節(jié)寫(xiě)一樣,不同的是在于傳送了1B數(shù)據(jù)后并不產(chǎn)生停止信號(hào)。 圖7.46 CAT24WC01/02/04/08/16頁(yè)寫(xiě)時(shí)序圖1441)立即地址讀取如圖7.47所示為CAT24WCXX立
57、即地址讀時(shí)序圖。CAT24WCXX的地址計(jì)數(shù)器內(nèi)容為最后操作字節(jié)的地址加1。也就是說(shuō),如果上次讀/寫(xiě)的操作地址為N,則立即讀的地址從地址N+1開(kāi)始。 1452)隨機(jī)地址讀取如圖7.48所示為CAT24WCXX隨機(jī)地址讀時(shí)序圖。隨機(jī)讀操作允許主器件對(duì)寄存器的任意字節(jié)進(jìn)行讀操作,主器件首先通過(guò)發(fā)送起始信號(hào)、從器件地址和它想讀取的字節(jié)數(shù)據(jù)的地址執(zhí)行一個(gè)偽寫(xiě)操作。在CAT24WCXX應(yīng)答之后,主器件重新發(fā)送起始信號(hào)和從器件地址,此時(shí)R/W位置1, CAT24WCXX響應(yīng)并發(fā)送應(yīng)答信號(hào),然后輸出所要求的一個(gè)字節(jié)的數(shù)據(jù),主器件不發(fā)送應(yīng)答信號(hào)但產(chǎn)生一個(gè)停止信號(hào)。1463)順序地址讀取如圖7.49為CAT24
58、WCXX順序地址讀時(shí)序圖。順序讀操作可通過(guò)立即讀或選擇性讀操作啟動(dòng)。在CAT24WCXX發(fā)送完1B數(shù)據(jù)后,主器件產(chǎn)生一個(gè)應(yīng)答信號(hào)來(lái)響應(yīng),告知CAT24WCXX主器件要求更多的數(shù)據(jù),對(duì)應(yīng)每個(gè)主機(jī)產(chǎn)生的應(yīng)答信號(hào)CAT24WCXX將發(fā)送1B數(shù)據(jù)。當(dāng)主器件不發(fā)送應(yīng)答信號(hào)而發(fā)送停止位時(shí)結(jié)束此操作。從CAT24WCXX輸出的數(shù)據(jù)按順序由N到N + 1輸出。 1477.9.3 串行EEPROM芯片與89C52的接口與編程圖7.50是89C52與串行EEPROM CAT24WC16的接口電路,CAT24WC16的3條接口線(xiàn)可接到單片機(jī)的任何通用雙向I/O口上。 1481497.10 RS-232C和 RS-4
59、85/422通信接口單片機(jī)應(yīng)用系統(tǒng)與PC機(jī)之間的通信主要是采用異步串行通信方式,通過(guò)RS-232C或RS-485/422標(biāo)準(zhǔn)接口實(shí)現(xiàn)。1501)接口的信號(hào)內(nèi)容 實(shí)際上RS-232-C的25條引線(xiàn)中有許多是很少使用的,在計(jì)算機(jī)與終端的通信中一般只使用39條引線(xiàn)。目前COM1 和COM2使用的是9針D形連接器DB9,其引線(xiàn)的信號(hào)內(nèi)容如表7.12所示。9針串口(DB9)25針串口(DB25)針號(hào)功能說(shuō)明縮寫(xiě)針號(hào)功能說(shuō)明縮寫(xiě)1數(shù)據(jù)載波檢測(cè)DCD8數(shù)據(jù)載波檢測(cè)DCD2接收數(shù)據(jù)RXD3接收數(shù)據(jù)RXD3發(fā)送數(shù)據(jù)TXD2發(fā)送數(shù)據(jù)TXD4數(shù)據(jù)終端準(zhǔn)備DTR20數(shù)據(jù)終端準(zhǔn)備DTR5信號(hào)地GND7信號(hào)地GND6數(shù)據(jù)設(shè)備準(zhǔn)備好DSR6數(shù)據(jù)準(zhǔn)備好DSR7請(qǐng)求發(fā)送RTS4請(qǐng)求發(fā)送RTS8清除發(fā)送CTS5清除發(fā)送CTS9振鈴指示DELL22振鈴指示DELL1512)接口的電氣特性在RS-232C中任何一條信號(hào)線(xiàn)的電壓均為負(fù)邏輯關(guān)系。即邏輯1,-5V-15V;邏輯0,+5V+15V。噪聲容限為2V,即要求接收器能識(shí)別低至+3V的信號(hào)作為邏輯0,高到-3V的信號(hào)作為邏輯1。3)接口的物理結(jié)構(gòu)RS-232C接口連接器一般使用型號(hào)為DB-25的25芯插頭座,通常插頭在DCE端,插座在DTE端。一些設(shè)備與PC機(jī)連接的RS-232C接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需3條接口線(xiàn),即發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和信號(hào)地。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- TCSI 0045-2025 居家物理環(huán)境適老化改造規(guī)范
- 平?jīng)鏊原h(huán)氧地坪施工方案
- 初中記敘文的結(jié)尾寫(xiě)法
- 建筑工程勞務(wù)施工合同范本
- 食用油罐外壁防腐施工方案
- 裝配式商超貨架施工方案
- 濱州期末數(shù)學(xué)試卷
- 沖擊鉆機(jī)施工方案
- 智研咨詢(xún)發(fā)布:中國(guó)干細(xì)胞治療行業(yè)發(fā)展現(xiàn)狀、產(chǎn)業(yè)全景概覽及投資方向分析報(bào)告
- 科技創(chuàng)新在高質(zhì)量共建一帶一路中的作用
- 戴氏無(wú)線(xiàn)電遙控飛機(jī)教程
- 課件:企業(yè)經(jīng)濟(jì)統(tǒng)計(jì)學(xué)
- 巴黎盧浮宮介紹PPT模板課件
- PPT模板 上海外國(guó)語(yǔ)大學(xué)
- 蒂森克虜伯電梯曳引輪鋼絲繩安裝布置
- 共享充電寶項(xiàng)目服務(wù)合同
- 高中物理新課程標(biāo)準(zhǔn)解讀魯世波
- 小學(xué)食堂滿(mǎn)意度問(wèn)卷調(diào)查表
- 包裝SOP作業(yè)指導(dǎo)書(shū)
- 接待手冊(cè)(范本)
- 玻尿酸注射術(shù)前同意書(shū)
評(píng)論
0/150
提交評(píng)論