80C196單片機(jī)多功能教學(xué)實(shí)驗(yàn)板的開發(fā)與研制
1.2 顯示器與鍵盤
可編程并行I/O接口8155的PB7~PB0口用來提供六位共陰極LED5~LED0顯示器的字形段碼,PC5~PC0用來控制顯示器的位選擇。同時 PC5~PC0也兼作鍵盤的列線,提供列掃描信號;PA1和PA0用作鍵盤的行線,通過讀行線的狀態(tài)以確定是否有鍵按下。
1.3 D/A與A/D轉(zhuǎn)換
80C196的PWM端經(jīng)過緩沖和濾波之后通過LM324連接到插座S1,可用示波器觀察波形。80C196的四路模擬輸入端ACH7~ACH4與插座 S3相連,模擬量由此引入,采用查詢方式進(jìn)行A/D轉(zhuǎn)換,當(dāng)查詢到A/D轉(zhuǎn)換結(jié)束后,讀取A/D轉(zhuǎn)換結(jié)果寄存器的值。片內(nèi)A/D的模擬量輸入均可由電位器調(diào)節(jié)產(chǎn)生。插座S4與80C196的EXTINT端相連,作為外部中斷輸入,可對按鈕開關(guān)的按動次數(shù)進(jìn)行計(jì)數(shù)。
1.4 HSI與HSO
80C196的高速輸出引腳HSO3~HSO0通過同相驅(qū)動器74LS14輸出到插座S1,這樣就可以用示波器觀察HSO3~HSO0四個引腳的輸出波形。插座S2通過同相驅(qū)動器74LS14連接到80C196的高速輸入引腳HSI3~HSI0,被測信號可由此輸入。
將80C196的HSO設(shè)定為軟件定時器狀態(tài),軟件定時100ms中斷一次,實(shí)現(xiàn)每隔1秒鐘使8155的PA0~PA7循環(huán)輸出高電平送到發(fā)光二極管上顯示出來。
1.5 其它
將微型打印機(jī)與80C196相連,打印出指定的字型和文字。
串行口RS232C可用來進(jìn)行雙向串行通訊實(shí)驗(yàn)。80C196的串行接收端RXD和串行發(fā)送端TXD經(jīng)過TC232C的兩個緩沖器完成邏輯電平的轉(zhuǎn)換并由 RS232C輸出。TC232C可以在±5V供電下提供±12V的輸出電壓,能夠滿足RS232C接口要求的邏輯電平。并行輸入輸出接口,可用來連接打印機(jī)或其它I/O設(shè)備,其數(shù)據(jù)引腳來自AD7~AD0,控制線和狀態(tài)線來自 、 和AD15口。
2 多功能實(shí)驗(yàn)板監(jiān)控程序簡介
80C196多功能實(shí)驗(yàn)板的監(jiān)控程序框圖如圖2所示。主程序從復(fù)位后的入口地址2080H開始,置堆棧指針為00C0H,若片內(nèi)RAM不夠用,堆棧也可設(shè)在片外RAM。8155、串行口和HSO初始化分別由子程序INI-8155、INI-232和INI-HSO完成。
起始子程序?qū)⑻崾痉畔懭腼@示緩沖區(qū),然后調(diào)用顯示子程序DISPLAY在LED5上顯示提示符“—”。出現(xiàn)提示符表示已完成初始化,并在監(jiān)控程序控制下,等待接收鍵盤信息。
鍵盤掃描子程序KEY用來快速判斷有無按鍵,若有鍵按下,則調(diào)用子程序KEYIN讀入鍵值,為防止重鍵,讀入鍵值后,再次調(diào)用KEY等鍵釋放。接著對鍵值作出判斷:若鍵值16,則是數(shù)字鍵,調(diào)用數(shù)字鍵處理程序?qū)㈡I值存入顯示緩沖區(qū);若鍵值≥16,則是命令鍵,調(diào)用相應(yīng)的命令鍵處理程序。
多功能實(shí)驗(yàn)板上共有6個命令鍵:
(1)AD鍵按下后將在LED5~LED4上顯示提示信息“AD”,并在LED2~LED0上顯示80C196的模擬通道ACH4的采樣結(jié)果,且每隔0.5秒刷新一次。
(2)DA鍵按下后將在LED5~LED4上顯示提示信息“DA”,并在與插座S1相連的示波器上顯示三角波。
(3)PRINT鍵按下后將執(zhí)行打印機(jī)演示程序。
(4)SI0鍵按下后將執(zhí)行串行異步通訊演示程序,在LED5~LED3上顯示提示信息“SIO”,LED1~LED0上顯示待發(fā)送或接收信息的ASCⅡ碼。
(5)SHIFT為上下檔標(biāo)志切換鍵,使該實(shí)驗(yàn)板的12個鍵能作為22個鍵使用。
(6)EXECUTE是執(zhí)行鍵,輸入4位16進(jìn)制數(shù)后再按下EXECUTE鍵,則轉(zhuǎn)向以該4位16進(jìn)制數(shù)為首址的程序段執(zhí)行。
評論