|
1. 設(shè)計(jì)內(nèi)容
在 Proteus8.6 仿真平臺上,使用 8位七段數(shù)碼管,設(shè)計(jì)一個(gè)電子時(shí)鐘,可以顯示小時(shí),分鐘,秒。
2. 設(shè)計(jì)思路
電子時(shí)鐘主要由譯碼電路、顯示模塊和時(shí)鐘控制模塊三大部分組成。以 8086微處理器作 CPU,用 8253 做定時(shí)器, 接中斷控制器 8259的 IR0,向 CPU申請中斷,并用 8259A的中斷服務(wù)程序完成秒、分、時(shí)的計(jì)算。其中:
(1)顯示模塊用并行接口 8255的 A口驅(qū)動 8位七段數(shù)碼管(7SEG-MPX8-CC-BLUE)的字段,B口驅(qū)動 8位七段數(shù)碼管(LED)的位控端,從左側(cè)開始各兩位分別顯示:時(shí)、分、秒,中間用“-”分隔,即顯示形式為:小時(shí)-分鐘-秒;采用動態(tài)掃描工作方式。
(2) 時(shí)鐘控制模塊用定時(shí)計(jì)數(shù)器 8253 提供定時(shí)中斷,使用計(jì)數(shù)器 0 和計(jì)數(shù)器 1,間隔 1s 的自動產(chǎn)生一次中斷,中斷控制器 8259提供中斷服務(wù),在中斷服務(wù)程序中并完成時(shí)間信息的處理。
(3)使用 4-16譯碼器(74LS154)完成接口芯片地址譯碼。
2. 功能實(shí)現(xiàn)
系統(tǒng)使用匯編語言實(shí)現(xiàn),為了簡化程序設(shè)計(jì)過程,設(shè)計(jì)了幾個(gè)宏,其中 OUT_PORT用于端口輸出,SET_INT 用于中斷向量設(shè)置;INIT_8259 用于中斷控制器 8259的初始化,INIT_8253 用于定時(shí)計(jì)數(shù)器 8253 的初始化,詳見 2.3 的源代碼。系統(tǒng)程序除了初始化之外,還包括顯示子程序DISPLAY,延時(shí)子程序 DELAY和中斷服務(wù)程序 INT_0。
2.1 系統(tǒng)程序設(shè)計(jì)
系統(tǒng)首先完成各接口芯片的初始化,然后等待中斷響應(yīng)。
首先完成中斷向量設(shè)置,為了方便使用,用宏實(shí)現(xiàn),宏調(diào)用如下:
SET_INT 80H,INT_0
其中 INT_0 為中斷服務(wù)程序,因接入 8259 的 IR0引腳,其中斷向量設(shè)置為 80H。而 8259 因?yàn)閱纹褂,接下來只需設(shè)置 ICW1,ICW2 和 ICW4,采用邊沿觸發(fā),單片,需要 ICW4,采用自動結(jié)束 方 式 , ICW1=13H,ICW2=80H , ICW4=03H, 同 樣 , 采 用 宏 調(diào) 用 完 成 。 即 : INIT_8259IO2,13H,80H,03H 。
完成中斷初始化之后,完成 8255 初始化,使用 A 口和B 口,方式 0,輸出,故命令內(nèi)容為:80H,向其控制口寫入即可,控制口地址為 IO3+6。
8253 的初始化要設(shè)置計(jì)數(shù)器 0 和計(jì)數(shù)器 1,在 OUT1 自動發(fā)出周期為 1S 的方波,接 8259 的IR0,即每隔 1s產(chǎn)生一次中斷。
完整的pdf格式文檔51黑下載地址:
微機(jī)原理與接口技術(shù)-大作業(yè)報(bào)告(樣例)(2).pdf
(434.38 KB, 下載次數(shù): 491)
2019-6-11 11:22 上傳
點(diǎn)擊文件名下載附件
仿真圖:
L_8086_TIMER的Proteus仿真.7z
(30.87 KB, 下載次數(shù): 583)
2019-6-12 01:26 上傳
點(diǎn)擊文件名下載附件
|
|