版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上模擬病房呼叫系統(tǒng)設(shè)計(jì)一、設(shè)計(jì)目的通過(guò)設(shè)計(jì)模擬病床呼叫的程序,更加熟練掌握單片機(jī)C語(yǔ)言指令的使用,培養(yǎng)用單片機(jī)來(lái)實(shí)現(xiàn)一些電子設(shè)備運(yùn)行的邏輯思路,為以后更好的使用單片機(jī)打下基礎(chǔ)。二、設(shè)計(jì)要求模擬一個(gè)護(hù)理站下管8個(gè)床位,哪個(gè)病人要呼叫可以按鍵,相應(yīng)蜂鳴器響,數(shù)碼管顯示:呼叫數(shù)量_床位號(hào).要求:16個(gè)數(shù)碼管,正常情況下顯示時(shí)間(時(shí)分秒),時(shí)間可通過(guò)按鍵調(diào)整。2有人呼叫則閃爍顯示數(shù)量_床位號(hào)并蜂鳴器響,按應(yīng)答鍵后繼續(xù)顯示時(shí)間。3若同時(shí)有多個(gè)病人呼叫則依次輪流顯示:數(shù)量_床位號(hào)。4、要求做出實(shí)物。三、硬件電路設(shè)計(jì)3.1 系統(tǒng)結(jié)構(gòu)框圖圖3-1系統(tǒng)框圖當(dāng)單片機(jī)一上電時(shí),數(shù)碼管顯示時(shí),
2、分,秒。并且可通過(guò)按鍵對(duì)時(shí),分的調(diào)節(jié)。調(diào)節(jié)按鍵主要運(yùn)用外部中斷程序,其中時(shí)鐘的顯示是通過(guò)TO定時(shí)器定時(shí)1s和數(shù)碼管顯示電路主要運(yùn)用動(dòng)態(tài)掃描的方式以實(shí)現(xiàn)的。此設(shè)計(jì)主要運(yùn)用鍵盤(pán)掃描電路來(lái)設(shè)計(jì)病床號(hào)。當(dāng)有按鍵按下時(shí)數(shù)碼管由當(dāng)前的顯示時(shí),分,秒,變?yōu)轱@示當(dāng)前呼叫數(shù)量和呼叫床號(hào),并且呼叫床號(hào)按呼叫順序循環(huán)顯示,程序中運(yùn)用數(shù)組作為按鍵緩沖區(qū),先存儲(chǔ)按鍵鍵值然后實(shí)現(xiàn)動(dòng)態(tài)顯示。當(dāng)按下復(fù)位鍵后重新顯示時(shí),分,秒。并且清空按鍵緩沖區(qū)。3.2 STC89C52單片機(jī)芯片 89C52共有四個(gè)八位的并行雙向口,即有32根輸入輸出口線。各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成。 圖3-2 STC89C52集成芯
3、片89C52共有四個(gè)八位的并行雙向口,即有32根輸入輸出口線。各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成。 VCC(40引腳):電源電壓VSS(20引腳):接地P0端口(P0.0P0.7,3932引腳):P0口是一個(gè)漏極開(kāi)路的8位雙向I/O口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫(xiě)入“1”時(shí),可以作為高阻抗輸入。在訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時(shí),P0口內(nèi)部上拉電阻有效。在Flash ROM編程時(shí),P0端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。P1端口(P1.0P1.7,18引腳):P1
4、口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫(xiě)入1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流。P1口特點(diǎn)是輸出鎖存器,輸出時(shí)沒(méi)有條件。輸入緩沖,輸入時(shí)有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1。 此外,P1.0和P1.1還可以作為定時(shí)器/計(jì)數(shù)器2的外部技術(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX) P3口為準(zhǔn)雙向口??梢宰止?jié)訪問(wèn),也可以位訪問(wèn)。P3.0-RXD,串行輸入口。P3.1-TXD,串行輸出口。P3
5、.2-INT0,外部中斷0的請(qǐng)求。P3.3-INT1,外部中斷1的請(qǐng)求。P3.4-T0,定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)脈沖。P3.5-T1,定時(shí)器/計(jì)數(shù)器,1外部計(jì)數(shù)脈沖。P3.6-WR,外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通。P3.7-RD,外部數(shù)據(jù)存儲(chǔ)器讀選通。RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有效,用來(lái)完成單片機(jī)單片機(jī)的復(fù)位初始化操作。ALE(30引腳):地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。3.3 鍵盤(pán)掃描電路圖3-3 按鍵掃
6、描電路病床呼叫按鈕采用了矩陣鍵盤(pán)掃描的方式。按鍵設(shè)置在行、列線交點(diǎn)上,行、列線分別連接到按鍵開(kāi)關(guān)的兩端。首先將列至零,主程序中掃描P1是否有鍵按下,如果有鍵按下執(zhí)行子程序,先將列至零,掃描行然后置位行掃描列。3.4 數(shù)碼管顯示電路圖3-4 數(shù)碼管顯示電路數(shù)碼管是通過(guò)鎖存器573輸出的。驅(qū)動(dòng)573需要上拉電阻。通過(guò)P0口控制他的片選,以及數(shù)碼管的位選,通過(guò)P2口控制數(shù)碼管的段選,主程序中通過(guò)動(dòng)態(tài)掃描以實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)輸出。原理說(shuō)明:74HC573的八個(gè)鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時(shí),Q 輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存
7、器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動(dòng)器和工作寄存器。當(dāng)輸入的數(shù)據(jù)消失時(shí),在芯片的輸出端,數(shù)據(jù)仍然保持; 這個(gè)概念在并行數(shù)據(jù)擴(kuò)展中經(jīng)常使用到。3.5 系統(tǒng)電路原理圖圖3-7 系統(tǒng)電路原理圖所用器件如下如所示:數(shù)碼管:LD3461AS-SS22鎖存器:74HC573單片機(jī):AT89S52上拉電阻:RESPACK-84、 軟件4.1 程序設(shè)計(jì) 圖4-1 程序設(shè)計(jì)流程圖 無(wú)人呼叫時(shí),運(yùn)用動(dòng)態(tài)掃描方式利用定時(shí)器T0顯示時(shí)間;有人呼叫時(shí),運(yùn)用
8、數(shù)組作為按鍵緩沖區(qū),先存儲(chǔ)按鍵值然后動(dòng)態(tài)顯示按鍵床號(hào)。4.2 子程序設(shè)計(jì)圖4-2 子程序流程圖掃描P1口前四位是否有變化,變化的位數(shù)為按鍵床號(hào)所屬的行數(shù);掃描P1口后四位是否有變化,變化的位數(shù)為按鍵床號(hào)所屬的列數(shù)。行列結(jié)合可知呼叫的病床號(hào)。五、實(shí)驗(yàn)結(jié)果圖仿真時(shí)間:?jiǎn)?dòng)后系統(tǒng)會(huì)自動(dòng)進(jìn)入顯示時(shí)間狀態(tài),此狀態(tài)下S8、S9、S10三個(gè)按鍵分別能對(duì)秒、分、時(shí)進(jìn)行加1設(shè)置,而S12、S13、S14三個(gè)按鍵分別能對(duì)毫秒、秒、分進(jìn)行減1設(shè)置。按下S11便暫停顯示。仿真時(shí)間如圖所示:圖5-1 仿真時(shí)間有呼叫時(shí)仿真:在任意時(shí)刻按下S0至S7中的一個(gè)按鍵,蜂鳴器發(fā)出響聲,進(jìn)入顯示病床號(hào)狀態(tài),左1顯示呼叫總?cè)藬?shù),右1
9、閃爍顯示病床號(hào)(若有多個(gè)人呼叫)。在按下復(fù)位鍵P37以前如有病人重復(fù)按鍵則只發(fā)出響聲,不會(huì)改變呼叫總?cè)藬?shù)的顯示。另外此狀態(tài)下S8至S15處于無(wú)效無(wú)效狀態(tài),但時(shí)間計(jì)數(shù)仍未停止。圖5-2 仿真呼叫倒計(jì)時(shí)秒表仿真:在無(wú)人呼叫時(shí)按下S15便進(jìn)入秒表時(shí)間設(shè)定狀態(tài),此狀態(tài)下S8、S9、S10三個(gè)按鍵分別能對(duì)毫秒、秒、分進(jìn)行加1設(shè)置,而S12、S13、S14三個(gè)按鍵分別能對(duì)毫秒、秒、分進(jìn)行減1設(shè)置,設(shè)置完成后再次按下S15倒計(jì)時(shí)便開(kāi)始。當(dāng)計(jì)時(shí)結(jié)束后再次按下S15,便又回到了時(shí)間顯示狀態(tài)。兩個(gè)狀態(tài)互不影響。圖5-3 倒計(jì)時(shí)秒表仿真六、源程序/*程序名稱:病床呼叫系統(tǒng)設(shè)計(jì)簡(jiǎn)要說(shuō)明:無(wú)人呼叫顯示時(shí)間,有人呼叫顯示
10、病床號(hào)及呼叫總?cè)藬?shù)。P0,P2口接數(shù)碼管顯示,P1口接4*4矩陣鍵盤(pán)(鍵號(hào)015)。各鍵功能:07號(hào)按鍵:病床號(hào)07; 810號(hào)按鍵:秒,分,時(shí)加1調(diào)整鍵 1214號(hào)按鍵:秒,分,時(shí)減1調(diào)整鍵 11號(hào)按鍵:暫停時(shí)間顯示鍵 15號(hào)按鍵:倒計(jì)時(shí)的秒表 P3.6接蜂鳴器按鍵 P3.7病床復(fù)位鍵編 寫(xiě):邢志杰時(shí) 間:2015年07月8日最后修改時(shí)間:2015年07月10日*/#include#define uchar unsigned char#define uint unsigned intvoid display();/顯示時(shí)間子函數(shù)void display1();/顯示倒計(jì)時(shí)時(shí)間子函數(shù)void
11、disp(); /顯示呼叫病床總數(shù)及當(dāng)前呼叫病床子函數(shù)void Time0() ; /定時(shí)中斷子函數(shù),用于改變時(shí)間參數(shù)void Time1() ; void rest(); / 初始化子函數(shù),用于病床復(fù)位后uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0xc6,0xa1,0x86,0x8e,0x00; /共陰極數(shù)碼管顯示段碼sbit P36=P36; /接蜂鳴器sbit P37=P37; /病床復(fù)位按鍵void DelayMS(uint x) /延時(shí)子函數(shù)uchar y;while
12、(x-)for(y=0;y120;y+);uchar d8=0,0,0,0,0,0,0,0; /用于存放呼叫病床的顯示段碼uchar g=0,j=0,log=0,CEN=0; /下面有詳細(xì)說(shuō)明void rest()/ 初始化子函數(shù),用于病床復(fù)位后g=0; /g計(jì)數(shù):要顯示的呼叫病床個(gè)數(shù)log=0; /病床呼叫標(biāo)志位,有人呼叫置1P36=0; /接蜂鳴器,高電平響CEN=0; /當(dāng)前顯示的病床號(hào)在數(shù)組d中的偏移量for(j=0;j=60)t=0; if(watch!=0) secon1=t; else secon=t; break; case 0xdb: KeyNo=9; if(watch!=0
13、) t=min1; else t=min; if(+t=60)t=0; if(watch!=0) min1=t; else min=t; break; case 0xbb: KeyNo=10; if(watch!=0) t=hour1; else t=hour; if(+t=60)t=0; if(watch!=0) hour1=t; else hour=t; break; case 0x7b: KeyNo=11;TR0=TR0;break; /暫停計(jì)時(shí) P1=0xf7;temp=P1;if(temp!=0xf7&g=0) switch(temp) case 0xe7: KeyNo=12; if
14、(watch!=0) t=secon1; else t=secon; if(t-=0)t=59; if(watch!=0) secon1=t; else secon=t; break; case 0xd7: KeyNo=13; if(watch!=0) t=min1; else t=min; if(t-=0)t=59; if(watch!=0) min1=t; else min=t; break; case 0xb7: KeyNo=14; if(watch!=0) t=hour1; else t=hour; if(t-=0)t=59; if(watch!=0) hour1=t; else ho
15、ur=t; break; case 0x77: KeyNo=15;watch+;/倒計(jì)時(shí)watch=1設(shè)定倒計(jì)時(shí)時(shí)間, if(watch=2) TR1=1; /watch=2開(kāi)始計(jì)時(shí) if(watch=3) watch=0; TR1=0; break; /等待按鍵松開(kāi) P1=0X0f;temp=P1;while(temp!=0x0f) P1=0X0f;temp=P1;if(log=1)/當(dāng)前按鍵為病床按鍵disp(); /顯示病床號(hào)及呼叫總數(shù)else if(watch=0) /當(dāng)前按鍵為時(shí)間調(diào)整按鍵且無(wú)人呼叫display(); /顯示時(shí)間else display1(); /當(dāng)前按鍵為倒計(jì)時(shí)時(shí)
16、間調(diào)整按鍵且無(wú)人呼叫void display() /顯示時(shí)間函數(shù) P0=0xfe;P2=DSY_CODEhour/10;DelayMS(1);P0=0xfd;P2=DSY_CODEhour%10;DelayMS(1);P0=0xfb;P2=DSY_CODEmin/10;DelayMS(1);P0=0xf7;P2=DSY_CODEmin%10;DelayMS(1);P0=0xef;P2=DSY_CODEsecon/10;DelayMS(1);P0=0xdf;P2=DSY_CODEsecon%10;DelayMS(1); void display1() /倒計(jì)時(shí)顯示時(shí)間函數(shù)P0=0xfe;P2=D
17、SY_CODEhour1/10;DelayMS(1);P0=0xfd;P2=DSY_CODEhour1%10;DelayMS(1);P0=0xfb;P2=DSY_CODEmin1/10;DelayMS(1);P0=0xf7;P2=DSY_CODEmin1%10;DelayMS(1);P0=0xef;P2=DSY_CODEsecon1/10;DelayMS(1);P0=0xdf;P2=DSY_CODEsecon1%10;DelayMS(1); void disp() /顯示呼叫病床總數(shù)及當(dāng)前呼叫病床DelayMS(1);P0=0xfe;P2=DSY_CODEg; /顯示當(dāng)前呼叫病床總數(shù)Delay
18、MS(1);P0=0xfd;P2=dCEN;/顯示當(dāng)前床號(hào),CEN的值在定時(shí)中斷中發(fā)生發(fā)生改變,實(shí)現(xiàn)一秒的閃爍顯示,精華之處DelayMS(1);void main() /主程序TMOD=0x00; /定時(shí)器T0方式0TH0=(8192-4000)/32; /計(jì)時(shí)250*4ms=1sTL0=(8192-4000)%32;TH1=(8192-5000)/32; /計(jì)時(shí)250*4ms=1sTL1=(8192-5000)%32;IE=0x8a; /開(kāi)T0,T1中斷PX1=1;TR1=0;/關(guān)T1TR0=1; /初始化完畢while(1) /主程序在此處循環(huán)if(g!=0) /有人呼叫時(shí),顯示病床號(hào) disp();else if(watch=0)/無(wú)人呼叫時(shí),顯示時(shí)、分、秒display();else /無(wú)人呼叫顯示倒計(jì)時(shí)display1(); /判斷是否有病床呼叫P1=0xf0;if(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人股份無(wú)償轉(zhuǎn)讓與公司治理協(xié)議4篇
- 二零二五年度民宿客棧資產(chǎn)租賃管理合同樣本4篇
- 2025年裝修工程環(huán)境保護(hù)責(zé)任書(shū)2篇
- 通訊錄系統(tǒng)c課程設(shè)計(jì)
- 2025年智能穿戴設(shè)備銷(xiāo)售與分銷(xiāo)合同范本
- 魔t的設(shè)計(jì)課程設(shè)計(jì)
- 2025年鐵路貨物運(yùn)輸操作規(guī)范合同6篇
- 二零二五年度面條產(chǎn)品綠色包裝研發(fā)與應(yīng)用合同4篇
- 二零二五年美容院美容院美容院?jiǎn)T工績(jī)效考核及薪酬合同4篇
- 2025年度個(gè)人房屋裝修貸款擔(dān)保合同范本12篇
- 企業(yè)內(nèi)部客供物料管理辦法
- 婦科臨床葡萄胎課件
- 藥學(xué)技能競(jìng)賽標(biāo)準(zhǔn)答案與評(píng)分細(xì)則處方
- 2025屆高考英語(yǔ) 716個(gè)閱讀理解高頻詞清單
- 報(bào)建協(xié)議書(shū)模板
- 汽車(chē)配件購(gòu)銷(xiāo)合同范文
- 貴州省2024年中考英語(yǔ)真題(含答案)
- 施工項(xiàng)目平移合同范本
- (高清版)JTGT 3360-01-2018 公路橋梁抗風(fēng)設(shè)計(jì)規(guī)范
- 胰島素注射的護(hù)理
- 云南省普通高中學(xué)生綜合素質(zhì)評(píng)價(jià)-基本素質(zhì)評(píng)價(jià)表
評(píng)論
0/150
提交評(píng)論