每個(gè)病房有一個(gè)按鈕,當(dāng)按下一個(gè)按鈕時(shí),數(shù)碼管顯示病床號(hào),指示燈閃爍,報(bào)警電路報(bào)警。
當(dāng)護(hù)士按復(fù)位鍵應(yīng)答,數(shù)碼顯示管顯示消失,取消當(dāng)前呼叫。
未按復(fù)位鍵時(shí),再按下另一按鈕,數(shù)碼管顯示相應(yīng)病房號(hào),指示燈閃爍,報(bào)警電路報(bào)警。
單片機(jī)復(fù)位時(shí),系統(tǒng)清零。
2.1 系統(tǒng)總體方案及框圖
(詳見附件)
單片機(jī)必須在時(shí)鐘的控制下才能工作,在單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。
此設(shè)計(jì)中的時(shí)鐘電路選用內(nèi)部時(shí)鐘方式的石英晶體振蕩器,它的輸入端為芯片引腳XTAL1,在加電大約延遲10ms后振蕩器起振;輸出端為XTAL2,產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào)。這兩個(gè)引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1、C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1、C2的典型值為30PF。
單片機(jī)執(zhí)行的指令均是在CPU控制器的時(shí)序控制電路的控制下進(jìn)行的,各種時(shí)序均與時(shí)鐘周期有關(guān)。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用f表示,是單片機(jī)時(shí)鐘控制信號(hào)的基本時(shí)間單位。如時(shí)鐘頻率為6MHz,即f=6MHz,則時(shí)鐘周期為1/6μs。

AT89C51的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的,復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式本設(shè)計(jì)采用按鈕手動(dòng)電平復(fù)位,該設(shè)計(jì)是通過(guò)RST端經(jīng)電阻與電源Vcc接通來(lái)實(shí)現(xiàn)的,當(dāng)時(shí)鐘頻率選用6MHz時(shí),C的典型取值為10uf,R的取值為2KΩ,具體電路圖如圖2-3所示。

鍵盤具有向單片機(jī)輸入數(shù)據(jù),命令等功能,是人與單片機(jī)對(duì)話的主要手段。在單片機(jī)中應(yīng)用最多的是獨(dú)立式鍵盤和矩陣式鍵盤。本設(shè)計(jì)采用矩陣式鍵盤,也稱為行列式鍵盤,用于按鍵數(shù)目較多的場(chǎng)合。與獨(dú)立式鍵盤相比,要節(jié)省較多的I/O 口。它由行線和列線組成,一組為行線,一組為列線,按鍵位于行列的交叉點(diǎn)上。
矩陣鍵盤中無(wú)按鍵按下時(shí),行線位于高電平狀態(tài);當(dāng)有鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平如果為低,則行線電平為低;列線電平如果為高,則行線的電平也為高,這一點(diǎn)是識(shí)別矩陣式鍵盤按鍵是否按下的關(guān)鍵所在。由于矩陣式鍵盤中行、列線為多鍵共用,各按鍵彼此將相互影響,所以必須將行、列信號(hào)配合,才能確定閉合鍵的位置。本設(shè)計(jì)中采用4*4矩陣鍵盤電路設(shè)計(jì),其電路圖如下圖所示:

