版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、百度文庫(kù)讓每個(gè)人平等地提升自我基于89s51單片機(jī)的無(wú)線病房呼喚系統(tǒng)軟件設(shè)計(jì)第1章單片機(jī)與AT89s51芯片概述1.1 單片機(jī)簡(jiǎn)介單片機(jī)全稱為單片微型運(yùn)算機(jī)(SingleChipMicrocomputer),又稱為微控制器(MicrocontrollerUnit)或嵌入式控制器(EmbeddedController)o它是將運(yùn)算機(jī)的大體部件微型化并集成到一塊芯片上的微型運(yùn)算機(jī),通常片內(nèi)都含有CPU、ROMsrank并行I/。、串行I/。、按時(shí)器/計(jì)數(shù)器、中斷控制、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。隨著技術(shù)的進(jìn)展,單片機(jī)片內(nèi)集成的功能愈來(lái)愈壯大,并朝著片上系統(tǒng)方向進(jìn)展。單片機(jī)有著體積小、功耗低、功能強(qiáng)、性能
2、價(jià)錢比高、易于推行應(yīng)用等顯著長(zhǎng)處,在自動(dòng)扮裝置、智能儀器儀表、進(jìn)程控制、通信、家用電器等許多領(lǐng)域取得日趨普遍的應(yīng)用。1.2 AT89s51介紹如圖1-1為AT89s51引腳圖?1.0CP1.1CP1.2匚P1.5cP1.4cX0SI/P1.5(:XIS0/T1.&CSCKPl.7CRSTCRXD/P3,0CTRD/P3.1CITO/F3.2CINTlPS.3CT0/F3.4CT1/P3.5C酶P3.ECRD/P3.7CXTAL2CXTAL1CPDIFGiroC1io Vee233 P0. 0 7ADO338 P0. 1/仙1437 P0.59G3 P0. 3/g 3$35b P0. 4
3、AB47343 P0. 5/AD5833b P0. 6B6q32 po. van?1031b EA/VPPit30 ALE/PKOG1223 FESN1328 P2. 7ZA151427 P2. 6/P141526 P2. 5/A1316253 P2. 4/Al 21724J P2. 3/A1118233 P2. 2/A101322b P2. 1/J132021 P2. 2k8圖1-1AT89s51引腳圖AT89s51是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesSP(In-systcmprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL
4、公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80c51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處置器和ISPFlash存儲(chǔ)單元,功能壯大的微型運(yùn)算機(jī)的AT89s51可為許多嵌入式控制應(yīng)用系統(tǒng)提供性價(jià)比高的解決方案。AT89s51具有如下特點(diǎn):40個(gè)引腳,4kBy氏sFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程按時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(VCDT)電路,片內(nèi)時(shí)鐘振蕩器。另外,AT89s51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式
5、下,CPU暫停工作,而RAM按時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保留RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PD1P、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。(1)主要功能特性:兼容MCS-51指令系統(tǒng)4k可反復(fù)擦寫(1000次)ISPFlashROM32個(gè)雙向I/O口工作電壓2個(gè)16位可編程按時(shí)/計(jì)數(shù)器時(shí)鐘頻率0-33MHz全雙工UART串行中斷口線128x8bit內(nèi)部RAM2個(gè)外部中斷源低功耗空閑和省電模式中斷喚醒省電模式3級(jí)加密位看門狗(WDT)電路軟件設(shè)置空閑和省電功能靈活的1SP字節(jié)和分頁(yè)編程雙數(shù)據(jù)寄放器指針(
6、2)AT89s51各引腳功能介紹:引腳如圖1-1所示,以下是各引腳的說(shuō)明.VCC:AT89S51電源正端輸入,接+5V。VSS:電源地端。XTAL1:?jiǎn)涡酒到y(tǒng)時(shí)鐘的反相放大器輸入端。XTAL2:系統(tǒng)時(shí)鐘的反向放大器輸出端,一般在設(shè)計(jì)上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以夠動(dòng)作了,另外能夠在兩個(gè)引腳與地之間加入一20PF的小電容,能夠使系統(tǒng)更穩(wěn)固,避免噪聲干擾而死機(jī)。RESET:AT89s51的重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶片重置時(shí),只要對(duì)此引腳電平提升至高電平并維持兩個(gè)機(jī)械周期以上的時(shí)刻,AT89s51便能完成系統(tǒng)重置的各項(xiàng)動(dòng)作,使得內(nèi)部特殊功能寄放器之內(nèi)容均被設(shè)成已
7、知狀態(tài),而且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:EA"為英文"ExternalAccess”的縮寫,表示存取外部程序代碼之意,低電平動(dòng)作,也就是說(shuō)當(dāng)引腳為低電平后,系統(tǒng)會(huì)挪用外部的程序代碼(存于外部EPROM中)來(lái)執(zhí)行程序。因此在8031及8032中,EA引腳必需接低電平,因?yàn)槠鋬?nèi)部無(wú)程序存儲(chǔ)器空間。若是是利用8751內(nèi)部程序空間時(shí),引腳要接成高電平。另外,在將程序代碼燒錄至8751內(nèi)部EPROM時(shí),能夠利用此引腳來(lái)輸入21V的燒錄高壓(Vpp)oALE/PROG:ALE是英文“AddressLatchEnable的縮寫,表示地址鎖存器啟用信號(hào)。AT
8、89s51能夠利用那個(gè)引腳來(lái)觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進(jìn)鎖存器中,因?yàn)锳T89s51是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在程序執(zhí)行時(shí)ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此能夠用來(lái)驅(qū)動(dòng)其他周邊晶片的時(shí)基輸入。另外在燒錄8751程序代碼時(shí),此引腳會(huì)被當(dāng)做程序計(jì)劃的特殊功能來(lái)利用。PSEN:此為ProgramStoreEnable”的縮寫,其意為程序貯存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(EA=0),會(huì)送出此信號(hào)以便取得程序代碼,通常這支腳是接到EPROM的0E腳。AT89s51能夠利用PSE及RD引腳別離啟用存在外部的RAM
9、與EPROM,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器能夠歸并在一路而共用64K的定址范圍。PORTO():端口0是一個(gè)8位寬的開路電極(OpenDrain)雙向輸出入端口,共有8個(gè)位,表示位0,表示位L依此類推。其他三個(gè)I/O端口6一、P二、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在看成I/O歷時(shí)能夠推動(dòng)8個(gè)LS的TTL負(fù)載。若是當(dāng)EA引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器),P0就以多工方式提供地址總線(A0A7)及數(shù)據(jù)總線(D0D7)。設(shè)計(jì)者必需外加一個(gè)鎖存器將端口0送出的地址鎖住成為A0A7,再配合端口2所送出的A8A15合成一個(gè)完整的16位地址總線,而定位地址到64K的外部存儲(chǔ)
10、器空間。P0RT2():端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳能夠推動(dòng)4個(gè)LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)做輸入端口4百度文庫(kù)讓每個(gè)人平等地提升自我來(lái)利用。P2除看成一般I/O端口利用外,若是在AT89s51擴(kuò)充外接程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線的高字節(jié)A8A15,那個(gè)時(shí)候P2便不能看成I/O來(lái)利用了。P0RT1(-):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器能夠推動(dòng)4個(gè)LSTTL負(fù)載,一樣地,若將端口1的輸出設(shè)為高電平,即是山此端口來(lái)輸入數(shù)據(jù)。若是是利用8052或是8032的話,乂看成按時(shí)器2的外部脈沖輸入腳,而能夠有T2E
11、X功能,能夠做外部中斷輸入的觸發(fā)引腳。PORT3(-):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器能夠推動(dòng)4個(gè)TTL負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分派如下:RXD,串行通信輸入。:TXD,串行通信輸出。:INTO,外部中斷0輸入。:INT1,外部中斷1輸入。:T0,計(jì)時(shí)計(jì)數(shù)器0輸入。:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。:WR:外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。(3) AT89s51與AT89c51比較:89s51相對(duì)于89c51而言:新增加了很多功能,性能有了較大提升
12、,價(jià)錢大體不變,乃至比89c51更低!ISP在線編程功能,那個(gè)功能的優(yōu)勢(shì)在于改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)壯大易用的功能。最高工作頻率為33MHz,大家都明白89c51的極限工作頻率是24M,就是說(shuō)S51具有更高工作頻率,從而具有了更快的計(jì)算速度。內(nèi)部集成看門狗計(jì)時(shí)器,再也不需要像89c51那樣外接看門狗計(jì)時(shí)器單元電路。全新的加密算法,這使得對(duì)于89s51的解密變成不可能,程序的保密性大大增強(qiáng),如此就可以夠有效的保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯。兼容性方面:向下完全兼容51全數(shù)字系列產(chǎn)品。比如805、89c51等等初期MCS-51兼容產(chǎn)品。也就是說(shuō)所有教科書、網(wǎng)絡(luò)教程上的程序
13、(不論教科書上采用的單片機(jī)是8051仍是89c51仍是MCS-51等等),在89s51上一樣能夠照常運(yùn)行,這就是所謂的向下兼容。比較結(jié)果:就猶如INTEL的P3向P4升級(jí)一樣,雖然都能夠跑Windows98,不過(guò)速度是不同的。從AT89c51升級(jí)到AT89s51,也是同理。和S51比起來(lái),C51就要遜色一些,實(shí)際應(yīng)用市場(chǎng)方面技術(shù)的進(jìn)步是永久向前的。第2章系統(tǒng)硬件設(shè)計(jì)系統(tǒng)原理框圖如圖2-1所示為系統(tǒng)原理框圖:42發(fā)射模塊發(fā)光二極管、蜂鳴器”報(bào)警接收模塊七單片機(jī),數(shù)碼管顯示,圖2-1系統(tǒng)原理框圖硬件模塊設(shè)計(jì)該系統(tǒng)主要包括無(wú)線發(fā)射模塊,無(wú)線接收模塊,指示燈模塊設(shè)計(jì),聲音模塊,顯示模塊五部份組成。無(wú)線
14、發(fā)射模塊編碼發(fā)射模塊主要由PT2262編碼IC和高頻調(diào)制、功率放大電路組成,發(fā)射模塊的A、B、C、D四個(gè)按鍵別離代表不同的病床號(hào),按下代表病人呼救。如圖2-1為無(wú)線發(fā)射模塊電路圖。w發(fā)射模塊圖2-2無(wú)線發(fā)射模塊無(wú)線同意模塊outGNC接收模塊圖2-3無(wú)線接收模塊解碼接收模塊包括接收頭和解碼芯片PT2272兩部份組成。接收頭將收到的信號(hào)輸入PT2272的14腳(DI),PT2272再將收到的信號(hào)解碼。四個(gè)數(shù)據(jù)輸出口接到四個(gè)I/O口,別離接在AT89s51單片機(jī)最小系統(tǒng)P1口的引腳上。通過(guò)不斷的掃描I/O口是高電平仍是低電平來(lái)判斷是不是有病人呼喚,是通過(guò)循環(huán)實(shí)現(xiàn)的。同時(shí)還需要考慮到一些問題,例如,
15、當(dāng)有多個(gè)病人同時(shí)呼喚時(shí),能使互不干擾。如圖2-3為無(wú)線接收模塊電路圖:指示燈模塊利用發(fā)光二極管實(shí)現(xiàn),發(fā)光二極管占用了四個(gè)I/O口,別離接在P2口的引上.指示燈連接如圖2-4所示:圖2-4指示燈連接危路聲音模塊利用蜂鳴器來(lái)實(shí)現(xiàn),蜂鳴器報(bào)警占用了四個(gè)I/O口,別離接在P2口的引腳上蜂鳴器連接如圖2-5所示:圖2-5蜂嗚君連接電路LED顯示模塊主要由74HC164和數(shù)碼管組成的,通過(guò)串口輸入和串口輸出把號(hào)碼顯示到數(shù)碼管上。主要實(shí)現(xiàn)順序移動(dòng),有串行輸入口和半行輸出口,別離接在AT89s51芯片的,通過(guò)74HC164來(lái)實(shí)現(xiàn),在程序中主如果用循環(huán)來(lái)實(shí)現(xiàn)給一個(gè)時(shí)鐘信號(hào),輸入一個(gè)數(shù)據(jù),當(dāng)有按鍵按下時(shí),數(shù)碼管將
16、顯示出是幾號(hào)床位上的病人呼喚,而且一直在顯示,直到有護(hù)士發(fā)覺。圖2-6為74HC164和數(shù)碼管連接電路:第3章系統(tǒng)軟件設(shè)計(jì)單片機(jī)程序設(shè)計(jì)的步驟單片機(jī)的程序設(shè)計(jì)通常包括按照任務(wù)繪制程序流程圖編寫程序及匯編等兒個(gè)步驟1繪制流程圖所謂流程圖就是用各類符號(hào),圖形,箭頭把程序的流向及進(jìn)程用圖形表示出來(lái),繪制流程圖是單片機(jī)程序編寫前最重要的工作,通常咱們的程序就是按照流程圖的指向采用適當(dāng)?shù)闹噶顏?lái)編寫的。繪制流程圖時(shí),第一畫出簡(jiǎn)單的功能流程圖粗框圖再對(duì)功能流程圖進(jìn)行擴(kuò)充和具體化,即對(duì)存儲(chǔ)器,標(biāo)志位等單元做具體的分派和說(shuō)明,把功能圖上的每一個(gè)粗框圖轉(zhuǎn)化為具體的存儲(chǔ)器或地址單元從而繪制出詳細(xì)的程序流程圖,即細(xì)框
17、圖。在單片機(jī)的編程進(jìn)程中繪制流程圖能看清楚程序執(zhí)行的步驟和程序的流向。事實(shí)上,程序的編寫就是按照流程圖的功能完成的在實(shí)際的程序設(shè)計(jì)中按照框圖采用適當(dāng)?shù)闹噶罹帉懗鰧?shí)現(xiàn)流程圖的源程序就是咱們編寫程序的最后工作。2編寫程序和匯編程序編寫完以后,咱們要把它匯編成機(jī)械語(yǔ)言,這種機(jī)械語(yǔ)言就是十六進(jìn)制文件,后綴名為*.HEX文件。以前還要把它轉(zhuǎn)換成二進(jìn)制文件,后綴名為*.BIN文件,不過(guò)此刻的編程器都能直接讀入十六進(jìn)制文件就不需要轉(zhuǎn)換了最后用編程器把程序?qū)懭雴纹瑱C(jī)。單片機(jī)程序設(shè)計(jì)的方式:要想弄清楚程序設(shè)計(jì)的方式,咱們第一要明白單片機(jī)到底有哪幾類程序,單片機(jī)的程序分為順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在單片機(jī)的程
18、序中既有復(fù)雜的程序也有簡(jiǎn)單的程序,但不論哪一種程序,它們都是由一個(gè)個(gè)大體的程序結(jié)構(gòu)組成的,這些大體結(jié)構(gòu)有順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。1順序結(jié)構(gòu)程序的設(shè)計(jì)順序結(jié)構(gòu)的程序一般用來(lái)處置比較簡(jiǎn)單的算術(shù)或邏輯問題,它的執(zhí)行進(jìn)程是依照程序存儲(chǔ)器PC自動(dòng)加1的順序執(zhí)行的,主要用數(shù)據(jù)傳遞類指令和數(shù)據(jù)運(yùn)算類指令來(lái)實(shí)現(xiàn)。2分支結(jié)構(gòu)程序的設(shè)計(jì)所謂分支結(jié)構(gòu)就是利用條件轉(zhuǎn)移指令使程序執(zhí)行某一指令后,按照所給的條件是不是知足來(lái)改變程序執(zhí)行的順序,也就是本條指令執(zhí)行完后并非是象順序結(jié)構(gòu)那樣執(zhí)行下一條指令,而是看本條指令所給的條件是不是知足,若是知足條件就跳轉(zhuǎn)到其他的指令,若是不知足就順序執(zhí)行。固然也能夠是知足條件順序執(zhí)行
19、而不知足條件跳轉(zhuǎn)執(zhí)行。在51系列單片機(jī)中,能夠直接用于分支程序的指令有JBJNBJCJNCJZJNZCJNEJBC等這幾條,它們能夠完成諸如正負(fù)判斷大小判斷和溢出判斷等等。在分支結(jié)構(gòu)的指令設(shè)計(jì)中大家必需注意,執(zhí)行一條判斷指令只能夠形成兩路分支,若是要形成多路分支就必需進(jìn)行多次判斷也就是多條指令持續(xù)判斷。3循環(huán)結(jié)構(gòu)程序的設(shè)計(jì)循環(huán)程序是最常常利用的程序結(jié)構(gòu)形式,在單片機(jī)的程序設(shè)計(jì)中有時(shí)要碰著一段程序需要重復(fù)執(zhí)行多次的情形,現(xiàn)在就要用到循環(huán)結(jié)構(gòu)程序。循環(huán)初始化部份主要用來(lái)設(shè)置循環(huán)的初始值,包括預(yù)值數(shù),計(jì)數(shù)器和數(shù)據(jù)指針的初值。循環(huán)處置部份循環(huán)處置部份是程序的主體部份也稱為程序體,通過(guò)它能夠完成程序處置
20、的任務(wù)。循環(huán)控制部份循環(huán)控制部份能夠控制程序循環(huán)的次數(shù)并修改預(yù)值數(shù)或計(jì)數(shù)器和指針的值,檢查該循環(huán)是不是執(zhí)行了足夠的次數(shù),若是到了足夠的次數(shù)就采用條件轉(zhuǎn)移指令或判斷指令來(lái)控制循環(huán)的結(jié)束。循環(huán)結(jié)束部份循環(huán)結(jié)束后必需返回一般用RET或RETI指令,在循環(huán)程序設(shè)計(jì)中,循環(huán)控制部份是程序設(shè)計(jì)的關(guān)鍵環(huán)節(jié)。常常利用的循環(huán)控制方式有計(jì)數(shù)器控制和條件控制兩種,計(jì)數(shù)器控制就是把要循環(huán)的次數(shù)即預(yù)值數(shù)放入計(jì)數(shù)器中,程序每循環(huán)一次計(jì)數(shù)器的值就減1,一直到計(jì)數(shù)器的內(nèi)容為零時(shí),循環(huán)結(jié)束一般用DJNZ指令而條件控制方式常預(yù)先不明白要循環(huán)的次數(shù)。只明白循環(huán)的有關(guān)條件現(xiàn)在就可以夠按照給定的條件標(biāo)志位來(lái)判斷程序是不是繼續(xù),一般參照
21、分支結(jié)構(gòu)方式中的條件來(lái)判別指令并執(zhí)行。子程序的設(shè)計(jì)方式挪用子程序的程序咱們則叫它主程序LOOP的程序段在主程序執(zhí)行時(shí),每當(dāng)要用到子程序時(shí)咱們就用LCALL指令來(lái)挪用子程序,子程序執(zhí)行完以后,必需返回主程序返回就用RET指令。單片機(jī)匯編語(yǔ)言介紹程序設(shè)計(jì)語(yǔ)言能夠分為:符號(hào)語(yǔ)言,機(jī)械語(yǔ)言,匯編語(yǔ)言,高級(jí)語(yǔ)言。符號(hào)語(yǔ)言己經(jīng)具有很多長(zhǎng)處,但符號(hào)語(yǔ)言中的每一個(gè)符號(hào)(這里稱作助記符)能夠是用戶按照識(shí)別或記憶的需要自己來(lái)決定的。如此,通用性不是很強(qiáng)。就是說(shuō),按某一個(gè)人的想法編寫的符號(hào)語(yǔ)言程序,另外一個(gè)人是無(wú)法看懂的。匯編語(yǔ)言克服了上述的缺點(diǎn),它是在符號(hào)語(yǔ)言的基礎(chǔ)上進(jìn)展起來(lái)的。它是針對(duì)一類(乃至幾類)運(yùn)算機(jī),抽
22、象出來(lái)的一種符號(hào)語(yǔ)言并把這些符號(hào)加以統(tǒng)一規(guī)定,使得利用同類運(yùn)算機(jī)的人都了解這些符號(hào)的意義,如此,使得用匯編語(yǔ)言編寫的程序能夠在這一類型的任何一臺(tái)運(yùn)算機(jī)上利用。這就有了極大的靈活性,固然不同類型的運(yùn)算機(jī)的匯編語(yǔ)言也不同。它們都必需由生產(chǎn)廠家提供的匯編語(yǔ)言來(lái)編寫。另外.匯編語(yǔ)言還增加了宏指令的功能。讓咱們比較一下匯編語(yǔ)言和高級(jí)語(yǔ)言的特點(diǎn)。第一,匯編語(yǔ)言與處置器關(guān)系緊密。每種處置器都有自己的指令系統(tǒng),相應(yīng)的匯編語(yǔ)言也各自不同。因此匯編語(yǔ)言程序的通用性、可移植性較差。而高級(jí)語(yǔ)言與具體運(yùn)算機(jī)無(wú)關(guān),高級(jí)語(yǔ)言程序能夠在多種運(yùn)算機(jī)上編譯啟執(zhí)行。第二,匯編語(yǔ)言編程涉及寄放器、內(nèi)存等硬件細(xì)節(jié),程序繁瑣,調(diào)試也比較
23、困難.而高級(jí)語(yǔ)言采用類似自然語(yǔ)言的語(yǔ)法,容易被掌握和利用,也沒必要關(guān)心諸如標(biāo)志、堆棧等。可是,匯編語(yǔ)言本質(zhì)上就是機(jī)械語(yǔ)言,它能夠直接有效地控制運(yùn)算機(jī)硬件,因此能夠產(chǎn)生運(yùn)行速度快、指令序列短的高效率目標(biāo)程序。而高級(jí)語(yǔ)言不易直接控制運(yùn)算機(jī)的各類操作,編譯程序產(chǎn)生的目標(biāo)程序龐大、程序難以優(yōu)化、運(yùn)行速度慢.總的來(lái)講,匯編語(yǔ)言的主要長(zhǎng)處就是能夠直接控制運(yùn)算機(jī)硬件,能夠編寫在時(shí)刻和空間兩方面更有效的程序。這些長(zhǎng)處使得匯編語(yǔ)言在程序設(shè)計(jì)中占有重要的地位。是不可取代的。但匯編語(yǔ)言的缺點(diǎn)也是明顯的,它與處置器緊密相關(guān),要求程序員熟悉運(yùn)算機(jī)硬件系統(tǒng),考慮許多細(xì)節(jié)問題,所以程序繁瑣,調(diào)試、保護(hù)、交流和移植困難。因此
24、,有時(shí)能夠采用高級(jí)語(yǔ)言和匯編語(yǔ)言混合編程的方式,彼此揚(yáng)長(zhǎng)避短,更好地解決實(shí)際問題。匯編語(yǔ)言生要應(yīng)用處合有以下幾種:1 .程序要具有較短的運(yùn)行時(shí)問,或只能占用較小的存儲(chǔ)客量。例如操作系統(tǒng)的核心程序段,實(shí)時(shí)控制系統(tǒng)的軟件等。2 .程序與運(yùn)算機(jī)硬件緊密相關(guān),程序要直接控制硬件。例如to接口電路的初始化程序段,外部設(shè)備的底層驅(qū)動(dòng)程序等63 .大型軟件需要提高性能、優(yōu)化處置的部份。例如運(yùn)算機(jī)系統(tǒng)頻繁挪用的子程序、動(dòng)態(tài)鏈接庫(kù)等。4 .沒有適合的高級(jí)語(yǔ)言的時(shí)候。例如開發(fā)最新的處置器程序時(shí)。系統(tǒng)軟件框圖及程序設(shè)計(jì)圖3-1系統(tǒng)軟件框圖通過(guò)不斷地循環(huán)掃描按鍵,檢查是不是有病人呼喚。初始化程序主程序初始化,并使數(shù)碼
25、管全顯示0。BEGIN:MOVTM0D,#10H;設(shè)置定時(shí)器為定時(shí)器1方式1MOVTH1,#3CH;按時(shí)50nlsMOVTL1,#OBOHSETBET1;開按時(shí)器1中斷SETBTR1;按時(shí)開始CLRBC1CLRBC2CLRBC3CLRBC4CLRFLAG1;清除4個(gè)標(biāo)志位CLRFLAG2CLRFLAG3CLRFLAG4MOVDPTR,#TAB;送表首地址MOVA,ftOFCH;0串口代碼MOVRI,#9;串口得送9次Al:CLRTXD3;下面為串口送數(shù)過(guò)程RRCA;帶進(jìn)位右移SETBTXD3MOVRXD3,CLCALLYAXSHI;833US小段延時(shí)DJXZRI,AlMOVA,#OFCHMOV
26、RI,#9A2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYANSHI;833USDJXZR1,A2MOVA,#OFCHMOVRI,#9A3:CLRTXD1RRCASETBTXD1MOVRXD1,CLCALLYANSHI;833USDJNZRI,A3MOVA,#OFCHMOVRI,#9A4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833USDJNZRI,A43. 32鍵掃描程序設(shè)計(jì)通過(guò)不斷的掃描按鍵所接的I/O口是高電平仍是低電平來(lái)判斷是不是有病人呼喚,是通過(guò)循環(huán)實(shí)現(xiàn)的。同時(shí)還需要考慮到一些問題,例如,當(dāng)有多個(gè)病人同時(shí)呼喚時(shí),如何
27、能使互不干擾,這時(shí)是通過(guò)一個(gè)標(biāo)志位來(lái)控制的。指示燈控制程序設(shè)計(jì)當(dāng)有病人按鍵呼喚時(shí),指示燈閃爍報(bào)警,用一條指令即可實(shí)現(xiàn),并用延時(shí)程序控制燈的閃爍時(shí)刻。報(bào)瞥程序設(shè)計(jì)若是有病人呼喚,即有按鍵按下,那么相應(yīng)的蜂鳴器所接的I/O口也設(shè)置為高電平,而且每一個(gè)蜂鳴器發(fā)出的聲音是不一樣的。在程序中只用一條語(yǔ)句即可實(shí)現(xiàn):CLR,因?yàn)樵诒倦娐吩O(shè)計(jì)時(shí),每一個(gè)引腳都是低電平有效的,所以在清零時(shí)蜂鳴器才能發(fā)作聲音。顯示程序設(shè)計(jì)當(dāng)有按鍵按下時(shí),就會(huì)挪用顯示子程序,在電路圖中利用的是:串行方式,假設(shè)此刻是2號(hào)床位上的病人呼喚,則在數(shù)碼管上應(yīng)顯示“2”,串行方式中,數(shù)碼管上顯示的數(shù)字是先成二進(jìn)制數(shù),再一名一名地輸進(jìn)去的,然后
28、才顯示數(shù)字。這里是在模擬串口,因?yàn)樵搯纹瑱C(jī)中只有一個(gè)串口,而這里要用多個(gè)串口。當(dāng)這段程序執(zhí)行完以后,再進(jìn)入循環(huán)。十進(jìn)制數(shù)與相應(yīng)二進(jìn)制數(shù)的轉(zhuǎn)換表如表3-1所示。表3-1轉(zhuǎn)換表顯示數(shù)值dopgfedcba驅(qū)動(dòng)代碼(16進(jìn)制)011111100OfcH10110000060H211011010OdAH3111100100f2H40110011066H510110110B6H顯示子程序如下所示:START:CLRC;病床數(shù)碼管顯示MOVDPTR,#TABMOVA,ROMOVCA,©A+DPTRMOVRI,#951: CJNERO,#1,S2SJMPSSI52: CJNERO,#2,S3SJM
29、PSS253: CJNERO,#3,S4SJMPSS354: CJNERO,#4,SILJMPSS4FH1:LJMPBEGIN551: LCALLYS1OMSJB,FH1SSS1:CLRTXD3RRCASETBTXD3MOVRXD3,CLCALLYANSHI;833USDJNZR1,SSS1CLRCLRWS1:MOVA,R7ADDA,#200MOV31H,ASETBBC1SETBFLAG1LJMPTT2FH2:LJMPBEGIN552: LCALLYS10MSJB,FH2SSS2:CLRTXD4RRCASETBTXD4MOVRXD4,CLCALLYAXSHI;833USDJNZRI,SSS2C
30、LRCLRWS2:MOVA,R7ADDA,#200MOV32H,ASETBBC2SETBFLAG2LJMPTT3FH3:LJMPBEGIN553: LCALLYS10MSJB,FH3SSS3:CLRTXD1RRCASETBTXD1MOVRXD1,CLCALLYAXSHI;833USDJNZRI,SSS3CLRCLRWS3:MOVA,R7ADDA,#200MOV33H,ASETBBC3SETBFLAG3LJMPTT4FH4:LJMPBEGIN554: LCALLYS10MSJB,FH4SSS4:CLRTXD2RRCASETBTXD2MOVRXD2,CLCALLYANSHI;833USDJNZRI
31、,SSS4CLRCLRWS4:MOVA,R7ADDA,#200MOV34H,ASETBBC4SETBFLAG4LJMPTT1TTI1:LJMPTTT1延時(shí)設(shè)定中斷允許控制寄放器中斷的允許或禁止是由片內(nèi)可進(jìn)行位(什么是位,大家可別到此刻還說(shuō)不明白哦)尋址的8位中斷允許寄放器IE來(lái)控制的,單片機(jī)中斷系統(tǒng)中有兩種不同類型的中斷:一種稱為非屏蔽中斷;另一種稱為屏蔽中斷。對(duì)于非屏蔽中斷,用戶不能用軟件方式加以禁止,一旦有中斷申請(qǐng),CPU將按照自然優(yōu)先級(jí)予以響應(yīng)。這里主要講屏蔽中斷,對(duì)于屏蔽中斷,咱們能夠通過(guò)軟件的方式來(lái)予以控制(允許中斷咱們把它稱為中斷開放,不允許中斷咱們把它稱之為中斷屏蔽),如何操作,
32、說(shuō)穿了其實(shí)很簡(jiǎn)單,就是通過(guò)對(duì)IE的相應(yīng)位的置“1”或請(qǐng)“0”來(lái)允許或禁止某個(gè)中斷,IE地址(A8H)可位尋址D7D6D5D4D3D2DIDO,EA-ESET1EXIETOEXO,EA:總控位,EA=O時(shí)關(guān)所有中斷。EA=1時(shí)所有中斷請(qǐng)求均被開放。ES:串行口,ES1"時(shí)開,ES二0時(shí)關(guān)串行中斷ET1、ETO按時(shí)計(jì)數(shù)=1時(shí)開=0時(shí)關(guān)EX1、EXO外部中斷=1時(shí)開=0時(shí)關(guān)。方式寄放器TMOD方式寄放器TMOD是一個(gè)逐位概念的8位寄放器,但只能利用字節(jié)尋址的寄放器,字節(jié)地址為89H。其格式如圖3-1:D7D6D5D4D3D2DID0TMOD(89H)GATEC/fMlMOGATEC/TMl
33、MOH定時(shí)器中定時(shí)器0H圖3-1寄放若TMQD格式GATE門控制。GATE=1時(shí),由外部中斷引腳INTO、INT1和控制寄放器的TRO,TR1來(lái)啟動(dòng)按時(shí)器。當(dāng)INTO引腳為高電平時(shí)TRO置位,啟動(dòng)按時(shí)器T0;當(dāng)INT1引腳為高電平時(shí)TR1置位,啟動(dòng)按時(shí)器T1°GATE=O時(shí),僅由TR0,TR1置位別離啟動(dòng)按時(shí)器TO、T1。C/T功能選擇位置位時(shí)選擇計(jì)數(shù)功能,清零時(shí)選擇按時(shí)功能。MO、M1方式選擇功能由于有2位,因此有4種工作方式M1M0工作方式計(jì)數(shù)器模式TMOD(設(shè)置按時(shí)器模式)00方式013位計(jì)數(shù)器TMOD=OXOO01方式116位計(jì)數(shù)器TMOD=0x0110方式2自動(dòng)重裝8位計(jì)數(shù)
34、器TMOD=OX0211方式3To分為2個(gè)8位計(jì)數(shù)器,T1為波特率發(fā)生器TMOD=OX03按時(shí)器/計(jì)數(shù)器控制寄放器TCON在特殊功能寄放器中,字節(jié)地址為88H格式如圖3-2,位地址(由低位到高位)為88H8FH,由于有位地址,十分便于進(jìn)行位操作。8FH8EH8DH8CH8BH8AH89H88H煦FTF1TRITFOTFOID1IT1IE0IT0圖3-2TCQN在特殊功能寄放若格式TCON的作用是控制按時(shí)器的啟、停,標(biāo)志按時(shí)器溢出和中斷情形。TCON的格式如下圖所示。其中,TF1,TRI,TFO和TRO位用于按時(shí)器/計(jì)數(shù)器;IE1,IT1,IE0和IT0位用于中斷系統(tǒng)。列位概念如下:TF1:按時(shí)
35、器1溢出標(biāo)志位。當(dāng)字時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置“1”,而且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清“0”,在查詢方式下用軟件清“0”。TR1:按時(shí)器1運(yùn)行控制位。由軟件清“0”關(guān)閉按時(shí)器1。當(dāng)GATE=1,且INT1為高電平時(shí),TR1置“1”啟動(dòng)按時(shí)器1;當(dāng)GATE=0,TR1置“1”啟動(dòng)按時(shí)器1。TFO:按時(shí)器0溢出標(biāo)志。其功能及操作情形同TF1。TRO:按時(shí)器0運(yùn)行控制位。其功能及操作情形同TR1。IE1:外部中斷1請(qǐng)求標(biāo)志。IT1:外部中斷1觸發(fā)方式選擇位。IEO:外部中斷。請(qǐng)求標(biāo)志。ITO:外部中斷。觸發(fā)方式選擇位。TCON中低4位與中斷有關(guān),咱們將在下節(jié)課講中斷時(shí)再給予講解
36、。由于TCON是能夠位尋址的,因此若是只清溢出或啟動(dòng)按時(shí)器工作,能夠用位操作命令。例如:執(zhí)行"CLRTFO”后則清按時(shí)器。的溢出;執(zhí)行“SETBTR1”后可啟動(dòng)按時(shí)器1開始工作(固然前面還要設(shè)置方式定)。按時(shí)器/計(jì)數(shù)器的初始化由于按時(shí)器/計(jì)數(shù)器的功能是由軟件編程肯定的,所以一般在利用按時(shí)/計(jì)數(shù)器前都要對(duì)其進(jìn)行初始化,使其按設(shè)定的功能工作。初始貨的步驟一般如下:一、肯定工作方式(即對(duì)TMOD賦值);二、預(yù)置按時(shí)或計(jì)數(shù)的初值(可直接將初值寫入THO、TLO或TH、TL1);3、按照需要開放按時(shí)器/計(jì)數(shù)器的中斷(直接對(duì)IE位賦值);4、啟動(dòng)按時(shí)器/計(jì)數(shù)器(若已規(guī)定用軟件啟動(dòng),則可把TRO或
37、TR1置“1”;若已規(guī)定由外中斷引腳電平啟動(dòng),則需給外引腳步加啟動(dòng)電平。當(dāng)實(shí)現(xiàn)了啟動(dòng)要求后,按時(shí)器即按規(guī)定的工作方式和初值開始計(jì)數(shù)或按時(shí))。按時(shí)器1:作時(shí)必需給計(jì)數(shù)器送計(jì)數(shù)器初值,那個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全。時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,咱們能夠把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC可取得如下計(jì)算通式:TOM-C式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。該系統(tǒng)中,選用的是方式1,計(jì)數(shù)器的初值為:15536,溢出是為:65536,而晶振為:12HZ,按照公式計(jì)算,計(jì)算公式T二(M-TC)T“數(shù)或TC=MT/TilBi口數(shù)是單片機(jī)時(shí)鐘周期T
38、clk的12倍,TC為按時(shí)初值,單片機(jī)的主脈沖頻率為TclkI2MHz,可得按不時(shí)刻為:50mso相應(yīng)的程序代碼為:(1)BEGIN:MOVTMOD,#10H;按時(shí)器/計(jì)數(shù)器方式控制MOVTH1,#3CHMOVTL1,#OBOHSETBET1;將所指位置1SETBTRI;ET1:按時(shí)器1(Tl)的溢出中斷允許位;TRI:H的運(yùn)行控制位,置1表示啟動(dòng)(2)中斷服務(wù)程序:DSD:MOVTH1,#3CHMOVTL1,#OBOHINCR7:R7的值給了A,也是為了保證報(bào)警時(shí)刻的準(zhǔn)確性CLRTFO;按時(shí)器0的溢出中斷標(biāo)志位RETIMCS-51的工作頻率為2-12MHZ,咱們選用的8031單片機(jī)的工作頻率
39、為12MHZ。機(jī)械周期與主頻有關(guān),機(jī)械周期是主頻的12倍,所以一個(gè)機(jī)械周期的時(shí).刻為12*(1/12M)=lus。咱們能夠明白具體每條指令的周期數(shù),如此咱們就可以夠通過(guò)指令的執(zhí)行條數(shù)來(lái)肯定1秒的時(shí)刻。具體的延時(shí)程序分析:(1) YANSHI:MOVR5,#210;延時(shí)420us子程序DJXZR5,3RET(2) YS10MS:M0VR3,#20;延時(shí)10毫秒子程序SGL:MOVR4,#250DJNZR4,$DJNZR3,SGLRET每條指令的執(zhí)行時(shí)刻為:2us。YANSHI子程序中,210*2=420,所以延時(shí)為420USo在YS10MS子程序中,是個(gè)雙重循環(huán),循環(huán)次數(shù)為:20*250=500
40、0,所以延不時(shí)刻為:5000*2=10000us,約是:10MS。由于單片機(jī)的運(yùn)行速度專門快其他的指令執(zhí)行時(shí)刻能夠忽略不計(jì)。第3章系統(tǒng)測(cè)試單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件調(diào)試和軟件調(diào)試,下面分2部份進(jìn)行討論.單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試主如果排查印刷電路板的問題和連接上的一些問題。由干硬件電路轉(zhuǎn)變很多,不同類型的電路可能出現(xiàn)的問題也不一樣,所以沒有固定的程序能夠投用,所以,在該系統(tǒng)中,第一通過(guò)了仔細(xì)地推敲系統(tǒng)原理,確認(rèn)無(wú)誤;第二對(duì)照設(shè)計(jì)圖紙查印制電路板,看是不是有粘接等工藝現(xiàn)象;最后,檢查外圍連接是不是有誤,通過(guò)這幾個(gè)方面的反復(fù)調(diào)試,可確保電路板的無(wú)誤性。在本系統(tǒng)的硬件調(diào)試進(jìn)程
41、中,出現(xiàn)了電壓不穩(wěn)固而致使程序無(wú)法寫入的情形,使電壓穩(wěn)固的方式是改用新的電池,或是再次設(shè)計(jì)電源方案,在這里是用電源接通教學(xué)實(shí)驗(yàn)板,然后再把教學(xué)實(shí)驗(yàn)板與本系統(tǒng)相連接,如此,就可以夠取得穩(wěn)固的電壓了。軟件調(diào)試LCA51軟件簡(jiǎn)介L(zhǎng)CA51軟件是集編輯、編譯/連接、加載、調(diào)試等為一體的集成開發(fā)環(huán)境(IDE)o用能夠在同一界面環(huán)境中完成所有任務(wù)。主界面大致如圖4-1所示。工祭叁,工叁£*口蘆苴*,金山盤口jurrrf艘“圖4-1LCA51軟件主界面編輯窗口LCA51提供一個(gè)多窗口的源文件編輯器。該編輯器不受文件大小的限制,允許無(wú)窮的撤銷/重復(fù)功能。編輯器全面支持匯編、C51和PL/M51語(yǔ)言的
42、語(yǔ)法加痙著色。用戶能夠自概念各類類型文本的顏色和不同語(yǔ)言的關(guān)鍵詞。相應(yīng)的關(guān)鍵詞文件名為、。這些文件都保留在LCA51安裝目錄下。編輯器還支持書簽,拷貝、剪切、粘貼,全程查找、替換,拖動(dòng)編輯等功能。工作區(qū)窗口工作區(qū)窗口有兩個(gè)頁(yè)面窗口。工程頁(yè)面窗口以樹型結(jié)構(gòu)顯示工程中的項(xiàng)目文件等內(nèi)容。沒有感動(dòng)工程時(shí),該頁(yè)面窗口為空。資源管理器頁(yè)面窗口和Win9x中的資源管理器中的左面的窗口相同。輸出窗口輸出窗口顯示用戶編譯連接進(jìn)程中的輸出信息,用戶雙擊某條編譯犯錯(cuò)信息提示即可直接定位到源文件的對(duì)應(yīng)行。觀察窗口觀察窗口中顯示調(diào)試進(jìn)程中長(zhǎng)期觀察的變量項(xiàng)。用戶能夠添加、刪除、修改、刷新觀察頂。相應(yīng)命令在右鍵菜單中。數(shù)據(jù)
43、窗口數(shù)據(jù)窗口中成批顯示實(shí)驗(yàn)機(jī)相應(yīng)存儲(chǔ)區(qū)域的整塊數(shù)據(jù)內(nèi)容。用戶能夠觀察,修改相應(yīng)地址單元的數(shù)據(jù)。相應(yīng)命令在右鍵菜單中。對(duì)話窗口用戶通過(guò)對(duì)話窗口直接用監(jiān)控命令和實(shí)驗(yàn)機(jī)對(duì)話。注意:在調(diào)試狀態(tài),當(dāng)對(duì)話窗口變成不活動(dòng)窗口時(shí),要使實(shí)驗(yàn)機(jī)仍在監(jiān)控符提示狀態(tài)下,不然,PC機(jī)緣和實(shí)驗(yàn)機(jī)失去通信。菜單介紹LCA51有許多菜單項(xiàng),主菜單包括了絕大多數(shù)操作命令。菜單比較容易掌握,用戶能夠通過(guò)閱讀菜單項(xiàng),直接掌握每一個(gè)菜單命令的具體功能。LCA51也能夠利用熱鍵和工具欄圖標(biāo)快速完成常常利用菜單項(xiàng)的功能。在LCA51主菜單欄上有11個(gè)主菜單,它們別離如下:文件(£)和文件有關(guān)的操作,如打開、關(guān)閉、打印等文件操作
44、。編輯(£)包括拷貝、剪切、粘貼、書簽、查找和替換等編輯命令。查看(丫)改變LCA51的工作界面顯示。包括工具欄和有關(guān)窗口的顯示等。工程(E)和工程有關(guān)的操作,如打開、關(guān)閉、保留、設(shè)置等工程操作。編譯(&)包括編譯和連接等編譯操作。調(diào)試(目)包括加載目標(biāo)文件、單步、斷點(diǎn)、全速執(zhí)行等調(diào)試命令。觀察(。)包括添加觀察變量或?qū)τ^察變量進(jìn)行修改等命令。設(shè)置(£)包括AEDK實(shí)驗(yàn)機(jī)型號(hào)、通信口、單文件編譯器/連接器、環(huán)境參數(shù)等的設(shè)置。工具(。包括加載和上傳程序,自概念用戶界面等命令。窗口(”選擇或改變當(dāng)前活動(dòng)窗口及窗口排列方式。幫忙(白)顯示相應(yīng)幫忙文文件和軟件版本信息。(4
45、) 22聯(lián)機(jī)在線調(diào)試1啟動(dòng)運(yùn)行環(huán)境打開實(shí)驗(yàn)機(jī)電源,雙擊桌面上的LCA51軟件的圖標(biāo),運(yùn)行LCA51軟件。第一次啟動(dòng)LCA51需設(shè)置通信端口。用戶選著“設(shè)置一通信口”菜單項(xiàng),在彈出的對(duì)話框中,選擇相應(yīng)的通信口和通信波特率。做本實(shí)驗(yàn)時(shí),波特率應(yīng)設(shè)9600。點(diǎn)擊測(cè)試吊口按鈕,檢查通信口是不是可用。退出LCA51時(shí),會(huì)自動(dòng)保留用戶最后一次的設(shè)置。2實(shí)驗(yàn)項(xiàng)目并編譯選取所要做的實(shí)驗(yàn)項(xiàng)目的文件(水.asm),用戶選擇“編譯一編譯當(dāng)前文件“菜單項(xiàng),將編譯當(dāng)前活動(dòng)窗口中的源文件,編譯結(jié)果的信息顯示在輸出窗口中。用戶能夠按照輸出窗口中錯(cuò)誤信息直接定位到源文件相應(yīng)位置。編譯器將生成源文件的目標(biāo)代碼,對(duì)于單匯編文件,
46、編譯產(chǎn)生的目標(biāo)代碼能夠直接加教調(diào)試,對(duì)于高級(jí)語(yǔ)言的源文件,編譯結(jié)束還要連接才能產(chǎn)生可加載的目標(biāo)代碼。3調(diào)試LCA51是一個(gè)集成開發(fā)環(huán)境,調(diào)試和編輯、編譯都在同一界面下完成。調(diào)試時(shí)的界面如圖4-2所示。圖4-2測(cè)試時(shí)的界面在編輯狀態(tài)時(shí),界面右下角的當(dāng)前狀態(tài)顯示為“編輯”,在調(diào)試狀態(tài)時(shí),仿真機(jī)沒有運(yùn)行程序時(shí),界面右下角的當(dāng)前狀態(tài)顯示為“停止”,仿真機(jī)運(yùn)行程序時(shí),界面右當(dāng)前狀態(tài)顯示為“運(yùn)行”。許多菜單命令只有在調(diào)試狀態(tài)才有效,用戶選擇“調(diào)試一一加教調(diào)試”菜單項(xiàng)后,將加載當(dāng)前的工程文件或源文件的目標(biāo)代碼,加載完畢,就進(jìn)入調(diào)試狀態(tài).若是用戶想退出調(diào)試狀態(tài),選擇“調(diào)試一一退出調(diào)試”菜單項(xiàng)。在調(diào)試狀態(tài),最下
47、方的狀態(tài)行顯示當(dāng)前PC指針等常常利用的寄放器的值。仿真機(jī)運(yùn)行時(shí)左上角的圖標(biāo)會(huì)不斷變更,右下角的當(dāng)前狀態(tài)會(huì)顯示為“運(yùn)行”。當(dāng)前PC指針行的背景顏色為綠色,有效斷點(diǎn)行背景顏色為紅色,無(wú)效斷點(diǎn)行背景顏色為棕色。PC指針行和斷點(diǎn)行相同時(shí),背景顏色為粉紅色。觀察窗口中顯示長(zhǎng)期觀察的變量的值在不同時(shí)候的取值情形。用戶能夠在對(duì)話窗口中直接通過(guò)監(jiān)控命令和仿真機(jī)對(duì)話,具體監(jiān)控命令參考相關(guān)仿真機(jī)利用手冊(cè)。數(shù)據(jù)窗口中顯示整塊數(shù)據(jù)區(qū)的內(nèi)容。快速觀察窗口顯示當(dāng)前光標(biāo)處變量的取值。打開調(diào)試窗口并將目標(biāo)碼加載到實(shí)驗(yàn)機(jī)。然后用戶就可以夠運(yùn)用本系統(tǒng)提供的各類工具和方式進(jìn)行調(diào)試。主如果觀察程序是不是正常、有無(wú)走飛、各主要參數(shù)中間
48、值是不是與設(shè)計(jì)吻合。4進(jìn)行實(shí)驗(yàn)按如實(shí)驗(yàn)說(shuō)明和用戶編制的程序,完成連線(最好先關(guān)閉實(shí)驗(yàn)機(jī)電源,再進(jìn)行)。通過(guò)調(diào)試軟件加載、運(yùn)行程序、觀察實(shí)驗(yàn)有關(guān)現(xiàn)象。若現(xiàn)象與設(shè)計(jì)不符,則返回第三步,從頭進(jìn)行。單片機(jī)應(yīng)用系統(tǒng)的軟件調(diào)試也沒有規(guī)律可循。軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤。編譯器下調(diào)試程序,有兩種錯(cuò)誤,一種邏輯錯(cuò)誤,也就是語(yǔ)法錯(cuò)誤,是很容易被發(fā)覺的,另一種是功能錯(cuò)誤,是指在沒有語(yǔ)法錯(cuò)誤的基礎(chǔ)上,由于設(shè)計(jì)思想或算法的問題致使不能實(shí)現(xiàn)軟件功能的一種錯(cuò)誤。通過(guò)這兩方面錯(cuò)誤,不斷地調(diào)試,和對(duì)各模塊的調(diào)試,最后組成一個(gè)完整的程序。在軟件設(shè)計(jì)頂用了按時(shí)器而的原因是:中斷一開,按時(shí)器就開始計(jì)時(shí),當(dāng)?shù)搅酥袛鄷r(shí)刻時(shí),就挪用中
49、斷程序,其實(shí)按時(shí)器的作用和延時(shí)程序的作用是一樣的,只不過(guò),按時(shí)器有一個(gè)益處就是,相等于是兩個(gè)CPU在動(dòng)作,互不干擾,按時(shí)器一直在計(jì)時(shí),程序也一直在運(yùn)行;而延時(shí)程序是沒有那個(gè)作用的,在運(yùn)行延時(shí)程序的同時(shí)是不能有其它操作的,延時(shí)程序的作用是讓前面的操作完全運(yùn)行完。為了避免呼喚時(shí)彼此干擾,在本系統(tǒng)中利用了標(biāo)志位flagl-flag*由標(biāo)志位和按鍵來(lái)控制??偨Y(jié)本系統(tǒng)主要利用了AT89s51單片機(jī)和74HC164芯片的串口顯示來(lái)實(shí)現(xiàn)病房呼喚的,主要包括顯示模塊,鍵盤模塊,聲音模塊,單片機(jī)系統(tǒng),接口模塊等幾部份,本文介紹的病房呼喚系統(tǒng)具體是說(shuō),醫(yī)院的病房里每一個(gè)床位邊都裝有一個(gè)呼喚按鈕,當(dāng)病人需要幫忙時(shí),
50、按下呼喚按鈕,護(hù)士辦公室里呼喚顯示板上相應(yīng)房間號(hào)的指示燈克,然后報(bào)警,報(bào)警時(shí)刻為10S(能夠轉(zhuǎn)變),值班護(hù)士一看就明白哪個(gè)房間的病人需要幫忙或需要進(jìn)行搶救。當(dāng)同時(shí)有兩個(gè)或多個(gè)以上的病人呼喚時(shí),彼此互不干擾。系統(tǒng)的不足的地方第一是沒能實(shí)現(xiàn)循環(huán)顯示,循環(huán)顯示就是只有一個(gè)數(shù)碼管顯示,通過(guò)各個(gè)病床位的優(yōu)先級(jí)的設(shè)置,最先顯示的是優(yōu)先級(jí)高的病人的床位號(hào)碼;第二就是系統(tǒng)用到的器件的個(gè)數(shù)比較多,比如說(shuō)數(shù)碼管和蜂鳴器,指示燈都是四個(gè),都比較繁瑣;再次就是沒有實(shí)現(xiàn)病人與護(hù)士之間的對(duì)話功能,若是能夠?qū)崿F(xiàn)那個(gè)功能那么將為病人提供更好的服務(wù)。參考文獻(xiàn)1沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析M.北京:北京航空航天大學(xué)出版社
51、,20032周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)(修訂版)M.北京:北京航空航天大學(xué)出版社,20023張為民等.CS-51系列單片機(jī)系統(tǒng)及其應(yīng)用M.北京:高等教育出版社,20044林邦杰,陳明.匯編語(yǔ)言程序設(shè)計(jì)M.北京:中國(guó)鐵道出版社,20035劉守義.單片機(jī)應(yīng)用技術(shù)M.西安:西安電子科技大學(xué)出版社,20026秦實(shí)宏.單片機(jī)原理與應(yīng)用技術(shù)M.北京:中國(guó)水利水電出版社,20057盧艷軍.單片機(jī)大體原理及應(yīng)用系統(tǒng)M.北京:機(jī)械工業(yè)出版社,20058夏繼強(qiáng)、沈德金.單片機(jī)實(shí)驗(yàn)與實(shí)踐指導(dǎo)(二)M.北京:北京航空學(xué)院出版社,20019張毅剛.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社,200410雷思孝.單片機(jī)
52、原理及實(shí)用技術(shù)M.西安:西安電子科技大學(xué)出版社,200411馮建華、趙亮.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)M.北京:人民郵電出版社,200412肖來(lái)勝、馮建蘭、夏術(shù)泉.單片機(jī)技術(shù)實(shí)用教程M.武漢:華中科技大學(xué)出版社,200413趙曙光,李增烈.具有記憶功能的病房呼喚系統(tǒng)J.電子科技,1998(2):2225.14陳新崗,趙陽(yáng)陽(yáng).基于單片機(jī)的無(wú)線病房呼喚器M.重慶工學(xué)院學(xué)報(bào),2008(10):P127-13015無(wú)線遙控模塊應(yīng)用篇J.電子制作,2008(6)1617 IntegratedCircuituPD121G.18_Designofhospitalsickroomwirelesscalling
53、systemLJ.2007(6)致謝本文是在趙潤(rùn)林老師的精心指導(dǎo)和嚴(yán)格要求下完成的,趙老師以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和斗膽創(chuàng)新的進(jìn)取精神對(duì)我產(chǎn)生重要影響。同時(shí),還特別感激朱勝利,李強(qiáng)同窗還有物理系同窗對(duì)我的無(wú)私幫忙,使我得以順利完成論文。通過(guò)這次設(shè)計(jì),使我取得了豐碩的理論知識(shí),極大地提高了實(shí)踐能力。單片機(jī)領(lǐng)域這對(duì)我此后進(jìn)一步學(xué)習(xí)運(yùn)算機(jī)方面的知識(shí)有極大的幫忙。在此,我忠心感激趙潤(rùn)林老師和運(yùn)算機(jī)科學(xué)與技術(shù)系列位老師的指導(dǎo)和支持。在未來(lái)的工作和學(xué)習(xí)中,我將以更好的成績(jī)來(lái)回報(bào)列位領(lǐng)導(dǎo)和老師。附錄附錄1:元器件清單序號(hào)名字型號(hào)數(shù)量備注1單片機(jī)AT89S511雙列直插240腿雙列直插底座1供單片機(jī)用3電容10464品振12M15電容30P26電解電容10UF17電阻10K18電阻1K59發(fā)光二極管3mm紅410發(fā)光二極管3mm綠111電池盒五號(hào)三連112電阻413三極管PNP9012414蜂鳴器5V直流415電解電容100UF116寸單聯(lián)共陰數(shù)碼管417芯片74HC164418無(wú)線發(fā)射模塊PT2272119無(wú)線接收模塊PT22621附錄2:電路原理圖"».023
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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年度環(huán)保技術(shù)改造項(xiàng)目合同3篇
- 2025版煤炭物流倉(cāng)儲(chǔ)一體化服務(wù)合同模板4篇
- 2024珠寶銷售合同
- 2025年度高新技術(shù)企業(yè)研發(fā)費(fèi)用加計(jì)扣除代理合同3篇
- 2025年度銷售合同信息共享與部門協(xié)同辦公2篇
- 2025年度XX農(nóng)業(yè)廢棄物資源化利用與污水處理合同3篇
- 2024水電站電力輸出及銷售合同協(xié)議
- 2025年度環(huán)保型廠房出租與能源管理一體化服務(wù)合同3篇
- 二零二五年齡上限勞動(dòng)合同規(guī)范樣本2篇
- 二零二五年度風(fēng)景名勝區(qū)草坪修剪與修復(fù)合同3篇
- MT/T 199-1996煤礦用液壓鉆車通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗(yàn)第1部分:桌類強(qiáng)度和耐久性
- 第三方在線糾紛解決機(jī)制(ODR)述評(píng),國(guó)際商法論文
- 第5章-群體-團(tuán)隊(duì)溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團(tuán)南部區(qū)域養(yǎng)護(hù)標(biāo)準(zhǔn)圖例
- 排水許可申請(qǐng)表
- 低血糖的觀察和護(hù)理課件
- 計(jì)量檢定校準(zhǔn)技術(shù)服務(wù)合同協(xié)議書
評(píng)論
0/150
提交評(píng)論