【正文】
s highdensity, nonvolatile volatile memory technology manufacturing, MCS51 patible with the standard 80C51 instruction set and pin structure, the chip integrated in a mon 8bit central processor and ISP Flash memory cell, a powerful microputer AT89S51 to many embedded control applications provide costeffective solutions. AT89S51 has the following features: 40pin, 4k Bytes Flash chip program memory, 128 bytes of random access data memory (RAM), 32 external bidirectional input / output (I / O) ports, interrupt priority level 2 5 interrupt nesting level interrupts, two 16bit programmable timer counters, two full duplex serial port, watchdog (WDT) circuit, the onchip clock oscillator. In addition, AT89S51 design and configuration of the oscillation frequency can be set to 0Hz and through the software powersaving mode. Idle mode, CPU to suspend work, and RAM timing counters, serial port, and interrupt system to continue. Powerdown mode freezes the oscillator, and save the data RAM, disabling all other chip functions until the next interrupt or hardware reset. Meanwhile, the chip also has PDIP, TQFP and PLCC packages such as three, to acmodate different products. Display circuit using an LED digital tube, the microcontroller I / O, the most typically through the I / O port and 7segment LED digital display circuit form. 7segment LED digital tube, the insulating material in a certain shape, using bination of single LED arranged in 8 shape of the LED, respectively, which leads to the electrodes, the corresponding point of light to show the 09 draw figures. LED digital tube LED39。接著試驗(yàn)復(fù)位開(kāi)關(guān),檢驗(yàn)?zāi)芊裢瓿汕辶愕墓δ?并作出相應(yīng)調(diào)整。 2) 把編寫(xiě)好的程序進(jìn)行匯編并輸入單片機(jī) AT89S51 仿真器和對(duì)其進(jìn)行初始化。源程序編譯及仿真調(diào)試應(yīng)分段或以子程序?yàn)閱挝灰粋€(gè)一個(gè)進(jìn)行,最后可結(jié)合硬件實(shí)時(shí)調(diào)試。 軟件調(diào)試 軟件調(diào)試是通過(guò)對(duì)用戶程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過(guò)程。當(dāng)各塊電路無(wú)故障后,將各電路逐塊加入系統(tǒng)中,再對(duì)各塊電路功能及各電路間可能存在的相互聯(lián)系進(jìn)行調(diào)試,由分到合的調(diào)試就可完成。由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊。動(dòng)態(tài)調(diào)試 動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下,發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯(cuò)誤等的一種硬件檢查。第四步:聯(lián)機(jī)檢查。 第三步:加電檢測(cè)。 第二步:萬(wàn)用表測(cè)試。 第一步:目測(cè)。硬件調(diào)試可分為靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試兩步進(jìn)行。熄滅對(duì)應(yīng)的紅色發(fā)光二極管SS2_1: INC33HMOVA,33HCJNE A,9,ZHUAN2 。16*250MS=4S(總共次,但實(shí)際在這里停止的時(shí)間只有次MS)MOV32H,0SETB 。二層門(mén)開(kāi)的聲音關(guān)運(yùn)城學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文第 18 –頁(yè) 共 33 頁(yè)SSX2_2: CJNE A,16,SSX2_3 。顯示JB ,SS2_1INC32HMOVA,32HCJNE A,1,SSX2_1 。熄滅對(duì)應(yīng)的紅色發(fā)光二極管SS1_1: INC31HMOVA,31HCJNE A,9,ZHUAN2 。16*250MS=4S(總共次,但實(shí)際在這里停止的時(shí)間只有次MS)MOV30H,0SETB 。一層門(mén)開(kāi)的聲音關(guān)SSX1_2: CJNE A,16,SSX1_3 。顯示JB ,SS1_1INC30HMOVA,30HCJNE A,1,SSX1_1 。50MS*5=250MSMOVTCOUNT,00HJB F0,ZHUAN LJMP ZHUAN1ZHUAN: LJMP XIAJIANGZHUAN1: MOVP3,0F8H 。判斷二層的停止按鍵是否按下 。判斷一層的停止按鍵是否按下 。50MSMOVIE,82HSETB TR0MOVTCOUNT,4CLR F0MOV20H,0MOVR0,30HMOVR1,30QING: MOVR0,00HINCR0DJNZ R1,QING 。初始化。 程序設(shè)計(jì)此單片機(jī)模擬電梯用綠色發(fā)光二極管組成的箭頭來(lái)指示電梯當(dāng)前是處于上升狀態(tài)還是下降狀態(tài),用數(shù)碼管顯示當(dāng)前是處于哪一層,用紅色發(fā)光二極管指示,若沒(méi)有人按下停止按鍵,它就以每層2秒的速度一直上下運(yùn)行,若有人按下某一層的停止按鍵,它就會(huì)在相應(yīng)的那一層停止4秒鐘,并伴有開(kāi)門(mén)和關(guān)門(mén)的聲音提示。運(yùn)城學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文第 14 –頁(yè) 共 33 頁(yè) 流程圖設(shè)計(jì) 圖 主程序流程圖初始化按鍵查詢1 層按鍵按下2 層按鍵按下5 層按鍵按下6 層按鍵按下3 層按鍵按下7 層按鍵按下4 層按鍵按下8 層按鍵按下對(duì)應(yīng)中斷程序模擬電梯控制系統(tǒng)設(shè)計(jì)第 15 –頁(yè) 共 33 頁(yè) 該圖為電梯上升時(shí)的流程,任意按鍵按下時(shí)則進(jìn)入相應(yīng)的中斷程序,否則一直進(jìn)行 1 到 8 層按鍵的循環(huán)檢測(cè)。(5) 對(duì)程序進(jìn)行匯編、調(diào)試和修改。(3) 存儲(chǔ)器資源分配,如各程序段的存放地址、數(shù)據(jù)區(qū)地址、工作單元分配等。(2) 把復(fù)雜問(wèn)題分解為若干個(gè)模塊,確定各模塊的處理方法,畫(huà)出程序流程圖。匯編語(yǔ)言源程序中的每條語(yǔ)句可以有多項(xiàng)構(gòu)成,其格式如下:[標(biāo)號(hào)]:操作碼助記符 [第一操作數(shù)] [,第二操作數(shù)] [,第三操作數(shù)] [;注釋] 其中,帶方括號(hào)[ ]的部分為可選項(xiàng)。匯編語(yǔ)言的特點(diǎn)是每一條指令都給出了助記符。 設(shè)計(jì)電路及連線 圖 電路連接圖 模擬電梯控制系統(tǒng)設(shè)計(jì)第 13 –頁(yè) 共 33 頁(yè) 第三章 軟件設(shè)計(jì) 匯編語(yǔ)言簡(jiǎn)介匯編語(yǔ)言是單片機(jī)程序設(shè)計(jì)語(yǔ)言的重要形式,也是當(dāng)今單片機(jī)開(kāi)發(fā)人員進(jìn)行程序開(kāi)發(fā)最常用的語(yǔ)言形式。使用時(shí)將 ISP 下載線一端與 PC 并口相連接,一端與 ISP 接口相連,使用 ISP 下載軟件即可實(shí)現(xiàn)MCU 在線編程。ISP 為在線編程接口,J2 為標(biāo)準(zhǔn) 10P JTAG 下載接口。由于 XTAL2 邏輯電平不是 TTL 的,所以還要接一個(gè)上拉電阻。C1 和 C2 可在 20100PF 之間取值,一般情況取 30PF。MCS51 單片機(jī)在通常應(yīng)用情況下,使用振蕩頻率為 6MHZ 的石英晶體,而 12MHZ 頻率的晶體主要是在高速串行通信情況下才使用,在這里我用的是 12MHZ 石英晶體。在MCS51 單片機(jī)一般常用內(nèi)部時(shí)鐘方式,也就是在 XTAL1 和 XTAL2 之間連接晶體振蕩器與電容構(gòu)成穩(wěn)定的自激振蕩器,晶體和電容決定了單片機(jī)的工作時(shí)間精度為 1 微秒。51 單片機(jī)的時(shí)鐘產(chǎn)生方式有兩種,分別為:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。石英晶體振蕩和陶瓷振蕩均可采用。 振蕩器電路模塊MCS51 單片機(jī)內(nèi)部的振蕩電路是一個(gè)增益反相放大器,引線 XTAL1和 XTAL2 分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來(lái)自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。在應(yīng)用系統(tǒng)中,有些外圍芯片也需要復(fù)位。MCS51 單片機(jī)通常采用上電自動(dòng)復(fù)位和按鍵復(fù)位兩種方式。 圖 LED 數(shù)碼管 復(fù)位開(kāi)關(guān)模塊MCS51 單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1” 。以本設(shè)計(jì)共陰式為例,如把陰極接地,在相應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。因?yàn)椴煌?lèi)型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。7 段 LED 數(shù)碼管,則在一定形狀的絕緣材料上,利用單只 LED 組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來(lái)顯示出 09 的數(shù)字。XTAL2:振蕩器反相放大器的輸出端。Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程電壓 Vpp。需注意的是:如果加密位 LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 EA 端狀態(tài)。運(yùn)城學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文第 10 –頁(yè) 共 33 頁(yè)EA/VPP:外部訪問(wèn)允許。/PSEN:程序存儲(chǔ)允許(/PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) AT89S51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。該位置位后,只有一條 MOVX 和 MOVC 指令 ALE 才會(huì)被激活。對(duì) Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(/PROG) 。即使不訪問(wèn)外部存儲(chǔ)器,ALE 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。DISRTO 位缺省為 RESET輸出高電平打開(kāi)狀態(tài)。當(dāng)振蕩器工作時(shí),RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。作輸入端時(shí),被外部拉低的 P3 口將用作上拉電阻輸出電流。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門(mén)電路。Flash 編程或校驗(yàn)時(shí),P2 亦接收高位地址和其它控制信號(hào)?! ≡谠L問(wèn)外部程序存儲(chǔ)器或 16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR 指令)時(shí),P2 口送出高 8 位地址數(shù)據(jù)。 表 P1 端口引腳的第二功能端口引腳 第二功能 MOSI(用于 ISP 編程) MISO(用于 ISP 編程) SCK (用于 ISP 編程)P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 的輸出緩模擬電梯控制系統(tǒng)設(shè)計(jì)第 9 –頁(yè) 共 33 頁(yè)沖可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門(mén)電路。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。 P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的 8 位雙向 I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門(mén)電路。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線同時(shí)轉(zhuǎn)換成地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。 P0 口:P0 口是一組 8 位漏極開(kāi)路型雙向 I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。 雙數(shù)據(jù)寄存器指針引腳功能說(shuō)明 VCC:電源電壓。 軟件設(shè)置空閑和省電功能 3 級(jí)加密位 低功耗空閑和省電模式 128x8bit 內(nèi)部 RAM 時(shí)鐘頻率 033MHz 工作電壓 4k 可反復(fù)擦寫(xiě)(1000 次)ISP Flash ROM主要功能性能如表 所示: 表 AT89S51 芯片的主要功能掉電模式凍結(jié)振蕩器而保存 RAM 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。此外,AT89S51 設(shè)計(jì)和配置了振蕩頻率可為 0Hz 并可通過(guò)軟件設(shè)置省電模式。AT89S51 是一個(gè)低功耗,高性能 CMOS 8 位單片機(jī),片內(nèi)含 4k Bytes ISP(Insystem prog