為了識(shí)別鍵盤上的閉合鍵,通常采用兩種方法,一種為掃描法,另一種為線發(fā)轉(zhuǎn)法。
1 掃描法原理:識(shí)別鍵盤有無(wú)鍵按下,可分兩部進(jìn)行:第1步,識(shí)別鍵盤有無(wú)鍵按下;第2步,如有鍵按下,識(shí)別出具體的鍵位。下面以4*4行、列結(jié)構(gòu)中鍵3被按下為例說(shuō)明掃描法識(shí)別此鍵的過(guò)程。
第1步,識(shí)別鍵盤有無(wú)鍵按下。首先把所有列線均置為0電平,然后檢查各行線電平是否為高電平,如果不全為高電平,說(shuō)明有鍵按下,否則說(shuō)明無(wú)鍵被按下。例如,當(dāng)鍵3按下時(shí),第1行線電平為低電平,但還不能確定是鍵3被按下,
第2步,識(shí)別那個(gè)鍵被按下。采用掃描法,在某一時(shí)刻只讓1條列線處于低電平,其余所有列線處于高電平。當(dāng)?shù)?列為低電平,其余各列為高電平時(shí),因?yàn)槭擎I3被按下,所以第1列的行線仍處于高電平;而當(dāng)?shù)?列為低電平,其余各列為高電平時(shí),同樣也會(huì)發(fā)現(xiàn)第1行的行線仍處于高電平狀態(tài);直到讓第4列為低電平,其余各列為高電平時(shí),此時(shí)第1行的行線電平變?yōu)榈碗娖剑瑩?jù)此,可判斷第1行與第4列交叉點(diǎn)處的按鍵,即鍵3被按下。
去除鍵抖動(dòng):用軟件延時(shí)來(lái)消除按鍵抖動(dòng),基本思想是:在檢測(cè)到有鍵按下時(shí),該鍵所對(duì)應(yīng)的行線為低電平,執(zhí)行一段延時(shí)10ms的子程序后,確認(rèn)該行線電平是否仍為低電平,如果仍為低電平,則確認(rèn)該行確實(shí)有鍵按下。
線反轉(zhuǎn)法原理:線反轉(zhuǎn)法需3步,即可確定按鍵所在的行和列,從而識(shí)別出所按的鍵。
第1步:執(zhí)行程序使行線均為低電平,此時(shí)讀取各列線的狀態(tài)即可知道是否有鍵按下。當(dāng)無(wú)鍵按下時(shí),各行線與各列線相互斷開,各列線仍保持為高電平;當(dāng)有鍵按下時(shí),則相應(yīng)的行線與列線通過(guò)該按鍵相連,該列線就變?yōu)榈碗娖剑藭r(shí)讀取列線的狀態(tài),得到列碼。
第2步,執(zhí)行程序使列線均為低電平,當(dāng)有鍵按下時(shí),行線中有一條為低電平,其余行線為高電平,讀取行線的狀態(tài),得到行碼。
第3步,將第一步得到的列碼和第二步得到的行碼拼合成被按鍵的位置碼,即為所得(因?yàn)樾芯和列線各有一條為低電平,其余為高電平,所以位置碼低四位和高四位分別只有一位低電平,其余為高電平)。
也就是說(shuō),當(dāng)某個(gè)鍵按下時(shí),該鍵兩端所對(duì)應(yīng)的行線和列線為低電平,其余行線和列線為高電平。
全部矩陣鍵盤的位置碼如下表2-1所示:
鍵值 | 位置碼 | 鍵值 | 位置碼 | 鍵值 | 位置碼 | 鍵值 | 位置碼 |
1 | 0x77 | 5 | 0x7b | 9 | 0x7d | 13 | 0x7e |
2 | 0xb7 | 6 | 0xbb | 10 | 0xbd | 14 | 0xbe |
3 | 0xd7 | 7 | 0xdb | 11 | 0xdd | 15 | 0xde |
4 | 0xe7 | 8 | 0xeb | 12 | 0xed | 16 | 0xee |
本設(shè)計(jì)中采用掃描法。其綜合思想是:先把某一列置為低電平,其余各列置為高電平,檢查各行線電平的變化,如果某行線電平為低電平,則可確定此行此列交叉點(diǎn)處的按鍵被按下。
LED發(fā)光器件一般常用的有兩類:數(shù)碼管和點(diǎn)陣。7段數(shù)碼管屬于LED發(fā)光器件的一種。
為適用于不同的驅(qū)動(dòng)電路,有共陰極共陽(yáng)極兩種,為了使LED數(shù)碼管顯示不同的符號(hào)和數(shù)字,要把某些段的發(fā)光二極管點(diǎn)亮,這樣就要為L(zhǎng)ED數(shù)碼管提供代碼,因?yàn)檫@些代碼可使LED相應(yīng)的段發(fā)光,從而顯示不同字形,因此改代碼段也稱為段碼或字型碼。

