![單片機課程設(shè)計-可編程序控制器_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/28/dc696bd5-1c3d-43a4-b1f8-9291bfc2f936/dc696bd5-1c3d-43a4-b1f8-9291bfc2f9361.gif)
![單片機課程設(shè)計-可編程序控制器_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/28/dc696bd5-1c3d-43a4-b1f8-9291bfc2f936/dc696bd5-1c3d-43a4-b1f8-9291bfc2f9362.gif)
![單片機課程設(shè)計-可編程序控制器_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/28/dc696bd5-1c3d-43a4-b1f8-9291bfc2f936/dc696bd5-1c3d-43a4-b1f8-9291bfc2f9363.gif)
![單片機課程設(shè)計-可編程序控制器_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/28/dc696bd5-1c3d-43a4-b1f8-9291bfc2f936/dc696bd5-1c3d-43a4-b1f8-9291bfc2f9364.gif)
![單片機課程設(shè)計-可編程序控制器_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/28/dc696bd5-1c3d-43a4-b1f8-9291bfc2f936/dc696bd5-1c3d-43a4-b1f8-9291bfc2f9365.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、設(shè)計題目: 可編程序控制器 一,順序控制器主要功能 1, 19260屏顯示畫面待機界面 主菜單界杭州500中文控制器 1 程序編程 5 技術(shù)支持設(shè)定計數(shù) 2000米 2 系統(tǒng)設(shè)置 執(zhí)行數(shù)值 1080米 3 手動脈沖 正在運行程序 34步 4 手動I/O 編程單界 脈沖手動輸出000 輸出指令 開Y0 脈沖 X:-0000 Y:+0000001 延遲指令 00230 Z:-0000002 設(shè)定計數(shù) 00150 速度F X:038 Y:035003 輸出指令 關(guān)Y0 Z:028 輸入輸出手動I/O 技術(shù)支持X0o,X1o,X2o,X3o,X4o,X5o, 電話6o,X7o
2、,X8o,X9o,X10o,X11o, 聯(lián)系人:薛工Y0o,Y1o,Y2o,Y3o,Y4o,Y5o, 地址:杭州濱江高新開發(fā)區(qū)Y6o,Y7o,Y8o,Y9o,Y10o,Y11o, QQ:2.程序名稱電機方向設(shè)定X,Y,Z,:+正方向,-反方向。 電機運行速度F: 000三位。 2.1.1、啟動:按“啟動”鍵后,順序控制器依序執(zhí)行用戶程序中的每一程序步,當(dāng)被執(zhí)行的程序步的條件(時間條件或輸入條件)滿足時,轉(zhuǎn)至下一程序步執(zhí)行,直至結(jié)束。 2、復(fù)位:按“復(fù)位”鍵后,順序控制器終止執(zhí)行用戶程序,處于初始待命狀態(tài),顯示待命提示符。 2.1.2可編程順序控制器要求1、按下模式鍵,進入編程狀態(tài)。2、從鍵盤輸
3、入步序號,數(shù)碼管顯示對應(yīng)的用戶程序內(nèi)容。3、按下保存鍵,可將鍵盤輸入的信息進行保存。4、按下next鍵,可對下一步程序進行修改。5、按下last鍵,可對上一步程序進行修改。6、再按下模式鍵,可進入運行狀態(tài)。2.2控制器主要指標(biāo) (1)采用AT89S51系列單片機控制(2)輸出控制信號:12點 (3)輸入條件信號:12點(4)程序步容量:100步(5)程序步定時范圍:099秒2.3控制碼的規(guī)定 00空操作 01時間條件 10輸入條件 11結(jié)束2.4給定參數(shù)的規(guī)定 時間參數(shù)099秒 輸入?yún)?shù)8位3.設(shè)計構(gòu)思3.1用戶程序介紹用戶程序即控制字序列由用戶預(yù)先輸入程序存儲區(qū),控制器運行時,根據(jù)用戶程序各
4、控制字的規(guī)定條件條件為時間條件或輸入條件順序逐步推進控制過程。 1執(zhí)行時間條件控制字時,按照控制字給定的輸出參數(shù)更新控制信號,啟動定時功能,以給定的時間參數(shù)開始倒計時,顯示器顯示當(dāng)前步序號 099 和倒計時值 099 。若定時時間到則轉(zhuǎn)入下一程序步。2執(zhí)行輸入條件控制字時,按照控制字給定的輸出參數(shù)更新輸出控制信號,顯示器顯示當(dāng)前步序號 099 和給定輸入條件 0FFH ,同時以給定的輸入條件與實際的輸入信號比較,若一致則轉(zhuǎn)入下一程序步,否則等待。3執(zhí)行空操作控制字時,不進行任何操作而直接轉(zhuǎn)入下一程序步。4執(zhí)行結(jié)束控制字時,終止控制進程,等待新的啟動命令 即初始待命 。34電路設(shè)計說明、電原理圖
5、 單片機選用AT89S51,它與8051系列單片機全兼容,但其內(nèi)部帶有4KB的FLASH ROM,設(shè)計時無需外接程序存儲器,為設(shè)計和調(diào)試帶來極大的方便。 5程序設(shè)計構(gòu)思說明:程序粗框圖、細框圖程序流程圖粗框圖開始初始化調(diào)用顯示子程序啟動動?取用戶指令N結(jié)束?YYN空操作作?N輸出更新時間條件件?Y定時初始化調(diào)用顯示子程序定時到?YYN輸入一致致?NYN調(diào)用顯示子程序調(diào)整指針定時中斷重裝定時初值倒計時單元內(nèi)容減11S時間到?更新顯緩返回NY細框圖初始化開始步序單元清08255初始化向顯緩單元送待命提示符結(jié)束取用戶指令開始取用戶指令第一字節(jié)保存第一字節(jié)取用戶指令第二字節(jié)保存第二字節(jié)屏蔽第一字節(jié)低6
6、位結(jié)束定時初始化開始安裝定時初始值倒計時單元賦值設(shè)置TMOD寄存器啟動定時設(shè)置中斷允許寄存器結(jié)束定時中斷開始重裝定時初值倒計時單元內(nèi)容減11S時間到?調(diào)用拆送程序更新顯緩返回NY保護現(xiàn)場恢復(fù)現(xiàn)場拆送程序開始 取條件參數(shù)高4位、低4位分離分別送相應(yīng)顯緩單元取步序單元內(nèi)容結(jié)束高4位、低4位分離分別送相應(yīng)顯緩單元6可編程序控制器使用說明PLC的基本構(gòu)成從結(jié)構(gòu)上分,PLC分為固定式和組合式(模塊式)兩種。固定式PLC包括CPU板、I/O板、顯示面板、內(nèi)存塊、電源等,這些元素組合成一個不可拆卸的整體。模塊式PLC包括CPU模塊、I/O模塊、內(nèi)存、電源模塊、底板或機架,這些模塊可以按照一定規(guī)則組合配置。
7、PLC實質(zhì)是一種專用于工業(yè)控制的計算機,其硬件結(jié)構(gòu)基本上與微型計算機相同,基本構(gòu)成為: 電源 PLC的電源用于為PLC各模塊的集成電路提供工作電源,在整個系統(tǒng)中起著十分重要的作用。如果沒有一個良好的、可靠的電源系統(tǒng)是無法正常工作的,因此PLC的制造商對電源的設(shè)計和制造也十分重視。一般交流電壓波動在+10%(+15%)范圍內(nèi),可以不采取其它措施而將PLC直接連接到交流電網(wǎng)上去。同時,有的還為輸入電路提供24V的工作電源。電源輸入類型有:交流電源(220VAC或110VAC),直流電源(常用的為24VDC)。 中央處理單元(CPU) 中央處理單元(CPU)是PLC的控制中樞,是PLC的核心起神經(jīng)中
8、樞的作用,每套PLC至少有一個CPU。它按照PLC系統(tǒng)程序賦予的功能接收并存儲從編程器鍵入的用戶程序和數(shù)據(jù);檢查電源、存儲器、I/O以及警戒定時器的狀態(tài),并能診斷用戶程序中的語法錯誤。當(dāng)PLC投入運行時,首先它以掃描的方式接收現(xiàn)場各輸入裝置的狀態(tài)和數(shù)據(jù),并分別存入I/O映象區(qū),然后從用戶程序存儲器中逐條讀取用戶程序,經(jīng)過命令解釋后按指令的規(guī)定執(zhí)行邏輯或算數(shù)運算的結(jié)果送入I/O映象區(qū)或數(shù)據(jù)寄存器內(nèi)。等所有的用戶程序執(zhí)行完畢之后,最后將I/O映象區(qū)的各輸出狀態(tài)或輸出寄存器內(nèi)的數(shù)據(jù)傳送到相應(yīng)的輸出裝置,如此循環(huán)運行,直到停止運行。 為了進一步提高PLC的可靠性,近年來對大型PLC還采用雙CPU構(gòu)成冗
9、余系統(tǒng),或采用三CPU的表決式系統(tǒng)。這樣,即使某個CPU出現(xiàn)故障,整個系統(tǒng)仍能正常運行。 CPU速度和內(nèi)存容量是PLC的重要參數(shù),它們決定著PLC的工作速度,IO數(shù)量及軟件容量等,因此限制著控制規(guī)模。 存儲器 存放系統(tǒng)軟件的存儲器稱為系統(tǒng)程序存儲器。 存放應(yīng)用軟件的存儲器稱為用戶程序存儲器。 輸入輸出接口電路(I/O模塊) PLC與電氣回路的接口,是通過輸入輸出部分(I/O)完成的。I/O模塊集成了PLC的I/O電路,其輸入暫存器反映輸入信號狀態(tài),輸出點反映輸出鎖存器狀態(tài)。輸入模塊將電信號變換成數(shù)字信號進入PLC系統(tǒng),輸出模塊相反。I/O分為開關(guān)量輸入(DI),開關(guān)量輸出(DO),模擬量輸入(
10、AI),模擬量輸出(AO)等模塊。 底板或機架 大多數(shù)模塊式PLC使用底板或機架,其作用是:電氣上,實現(xiàn)各模塊間的聯(lián)系,使CPU能訪問底板上的所有模塊,機械上,實現(xiàn)各模塊間的連接,使各模塊構(gòu)成一個整體。 功能模塊 如計數(shù)、定位等功能模塊 編程設(shè)備 編程器是PLC開發(fā)應(yīng)用、監(jiān)測運行、檢查維護不可缺少的器件,用于編程、對系統(tǒng)作一些設(shè)定、監(jiān)控PLC及PLC所控制的系統(tǒng)的工作狀況,但它不直接參與現(xiàn)場控制運行。小編程器PLC一般有手持型編程器,目前一般由計算機(運行編程軟件)充當(dāng)編程器。 人機界面 最簡單的人機界面是指示燈和按鈕,液晶屏(或觸摸屏)式的一體式操作員終端應(yīng)用越來越廣泛,由計算機(運行組態(tài)軟
11、件)充當(dāng)人機界面非常普及。 7程序清單及注釋7.1 用戶程序 ORG 0000H;復(fù)位入口LJMP MAINORG 000BH;定時器0中斷服務(wù)子程序入口(進行時鐘倒計時) LJMP IT0PORG 0030HMAIN: MOV SP,#6FH;總初始化。設(shè)定棧底指針 LCALL D30MS;稍加延時(30mS),等待各芯片均上電復(fù)位結(jié)束 SETB IT0;設(shè)INT0中斷信號輸入下降沿有效 SETB EA;開中斷總允許 SETB EX0;開外部INT0中斷允許 MOV A,#89H;數(shù)碼管顯示與矩陣鍵盤接口8255A(U3)初始化 MOV DPTR,#0FEFFH;8255A(U3) MOVX
12、 DPTR,A;A、B口輸出驅(qū)動字段、字位,C口輸入.3 MOV A,#8BH;LED顯示、開關(guān)、按鍵接口8255A(U5)初始化 MOV DPTR,#0FDFFH;8255A(U5) MOVX DPTR,A;A口輸出驅(qū)L8-15,B口輸入按鍵PB0-7,C口輸入電平開關(guān)SW0-7 MOV 30H,#0BH;30H-37H為顯示緩沖單元,初始置 B MOV 31H,#0BH MOV 32H,#12H MOV 33H,#12H MOV 34H,#0BH MOV 35H,#0BH MOV 36H,#12H MOV 37H,#12H MOV 38H,#00H;38H單元為倒計時200uS計數(shù)單元,清
13、0 MOV 39H,#00H;39H單元為10mS計數(shù)單元,清0 MOV 3AH,#00H;倒計時單元初值 MOV 3BH,#00H;步序單元初值 MOV TMOD,#02H ;初始化T0為定時方式2,TM=121/11.0592MHZ=1.085069444 S MOV TL0,#48H;置T0計數(shù)初值。00H-48H=184,184TM200uS(199.6527778S) MOV TH0,#48H MOV R2,#00H ;讀取用戶程序地址偏移量LOOP: LCALL DISP ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動4位數(shù)碼顯示器一遍,約8mS) LJMP PB ;調(diào)用獨立按鍵PB0-7的檢測
14、START0: INC R2 ;當(dāng)為空操作時需跳過用戶指令第三個字節(jié)START: CLR TR0 ;關(guān)閉T0定時工作 MOV A,R2 ;將用戶程序地址偏移量給A MOV DPTR,#HHH ;將用戶程序首地址賦給DPTR MOVC A,A+DPTR ;將當(dāng)前需要取的用戶首地址給A MOV 3BH,A ;將用戶程序的步序送個3BH(拆字子程序中的) INC R2 ;將用戶程序地址偏移量增1 MOV A,R2 ;將用戶程序地址偏移量給A MOVC A,A+DPTR ;將當(dāng)前需要取的用戶程序第二個字節(jié)給A MOV R4,A ;將用戶程序第二個字節(jié)保存于R4中 INC R2 ;將用戶程序地址偏移量增
15、1 ANL A,#0C0H ;取出用戶程序第二個字節(jié)頭兩位 JZ START0 ;當(dāng)為空操作時,跳轉(zhuǎn)到下一步 ORL A,#3FH ;與00111111B相或 CPL A ;將A值求反 JZ MAIN ;當(dāng)為結(jié)束符時,跳轉(zhuǎn)到主程序待命CJNE A,#80H,INPUT ;若A不等于80H,則跳轉(zhuǎn)到輸入條件,若相等則為時間條件(繼續(xù)往下運行)MOV A,R4 ;將用戶程序第二個字節(jié)送往AANL A,#3FH ;取出用戶程序第二個字節(jié)后六位MOV P1,A ;送往P1口顯示MOV A,R2 ;將用戶程序地址偏移量賦給A MOVC A,A+DPTR ;取用戶程序第三個字節(jié)INC R2 ;用戶程序地址
16、偏移量增1MOV 3AH,A ;將倒計時內(nèi)容送往3AH(拆字子程序) SETB ET0 ;開T0中斷允許SETB TR0;啟動T0定時工作TIME: LCALL CZ ;調(diào)用顯示內(nèi)容送顯緩子程序(拆字子程序) LCALL DISP ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動4位數(shù)碼顯示器一遍,約8mS) MOV A,3AH ;將倒計時內(nèi)容送往A CJNE A,#00H,TIME ;判斷倒計時是否到0,未到0則跳到TIME繼續(xù)循環(huán) LJMP START ;若為0,則跳轉(zhuǎn)到START,繼續(xù)執(zhí)行下一步INPUT: MOV A,R4 ;將用戶程序第二個字節(jié)送往A ANL A,#3FH ;取用戶程序第二個字節(jié)后六
17、位 MOV P1,A ;將后六位輸出到P1顯示 MOV A,R2 ;將用戶程序地址偏移量送給A MOVC A,A+DPTR ;取用戶程序第三個字節(jié) MOV 3AH,A ;將第三個字節(jié)的內(nèi)容送往3AH INC R2 ;將用戶程序地址偏移量增1CHECK: LCALL CZ ;調(diào)用顯示內(nèi)容送顯緩子程序(拆字子程序)(將時分秒送右6位顯示緩沖單元) LCALL DISP ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動8位數(shù)碼顯示器一遍,約8mS) MOV DPTR,#0FDFEH;電平開關(guān)SW0-7檢測 MOVX A,DPTR;輸入SW0-7電平 CJNE A,3AH,CHECK ;如果輸入電平值不等于3AH,繼
18、續(xù)檢測SW0-7的電平開關(guān) LJMP START ;如果相等,則跳到START,繼續(xù)下一步 PB: MOV DPTR,#0FDFDH;獨立按鍵PB0-7檢測 MOVX A,DPTR;輸入PB0-7電平 CJNE A,#0EFH,LOOP ;不相等就跳到LOOP繼續(xù)循環(huán) LCALL D30MS ;延時30MS CJNE A,#0EFH,LOOP ;不相等就跳到LOOP繼續(xù)循環(huán) SJMP START ;跳轉(zhuǎn)到讀取用戶程序 CZ: MOV R0,#3AH ;顯示內(nèi)容送顯緩子程序(拆字子程序)MOV R1,#30H ;置顯示緩沖單元首地址(對應(yīng)于最右位) CZ1: MOV A,R0 ;取當(dāng)前數(shù)據(jù)單元B
19、CD碼ANL A,#0FH ;保留低4位(個位)MOV R1,A ;送顯緩當(dāng)前個位單元INC R1 ;指向顯緩當(dāng)前十位單元MOV A,R0 ;再取當(dāng)前數(shù)據(jù)單元BCD碼ANL A,#0F0H ;保留高4位(十位)SWAP A ;交換到低4位MOV R1,A ;送顯緩當(dāng)前十位單元INC R1 ;指向顯緩下一個個位單元,中間隔兩個數(shù)碼管INC R1INC R1INC R0 ;指向下一個數(shù)據(jù)單元CJNE R0,#3CH,CZ1;未完繼續(xù)RET ;子程序返回DISP: MOV R0,#30H ;顯示更新子程序。置顯示緩沖單元首地址(對應(yīng)最右位顯示內(nèi)容單元) MOV R3,#01H ;字位碼初值(從最右位
20、起) MOV A,R3 ;將字位碼初值賦給ADISP1: MOV DPTR,#0FEFDH ; 8255-B口(字位碼輸出口) MOVX DPTR,A ; 輸出當(dāng)前字位碼 MOV A,R0 ; 取當(dāng)前位顯示數(shù)據(jù)碼 ADD A,#TAB-NEXTPC ; 加TAB與NEXTPC差址 MOVC A,A+PC ; 查表得相應(yīng)字段碼NEXTPC: MOV DPTR,#0FEFCH ; 8255-A口(字段碼輸出口) MOVX DPTR,A ; 輸出字段碼 LCALL D1MS ; 保持顯示1毫秒 INC R0 ; 指向下一顯示緩沖單元 MOV A,R3 ; 取出字位碼 JB ACC.7,DISP2 ;
21、 判已顯示到最左位否 RL A ; 未完,字位碼左移1位 MOV R3,A ; 回存新字位碼 LJMP DISP1 ; 轉(zhuǎn)下一位的顯示驅(qū)動DISP2: RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;顯示字段碼表。09 DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,00H,0FFH ;AF,-,全亮,全滅IT0P: PUSH ACC ;定時器0服務(wù)子程序。保護現(xiàn)場 PUSH PSW INC 38H ;每200uS加1 MOV A,38H CJNE A,#50,DONE ;滿10mS? MOV 38H,#0;
22、200uS計數(shù)單元清0 INC 39H ;每10mS加1 MOV A,39H CJNE A,#100,DONE ;滿1S? MOV 39H,#0 ;10mS計數(shù)單元清0 MOV A,3AH ;秒單元(按BCD碼)減1 ADD A,#99H DA A MOV 3AH,ADONE: POP PSW ;恢復(fù)現(xiàn)場 POP ACC RETI ;中斷返回D30MS: MOV R6,#46;軟件延時30mS子程序D30MS1: MOV R5,#200 ;1+(1+3*200+2)*46+2*12/11059.2KHZ=30.1mSD30MS0: NOP DJNZ R5,D30MS0 DJNZ R6,D30M
23、S1 RETD1MS: MOV R7,#115 ;軟件延時1mS子程序D1MS1: NOP;(1+8*115+2)*12/11059.2=1.0015mS NOP NOPNOPNOPNOPDJNZ R7,D1MS1RET HHH: DB 01H,00H,00H ;步序:01,空操作 DB 02H,60H,12H ;步序:02,控制碼:01(時間條件),輸出:100000B,時間參數(shù):12s DB 03H,0A0H,11H ;步序:03,控制碼:10 (輸入條件),輸出:000010B,輸入?yún)?shù):11110001B DB 04H,61H,08H ;步序:04,控制碼:01(時間條件),輸出:10
24、0000B,時間參數(shù):08 s DB 05H,0A1H,03H ;步序:05,控制碼:10(輸入條件),輸出:010000B,輸入?yún)?shù):11110010B DB 06H,0A2H,02H ;步序:06,控制碼:10(輸入條件),輸出:100000B,輸入?yún)?shù):11110100B DB 07H,62H,06H ;步序:07,控制碼:01(時間條件),輸出:111111B,時間參數(shù):7s DB 08H,60H,04H ;步序:08,控制碼:01(時間條件),輸出:100000B,時間參數(shù):11s DB 09H,0F0H,00H ;步序:09,控制碼:11,結(jié)束 END7.2 可編程程序ORG 00
25、00H;復(fù)位入口LJMP MAIN ORG 000BH;定時器0中斷服務(wù)子程序入口(進行時鐘倒計時) LJMP IT0PORG 0030H MAIN: MOV SP,#6FH;總初始化。設(shè)定棧底指針 LCALL D30MS;稍加延時(30mS),等待各芯片均上電復(fù)位結(jié)束 SETB IT0;設(shè)INT0中斷信號輸入下降沿有效 SETB EA;開中斷總允許 SETB EX0;開外部INT0中斷允許 LCALL hhh ;初始用戶程序儲存 MOV A,#89H;數(shù)碼管顯示與矩陣鍵盤接口8255A(U3)初始化 MOV DPTR,#0FEFFH;8255A(U3) MOVX DPTR,A;A、B口輸出驅(qū)
26、動字段、字位,C口輸入 MOV A,#8BH;LED顯示、開關(guān)、按鍵接口8255A(U5)初始化 MOV DPTR,#0FDFFH;8255A(U5) MOVX DPTR,A;A口輸出驅(qū)L8-15,B口輸入按鍵PB0-7,C口輸入電平開關(guān)SW0-7hyl: MOV P1,#0FFH;熄L0-7指示燈 MOV 30H,#0BH;30H-37H為顯示緩沖單元,初始置B MOV 31H,#0BH MOV 32H,#12H MOV 33H,#12H MOV 34H,#0BH MOV 35H,#0BH MOV 36H,#12H MOV 37H,#12H MOV 38H,#00H;38H單元為倒計時200
27、uS計數(shù)單元,清0 MOV 39H,#00H;39H單元為10mS計數(shù)單元,清0 MOV 21H,#22H ;用戶輸入數(shù)據(jù)暫存地址(3個) MOV 3AH,#00H;倒計時單元初值 MOV 3BH,#00H ;控制指令初值 MOV 3CH,#00H;步序單元初值 MOV 3DH,#00H ;儲存所按下按鍵的掃描電平值 MOV 3EH,#00H ;儲存所按下按鍵的鍵號 MOV 3FH,#40H ;儲存用戶程序起始地址:40H CLR (20H).0 ;編程/運行狀態(tài)切換 MOV TMOD,#02H ;初始化T0為定時方式2,TM=121/11.0592MHZ=1.085069444 S MOV
28、TL0,#48H;置T0計數(shù)初值。00H-48H=184,184TM200uS(199.6527778S) MOV TH0,#48H MOV 28H,#35H ;顯示緩存單元起始地址 MOV R2,#02H ;用戶程序每輸入兩個字符存儲一次LOOP: LCALL DISP ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動4位數(shù)碼顯示器一遍,約8mS) LCALL PB;調(diào)用獨立按鍵PB0-7的檢測 SJMP LOOPSTART0: INC 3FH ;空操作時須跳過用戶程序的第三個字節(jié)START: CLR TR0 ;關(guān)閉T0定時工作 MOV 37H,#12H ;滅數(shù)碼管最高位 MOV R0,3FH ; MOV
29、A,R0 MOV 3CH,A INC 3FH MOV R0,3FH MOV A,R0 MOV R4,A INC 3FH ANL A,#0C0H JZ START0 ;當(dāng)為空操作時,跳轉(zhuǎn)到下一步 ORL A,#3FH CPL A JZ HYL ;當(dāng)為結(jié)束符時,跳轉(zhuǎn)到主程序待命 CJNE A,#80H,IP ;當(dāng)為輸入條件控制室,跳轉(zhuǎn)到INPUT MOV A,R4 ;將輸出參數(shù)送往P1顯示 ANL A,#3FH CPL A MOV P1,A MOV R0,3FH MOV A,R0 INC 3FH MOV 3AH,A SETB ET0 ;開T0中斷允許 SETB TR0;啟動T0定時工作TIME:
30、LCALL CZ ;調(diào)用顯示內(nèi)容送顯緩子程序(拆字子程序) LCALL DISP0 ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動4位數(shù)碼顯示器一遍,約8mS) MOV A,3AH CJNE A,#00H,TIME LJMP START IP: MOV A,R4 ;將輸出參數(shù)送往P1顯示 ANL A,#3FH CPL A MOV P1,A MOV R0,3FH MOV A,R0 MOV 3AH,A INC 3FHCHECK: LCALL CZ ;調(diào)用顯示內(nèi)容送顯緩子程序(拆字子程序)(將時分秒送右6位顯示緩沖單元) LCALL DISP0 ;調(diào)用顯示更新子程序 (動態(tài)驅(qū)動4位數(shù)碼顯示器一遍,約8mS) MO
31、V DPTR,#0FDFEH;電平開關(guān)SW0-7檢測 MOVX A,DPTR;輸入SW0-7電平 CJNE A,3AH,CHECK LJMP START PB: MOV DPTR,#0FDFDH;獨立按鍵PB0-7檢測 MOVX A,DPTR;輸入PB0-7電平 CJNE A,#0FEH,RT2LCALL D30MS MOVX A,DPTR CJNE A,#0FEH,RT2 LCALL DJSF2 CPL (20H).0MOV 3FH,#40HJNB (20H).0,STARTMOV 35H,#12HLJMP KEYRT2:RET KEY: MOV 37H,#0BH LCALL DISP LC
32、ALL PBLCALL PB3 MOV A,#81H;鍵盤掃描子程序(反轉(zhuǎn)法)MOV DPTR,#0FEFFH MOVX DPTR,A ;C口先初始化為高4位輸出方式驅(qū)鍵行線、低4位輸入方式鍵列線 MOV DPTR,#0FEFEHMOV A,#00H;鍵盤行線(高4位)輸出驅(qū)動全0MOVX DPTR,AMOVX A,DPTR;輸入鍵盤列線電平(低4位)存3DH單元MOV 3DH,AMOV A,#88H;C口改初始化為高4位輸入驅(qū)鍵行線、低4位輸出驅(qū)鍵列線MOV DPTR,#0FEFFH MOVX DPTR,A MOV DPTR,#0FEFEHMOV A,#00H;鍵盤列線(低4位)輸出驅(qū)動全0
33、 MOVX DPTR,AMOVX A,DPTR;輸入鍵盤行線電平(高4位)在A中ANL 3DH,#0FH;列線電平值保留所在的低4位ANL A,#0F0H;行線電平值保留所在的高4位ORL 3DH,A;兩次輸入的列線電平值、行線電平值組合成8位行列碼CJNE A,#0FFH,KEYCONTI:MOV 3EH,#00H;置鍵號初值為00HMOV R3,#10H;設(shè)定最多進行16次的鍵碼查表MOV DPTR,#KEY_N;鍵碼表首地址KY: MOV A,#00H;A清0MOVC A,A+DPTR;查表讀取鍵碼表中當(dāng)前位置鍵碼CJNE A,3DH,NK;與8位行列碼比較,不同則轉(zhuǎn)NK查下一個SJMP
34、 KN;相同則轉(zhuǎn)KN根據(jù)已獲取的鍵號進行相應(yīng)處理 NK: INC 3EH;鍵號加1 INC DPTR;指向鍵值表下一個位置DJNZ R3,KY ;未查完,繼續(xù)LJMP KEY;查完,說明無按鍵或出現(xiàn)異常行列碼則返回 KN: MOV A,3EH;根據(jù)查表獲得的鍵號00H0FH之一轉(zhuǎn)向相應(yīng)的處理 MOV R0,21H DJNZ R2,NEXT MOV R2,#02H ORL A,R0 MOV R0,A INC 21H NEXT: MOV A,3EH MOV R1,28H MOV R1,A SWAP AMOV R0,21H MOV R0,A MOV A,28HCJNE A,#34H,NEXT3 LC
35、ALL DISPCXNEXT3:CJNE R1,#33H,NEXT2 MOV 32H,#12H MOV 31H,#12H MOV 30H,#12H NEXT2: DEC 28H MOV R1,28H CJNE R1,#2FH,RT2 MOV 28H,#35HMOV 21H,#22HLJMP PB2RT1: LJMP KEYDISPCX:MOV A,22H DEC A MOV B,#03H MUL AB ADD A,#40H MOV 26H,A ;保存需改變程序首地址 MOV R0,26H MOV 3CH,R0 INC R0 MOV 3BH,R0 INC R0 MOV 3AH,R0 LCALL CZ RETPB2: LCALL DISP ;保存用戶程序鍵 MOV DPTR,#0FDFDH;獨立按鍵PB0-7檢測 MOVX A,DPTR;輸入PB0-7電平 CJNE A,#0FDH,PB2 LCALL D30MS CJNE A,#0FDH,PB2 MOV 30H,#12H;30H-37H為顯示緩沖單元,初始全滅 MOV 31H,#12H MOV 32H,#12H MOV 33H,#12H MOV 34H,#1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聯(lián)合體施工合同協(xié)議書
- 行政單位租車協(xié)議
- 出資轉(zhuǎn)讓協(xié)議經(jīng)典
- 股份合作細節(jié)文書與權(quán)益分配方案
- 鋼材購銷合同格式
- 年度工作總結(jié)報告及未來規(guī)劃
- 物流企業(yè)信息化升級改造服務(wù)協(xié)議
- 文化藝術(shù)品展覽銷售協(xié)議
- 江蘇省房屋買賣合同
- 餐飲外賣食品安全免責(zé)協(xié)議
- 華中師范大學(xué)教育技術(shù)學(xué)碩士研究生培養(yǎng)方案
- 《商務(wù)溝通-策略、方法與案例》課件 第十章 基本商務(wù)溝通
- 項目重點難點分析及解決措施
- 河南省鄭州市外國語高中2025屆高考仿真卷英語試卷含解析
- 藻類、苔蘚植物與蕨類植物課件
- 挑戰(zhàn)杯-申報書范本
- 腫瘤科疼痛一病一品
- 藥品類體外診斷試劑專項培訓(xùn)課件
- 2024年1月浙江省高考英語真題試卷含答案
- 電子商務(wù)視覺設(shè)計(第2版)完整全套教學(xué)課件
- 2024-2025學(xué)年人教版生物八年級上冊期末綜合測試卷
評論
0/150
提交評論