圖2-5 LED顯示器的兩種結(jié)構(gòu)
LED數(shù)碼管共計(jì)8段。因此提供給LED數(shù)碼管的段碼正好是一個(gè)字節(jié)。在使用時(shí),一般習(xí)慣上還是以a段對(duì)應(yīng)段碼字節(jié)的最低位。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系見表2-2
表 2-2 段碼與字節(jié)中各位對(duì)應(yīng)關(guān)系
代碼位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
顯示段 | dp | g | f | e | d | c | b | a |
LED數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。
靜態(tài)顯示:指無(wú)論多少位LED數(shù)碼管,同時(shí)處于顯示狀態(tài),靜態(tài)顯示方式的顯示無(wú)閃爍,亮度都較高,軟件控制比較容易。
動(dòng)態(tài)顯示:指無(wú)論在任何時(shí)刻只有一個(gè)LED數(shù)碼管處于顯示狀態(tài),即單片機(jī)采用“掃描方式”控制各個(gè)數(shù)碼管輪流顯示。顯示亮度不如靜態(tài)顯示的亮度高,如果掃描速率較低,會(huì)出現(xiàn)閃爍現(xiàn)象。
本設(shè)計(jì)中采用動(dòng)態(tài)顯示,利用74LS373和顯示器組成顯示系統(tǒng)。LED不同位顯示的時(shí)間間隔(掃描間隔)應(yīng)根據(jù)實(shí)際情況而定。發(fā)光二極管從導(dǎo)通發(fā)光有一定的延時(shí),導(dǎo)通時(shí)間太短,發(fā)光太弱,人眼無(wú)法看清;時(shí)間太長(zhǎng),要受限于臨界顯爍頻率,而且此時(shí)間越長(zhǎng),占用單片機(jī)的時(shí)間也越多。因此動(dòng)態(tài)顯示的實(shí)質(zhì)是以犧牲單片機(jī)時(shí)間來(lái)?yè)Q取I/O端口的減少。
用AT89C51自身接口實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)顯示和鍵盤掃描,使用AT89C51單片微機(jī)外加地址鎖存用的2塊8三態(tài)鎖存器74LS373。
74LS373是常用的地址鎖存芯片,它實(shí)質(zhì)是一個(gè)帶三態(tài)緩沖輸出的8D觸發(fā)器。其引腳圖如下圖2-6所示:
其功能介紹如下:
1腳是輸出使能(OE),是低電平有效,當(dāng)1腳是高電平時(shí),不管輸入3、4、7、8、13、14、17、18如何,也不管11腳(鎖存控制端,G)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài));
當(dāng)1腳是低電平時(shí),只要11腳(鎖存控制端,G)上出現(xiàn)一個(gè)下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈現(xiàn)輸入腳3、4、7、8、13、14、17、18的狀態(tài).
鎖存端LE 由高變低時(shí),輸出端8 位信息被鎖存,直到LE 端再次有效。 當(dāng)三態(tài)門使能信號(hào)OE為低電平時(shí),三態(tài)門導(dǎo)通,允許Q0~Q7輸出,OE為高電平時(shí),輸出懸空。
1D~8D為8個(gè)輸入端。1Q~8Q為8個(gè)輸出端。其在電路圖中的連接如圖2-6所示

用三極管加限流電阻作為控制開關(guān),用單片機(jī)P2.3口控制,利用三極管當(dāng)做開關(guān)電路可以保護(hù)單片機(jī),還可以起到放大電流的作用,當(dāng)三極管基極為低電平時(shí),發(fā)射極截止,為高電平時(shí),發(fā)射極導(dǎo)通。顯示器顯示床號(hào)同時(shí)發(fā)出報(bào)警聲。通過(guò)編程令單片機(jī)執(zhí)行中斷程序。
其電路圖2-8如:

2.7 系統(tǒng)總體硬件電路圖
本系統(tǒng)利用AT89C51作為呼叫系統(tǒng)的核心,外圍電路有:晶振電路、系統(tǒng)復(fù)位電路、響鈴報(bào)警電路和LED數(shù)碼顯示電路以及其他各應(yīng)用電路。系統(tǒng)總體硬件如圖2-9所示。

第3章 單片機(jī)AT89C51簡(jiǎn)介
AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU(Cenctral Processing Unit)和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C系列單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。其管腳圖如3-1所示:

部分引腳說(shuō)明:
XTAL2(18 腳):接外部晶體和微調(diào)電容的一端;在8051 片內(nèi)它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖。
要檢查8051/8031 的振蕩電路是否正常工作,可用示波器查看XTAL2 端是否有脈沖信號(hào)輸出。
XTAL1(19 腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。
控制信號(hào)引腳RST,ALE,PSEN 和EA:
RST/VPD(9 腳):RST 是復(fù)位信號(hào)輸入端,高電平有效。
ALE/PROG(30 腳):地址鎖存允許信號(hào)端。當(dāng)8051 上電正常工作后,ALE 引腳不斷向外輸出正脈沖信號(hào),此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問(wèn)片外存儲(chǔ)器時(shí),ALE 輸出信號(hào)作為鎖存低8 位地址的控制信號(hào)。
ALE端的負(fù)載驅(qū)動(dòng)能力為8 個(gè)LS 型TTL(低功耗甚高速TTL)負(fù)載。
此引腳的第二功能PROG 在對(duì)片內(nèi)帶有4KB EPROM 的8751 編程寫入(固化程序)時(shí),作為編程脈沖輸入端。
PSEN(29 腳):程序存儲(chǔ)允許輸出信號(hào)端。在訪問(wèn)片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引肢接EPROM 的OE 端(見后面幾章任何一個(gè)小系統(tǒng)硬件圖)。PSEN 端有效,即允許讀出EPROM/ROM 中的指令碼。PSEN 端同樣可驅(qū)動(dòng)8 個(gè)LS 型TTL 負(fù)載。要檢查一個(gè)8051/8031 小系統(tǒng)上電后CPU能否正常到EPROM/ROM 中讀取指令碼,也可用示波器看PSEN 端有無(wú)脈沖輸出。如有則說(shuō)明基本上工作正常。
EA/Vpp(31 腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。
P0口(P0.0~P0.7,39~32 腳):P0口是一個(gè)漏極開路的8 位準(zhǔn)雙向I/O口。作為漏極開路的輸出端口,每位能驅(qū)動(dòng)8 個(gè)LS 型TTL 負(fù)載。當(dāng)P0 口作為輸入口使用時(shí),應(yīng)先向口鎖存器(地址80H)寫入全1,此時(shí)P0 口的全部引腳浮空,可作為高阻抗輸入。作輸入口使用時(shí)要先寫1,這就是準(zhǔn)雙向口的含義。在CPU 訪問(wèn)片外存儲(chǔ)器時(shí),P0口分時(shí)提供低8 位地址和8 位數(shù)據(jù)的復(fù)用總線。在此期間,P0口內(nèi)部上拉電阻有效。
P1口(P1.0~P1.7,1~8 腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P1口每位能驅(qū)動(dòng)4 個(gè)LS 型TTL 負(fù)載。在P1口作為輸入口使用時(shí),應(yīng)先向P1口鎖存地址(90H)寫入全1,此時(shí)P1口引腳由內(nèi)部上拉電阻拉成高電平。
P2口(P2.0~P2.7,21~28 腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P口每位能驅(qū)動(dòng)4個(gè)LS 型TTL 負(fù)載。在訪問(wèn)片外EPROM/RAM 時(shí),它輸出高8 位地址。
P3口(P3.0~P3.7,10~17 腳):P3口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P3口每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口與其它I/O 端口有很大的區(qū)別,它的每個(gè)引腳都有第二功能,如下:P3.0:(RXD)串行數(shù)據(jù)接收。
P3.1:(RXD)串行數(shù)據(jù)發(fā)送。
P3.2:(INT0#)外部中斷0輸入。
P3.3:(INT1#)外部中斷1輸入。
P3.4:(T0)定時(shí)/計(jì)數(shù)器0的外部計(jì)數(shù)輸入。
P3.5:(T1)定時(shí)/計(jì)數(shù)器1的外部計(jì)數(shù)輸入。
P3.6:(WR#)外部數(shù)據(jù)存儲(chǔ)器寫選通。
P3.7:(RD#)外部數(shù)據(jù)存儲(chǔ)器讀選通。
3.2 AT89C51的指令系統(tǒng)
AT89C51的指令系統(tǒng)是一種簡(jiǎn)明、易掌握、效率較高的指令系統(tǒng),它共有7種尋址方式,111條指令,按其功能可分為五大類:
指令的表示方法稱為指令格式。一條指令通常有兩部分組成:操作碼和操作數(shù)。大多數(shù)指令在執(zhí)行時(shí)都需要使用操作數(shù)。尋址方式就是在指令中說(shuō)明操作數(shù)所在地址的方法,一般來(lái)說(shuō),尋址方式越多,單片機(jī)的功能就越強(qiáng),靈活性則越大,指令系統(tǒng)則就越復(fù)雜,AT89C51單片機(jī)的指令系統(tǒng)有7中尋址方式。分別是:寄存器尋址方式、直接尋址方式、寄存器間接尋址方式、立即數(shù)尋址方式、基址寄存器加變址寄存器間接尋址方式、相對(duì)尋址方式和位尋址方式。
在單片機(jī)應(yīng)用系統(tǒng)中,常常會(huì)有定時(shí)控制需求,如定時(shí)輸出、定時(shí)檢測(cè)、定時(shí)掃描等;也經(jīng)常要對(duì)外部事件進(jìn)行計(jì)數(shù)。80C51單片機(jī)內(nèi)集成有兩個(gè)可編程的定時(shí)/計(jì)數(shù)器:T0和T1,它們既可以工作于定時(shí)模式,也可以工作于外部事件計(jì)數(shù)模式,此外,T1還可以作為串行口的波特率發(fā)生器。
第4章 系統(tǒng)軟件設(shè)計(jì)
4.1 單片機(jī)C語(yǔ)言程序設(shè)計(jì)步驟
程序設(shè)計(jì)步驟包括繪制程序流程圖,編寫程序,運(yùn)行調(diào)試,仿真模擬等步驟。
病房呼叫系統(tǒng)軟件設(shè)計(jì)均采用模塊化設(shè)計(jì),整個(gè)程序主要包括主程序、鍵盤掃描程序、顯示程序。所有程序均采用單片機(jī)C語(yǔ)言編寫。病房呼叫系統(tǒng)的軟件設(shè)計(jì)思路說(shuō)明如下:主程序的作用為程序初始化,顯示病房編號(hào)(病房號(hào)的獲得在鍵盤掃描程序中實(shí)現(xiàn))。通過(guò)不斷的掃描,檢查是否有病人呼叫。顯示程序通過(guò)掃描16個(gè)病床的判斷標(biāo)志截來(lái)決定是否需要顯示床號(hào)。鍵盤掃描程序是重要組成部分,它的功能是判困是否有按鍵并進(jìn)一步確認(rèn)是哪個(gè)按鍵按下或釋放,同時(shí)修改相應(yīng)的標(biāo)志位,以運(yùn)用到顯示程序中。
4.2 系統(tǒng)主程序流程圖
主程序流程圖給出了系統(tǒng)工作的基本過(guò)程,,描述了信號(hào)的基本流向,起到了一個(gè)向?qū)У淖饔谩?/font>

圖4-1主程序流程圖
主程序描述:首先對(duì)各存儲(chǔ)單元初始化,設(shè)定定時(shí)初值,清零鍵,然后繼續(xù)掃描鍵盤,
如掃描到鍵盤有鍵按下,則進(jìn)而判斷是嘟個(gè)床位按下,進(jìn)而顯示病床號(hào)時(shí),要判斷標(biāo)志位, 若已經(jīng)按下,則不響應(yīng),否則顯示病床號(hào)。最后,返回掃描鍵值程序,準(zhǔn)備下一次的判斷。
4.3 顯示程序流程圖
顯示程序主要是來(lái)判斷是否需要顯示,以及如何去顯示,是十分重要的程序之一。設(shè)計(jì)流程圖如4-2圖所示。

圖 4-2 顯示程序流程圖
顯示程序描述:設(shè)定床號(hào)標(biāo)志為,令n從1開始,判斷床號(hào)是否為0,若不為0,表示有病房呼叫,則顯示床號(hào),繼續(xù)掃描鍵值判斷是否有別的病房呼叫,若n為0,表示無(wú)呼叫,則繼續(xù)掃描下一病床號(hào)。
4.4 鍵盤掃描流程圖
鍵盤電路設(shè)計(jì)為4*4矩陣式,在程序中可以先判斷按鍵編碼,然后在顯示子程序中通過(guò)程序進(jìn)行譯碼,再顯示。設(shè)計(jì)流程圖如圖4-3所示:
5.1 軟件的仿真
啟動(dòng)電源,顯示屏無(wú)顯示,在按下2號(hào)鍵時(shí),界面部分顯示02,指示燈閃爍,聲音報(bào)警;未按按復(fù)位鍵,再按下6號(hào)鍵時(shí),界面顯示06,指示燈閃爍,聲音報(bào)警。依次按下各按鍵,相應(yīng)病房號(hào)會(huì)相應(yīng)顯示。該設(shè)計(jì)反映了控制電路的可行性。綜上所述,本系統(tǒng)實(shí)現(xiàn)了主要功能:顯示病床號(hào),指示燈閃爍,聲音報(bào)警提醒值班人員。通過(guò)Proteus軟件仿真,能達(dá)到上述結(jié)論,滿足課項(xiàng)目目的,達(dá)到要求。采用Proteus進(jìn)行圖形繪制仿真,Keil進(jìn)行編程,然后放入單片機(jī)中,實(shí)現(xiàn)應(yīng)有的功能。


5.2 硬件調(diào)試分析
由于時(shí)間有限,沒(méi)有做出電路板,只在單片機(jī)學(xué)習(xí)板上做了硬件仿真,以下是關(guān)于硬件仿真圖:



5.3 調(diào)試問(wèn)題分析與總結(jié)
本設(shè)計(jì)采用七段數(shù)碼管顯示功能,最初在軟件上進(jìn)行仿真時(shí)按鍵個(gè)位數(shù)字是1和4時(shí),數(shù)碼管不能正常顯示,將程序中數(shù)碼管顯示位數(shù)處進(jìn)行了相應(yīng)修改,能正常顯示。
按下一個(gè)按鍵時(shí),數(shù)碼管顯示按鍵號(hào),有聲音報(bào)警,再按下另一個(gè)按鍵,卻不能正常顯示,必須在按下復(fù)位鍵的前提下,按下另一個(gè)按鍵才能重新顯示。之后對(duì)程序進(jìn)行了相應(yīng)的修改,將while(key!=0)改成if(key!=0)后,數(shù)碼管就能在按下按鍵后顯示相應(yīng)按鍵號(hào),指示燈閃爍,聲音報(bào)警。
由于軟件仿真的延時(shí)問(wèn)題,數(shù)碼管顯示相應(yīng)病床號(hào)時(shí)會(huì)不穩(wěn)定。

| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |