亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 8.asm

?? 51單片機應用實例
?? ASM
字號:
;*************************************
;*                                   *
;*      自 動 往 返 小 汽 車         *
;*          2001年9月              *
;*************************************
;
;
;
;*************************************
;*                                   *
;*      主程序和中斷程序入口         *
;*                                   *
;*************************************
;
		ORG     0000H			;程序執行起始地址
                LJMP    START	;跳至START
		ORG     0003H			;外中斷0入口
                LJMP    INTEX0	;跳至INTEX0中斷服務程序
		ORG     000BH			;定時器T0中斷入口
                RETI				;中斷返回
                ORG     0013H			;外中斷1入口
                LJMP    INTEX1	;跳至INTEX1中斷服務程序
                ORG     001BH			;定時器T1中斷入口
                LJMP    INTT1	;跳至INTT1中斷服務程序
		ORG     0023H			;串口中斷入口
		RETI				;中斷返回
		ORG     002BH			;定時器T2中斷入口
		RETI				;中斷返回
;
;***************************
;*                         *
;*       初始化程序        *
;*                         *
;****************************
CLEARMEMIO:        MOV   R0,  #70H      ;清70H-76H顯示單元
                   MOV   R7,  #07H      ;循環次數
 ML0:              MOV   @R0, #00H      ;清0
                   INC   R0      	   ;下一地址
                   DJNZ  R7,  ML0       ;未完再循環
                   MOV   TMOD,#10H      	 ;T1為16位定時器
                   MOV   R4,#14H     	 ;1秒定時用(50毫秒20次)
                   MOV   TL1,#0B0H   	 ;50毫秒定時用初值
                   MOV   TH1,#3CH     	 ;
                   MOV     20H,#00H      	 ;清0操作
                   MOV     21H,#00H       ;
                   MOV     22H,#00H       ;
                   MOV     23H,#00H       ;
		   MOV	   24H,#00H      ;
                   CLR     30H            ;清停車標志
                   SETB    ET1            ;開T1中斷
                   SETB    EX1            ;開外中斷1
                   SETB    IT1            ;外中斷1采用邊沿觸發
                   SETB    IT0            ;外中斷0優先級為1(最高)
                   SETB    EX0            ;開外中斷0
                   SETB   EA       	     ;開總中斷允許
                   SETB   TR1        	 ;開啟定時器T1
                   RET            	    	;子程序返回
;
;*************************************
;*                                   *
;*	      主  程    序               *
;*                                   *
;*************************************
;
START:          LCALL   CLEARMEMIO      ;上電初始化
                SETB    P1.6    		   ;選擇7.5V輸出
                CLR     P1.7    		   ;選擇7.5V輸出
                SETB    P3.7    		   ;前進狀態
                CLR     P3.6    		   ;前進狀態
                CLR     P1.0    		   ;電機供電開始
MAIN:           LCALL   DISP    		   ;LED顯示一次
                LJMP	MAIN    		   ;轉MAIN循環
                NOP             		   ;PC值出錯處理
      	        NOP
	       	LJMP   	START    	   ;重新初始化
;
;*************************************
;*                                   *
;*外中斷0服務程序,用作跑道位置處理 *
;*   23H作跑道計數器                 *
;*************************************
INTEX0:       PUSH    ACC    		   ;堆棧保護
              PUSH    PSW    		   ;
              CLR     EX0    		   ;關中斷
              LCALL   DISP    		   ;LED顯示一次(延時抗干擾)
              JB     P3.2,IN0RET    	   ;P3.2為1退出(干擾)
              INC     23H    		   ;跑道計數器加1
              MOV     A,23H    		   ;數據入A
              CJNE    A,#06H,JUDGE1     ;不是第6道轉JUDGE1
              LCALL   STOP    		   ;是第6道,停車
              LJMP    IN0RET    		   ;轉中斷退出
JUDGE1:       CJNE    A,#03H,JUDGE2     ;不是第3道轉JUDGE2
              LCALL   STOPSLOW    	   ;是第3道,變慢車
              LJMP    IN0RET    		   ;轉中斷退出
JUDGE2:       CJNE    A,#04H,JUDGE3     ;不是第4道轉JUDGE3
              LCALL   FAST    		   ;是第4道,變快車
              LJMP    IN0RET    		   ;轉中斷退出
JUDGE3:       CJNE    A,#05H,IN0RET     ;不是第5道轉INORET退出
              LCALL   STOPSLOW    	   ;是第5道,變慢車
IN0RET:       CLR     IE0    		   ;清外中斷0中斷標志
              POP     PSW    		   ;恢復現場
              POP     ACC    		   ;
              LCALL   DL7MS    		   ;延時7毫秒(抗干擾)
              SETB    EX0    		   ;開外中斷0
              RETI    		   		   ;中斷返回
;
;************************************
;*          慢車控制子程序          *
;************************************
STOPSLOW:      CLR     P1.6    		   ;關7.5V電源
               CPL     P3.6    		   ;反向驅動(剎車)
               CPL     P3.7    		   ;反向驅動
               LCALL   DS50MS    	   ;剎車時間(可根據試車情況調整)
               LCALL   DS50MS    	   ;
               LCALL   DS50MS    	   ;
               CPL     P3.6    		   ;正向驅動
               CPL     P3.7    		   ;正向驅動
               SETB    P1.7    		   ;開4.3V電源
               RET    		   			;返回
;
;************************************
;*         快車控制子程序           *
;************************************
FAST:          CLR     P1.7    		   ; 關4.3V電源
               SETB    P1.6    		   ; 開7.5V電源
               RET    		  		   ;返回
;
;************************************
;*         停車控制程序             *
;************************************
STOP:         MOV    23H,#00H    	   ;跑道計數單元清0
              CPL     P3.6    		   ;反向驅動(剎車)
              CPL     P3.7    		   ;反向驅動(剎車)
              LCALL   DS50MS    		   ;剎車時間
              LCALL   DS50MS    		   ;剎車時間(可調整)
              SETB   P1.0    		   ;關電機電源
              SETB   PT1    		       ;定時器T1為高優先級
              LCALL   DS10S    		   ;停車10秒
              CLR     PT1    		   ;恢復T1為低優先級
              SETB    P1.6    		   ;開7.5V電源(高速)
              CLR     P1.7    		   ;關4.3V
              CLR     P1.0    		   ;電機電源開
              CPL     30H    		   ;停車點位置判斷標志取反
              JB      30H,STREN    	   ;為1(中途停車)轉STREN
              LCALL   CLR00    		   ;是終點,調復0程序
 STREN:       RET    		   			;返回
;
;*********************************
;*        計時清0程序           *
;*********************************
CLR00:           MOV   70H,#00H    		   ;計時單元清0
                 MOV   71H,#00H    		   ;計時單元清0
                 MOV   72H,#00H    		   ;計時單元清0
                 MOV   73H,#00H    		   ;計時單元清0
                 RET    		   			   ;返回
;
;*************************************
;*                                   *
;*   外中斷1程序,里程計數用        *
;*   20H、21H、22H、24H作計數器     *
;*************************************
INTEX1:          PUSH   ACC    		   	   ;堆棧保護
                 PUSH   PSW    		   	   ;
                 CLR    EX1    		   	   ;關外中斷1
                 INC    20H    		   	   ;圈加1
  LLLL:          MOV    A,20H    		   ;判斷是否滿6圈
                 CJNE   A,#06H,LLL    	   ;不滿6圈轉LLL退出
                 MOV    20H,#00H    		   ;滿6圈清0進位(6圈為1米)
                 INC    21H    		   	   ;上位加1
                 MOV    A,21H    		   ;判斷是否滿10
                 CJNE   A,#0AH,LLL    	   ;不滿10轉LLL
                 MOV    21H,#00H    		   ; 滿10清0進1位
                 INC    22H    		   	   ; 高位加1
                 MOV    A,22H    		   ; 判斷是否滿10
                 CJNE   A,#0AH,LLL    	   ; 不滿10轉LLL
                 MOV    22H,#00H    		   ; 滿10清0進1位
                 INC    24H    		  	   ; 高位加1
                 MOV    A,24H    		   ; 判斷是否滿10
                 CJNE   A,#0AH,LLL    	   ; 不滿10轉LLL
                 MOV    24H,#00H    		   ; 滿10清0
LLL:             MOV    74H,21H    		   ; 將里程數移入顯示單元(個位)
                 MOV    75H,22H    		   ; 將里程數移入顯示單元(十位)
                 MOV    76H,24H    		   ; 將里程數移入顯示單元(百位)
IN1RET:          POP    PSW    		   		;恢復堆棧
                 POP    ACC    		  		;
                 SETB   EX1    		   		;開外中斷1
                 RETI    		   			;中斷返回
;
;*************************************
;*           時間計時器程序           *
;*	     (T1定時中斷服務程序)      *
;*                                    *
;*************************************
INTT1:             PUSH  	ACC    		   ;堆棧保護
                   PUSH  	PSW    		   ;
                   MOV 	TL1,#0B0H      ;賦50毫秒定時初值
                   MOV 	TH1,#3CH    	   ;
                   DEC 	R4    		   ;減1
                   MOV 	A,R4    		   ;
                   JNZ 	RETT0    	   ;不為0轉RETT0
                   MOV 	R4,#14H    	   ;為0(1秒到)重賦初值
                   MOV 	R0,#71H    	   ;地址指向71H
                   ACALL 	ADD1    		   ;加1秒操作
                   MOV 	A,R3    		   ;
                   CLR 	C    		   ;
                   CJNE	A,#60H,CC  	   ;是否為60秒?
CC: 		   JC	 RETT0    	   ;小于60轉RETT0
                   ACALL CLR0    	   ;大于或等于60清0
                   MOV 	R0,#73H    	   ;指向分計時地址單元
                   ACALL ADD1    		   ;分加1
                   MOV 	A,R3    		   ;
                   CLR 	C    		   ;
                   CJNE A,#60H,CCC      ;是否為60分?
CCC: 		   JC	    RETT0    	    ;小于60轉RETT0
                   ACALL		CLR0    		    ;大于或等于60分計時單元清0
  RETT0: 	   POP 		PSW    		    ;恢復堆棧
                   POP 		ACC    		    ;
                   RETI    		   			;中斷返回
;
              ;;;;;;;;;;;;;; ;;;;
              ; 加1操作程序    ;
              ;;;;;;;;;;;;;; ;;;;
ADD1: 		   MOV	 A,@R0    		    ;取計數值
                   DEC	 R0    		    		;指向低一個地址
                   SWAP	 A    		    		;計數值高低四位交換
                   ORL 	 A,@R0    		    ;相或組合成一個數據
                   ADD 	 A,#01H    		    ;加1
                   DA 	 A    		    		;十進制調整
                   MOV 	 R3,A    		    ;暫存R3內
                   ANL 	 A,#0FH    		    ;高四位變0
                   MOV	 @R0,A    		    ;放回低地址
                   MOV	 A,R3    		    ;取回R3內數據
                   INC	 R0    		    		;地址加1
                   SWAP	 A    		    		;高低四位交換
                   ANL 	 A,#0FH    		    ;高四位為0
                   MOV	 @R0,A    		    ;放回原地址
                   RET    		    			;返回
;
               ;;;;;;;;;;;;;
               ; 清0程序  ;
               ;;;;;;;;;;;;;
CLR0: 		   CLR	 A    		    		;清A
                   MOV   @R0,A    		    ;對應地址單元清0
                   DEC	 R0    		    		;指向低一地址
                   MOV	 @R0,A    		    ;清0
                   RET    		    			;返回
;
;

               ;;;;;;;;;;;;;
               ; 顯示程序  ;
               ;;;;;;;;;;;;;
DISP: 		   MOV 	R1,#70H    		    ;顯示數據首址
                   MOV	R5,#0FEH    		    ;掃描字
PLAY:		   MOV	A,R5    		    		;掃描字入A
                   MOV	P2,A    		    		;從P2口輸出
                   MOV 	A,@R1    		    ;取顯示數據
                   MOV 	DPTR,#TAB        	;取段碼表首址
                   MOVC A,@A+DPTR        		; 查數據對應段碼
                   MOV	 P0,A    	    		;段碼從P0口輸出
                   LCALL DL1MS    			;點亮1毫秒
                   INC 	R1    		    		;指向下顯示數地址
                   MOV 	A,R5    		    		;掃描字入A
                   JNB	 ACC.6,ENDOUT   		;ACC.6=0轉ENDOUT結束
                   RL 	A    		    		;循環左移
                   MOV 	R5,A    		    		;放回A
                   AJMP PLAY    		    		;轉PLAY再顯示
ENDOUT:		   MOV  P2,#0FFH	    		;顯示結束處理。P2口置1
                   RET    		    			;子程序結束
;
;LED共陰段碼表(0-9)
TAB: 		   DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
;
;1毫秒延時程序
DL1MS: 		MOV R6,#14H
DL1:   		MOV R7,#19H
DL2:   		DJNZ R7,DL2
                DJNZ R6,DL1
                RET
;
;延時程序,用調用顯示程序實現,可使LED顯示穩定
DS50MS: 	LCALL DISP	    		;(7毫秒)
                LCALL DISP
                LCALL DISP
DS20MS: 	LCALL DISP
                LCALL DISP
                LCALL DISP
                RET
;
;10秒延時程序,用調用顯示程序實現,可使LED顯示不熄滅
DS10S:    	MOV    R2,#08H	    ;(8*11*16*7=9956毫秒)
TI0:    	MOV    R0,#0B0H
TI1:    	LCALL  DISP
         	DJNZ   R0,TI1
        	DJNZ   R2,TI0
        	RET
;7毫秒延時程序,跑道計數器抗干擾用
DL7MS:    SETB   PX1    		       ;外中斷1置高優先級
          MOV    R2,#0EH    	               ;賦定時值
DL11:     LCALL  DISP    		       ;調用顯示程序
          DJNZ   R2,DL11    	               ;循環
          CLR    PX1    		       ;外中斷1恢復低優先級
          RET    		    	       ;返回
;
          END    		    		;程序結束

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情偷乱视频一区二区三区| 日韩精品一区二| 日韩欧美中文字幕制服| 日韩电影在线观看网站| 欧美一区二区三区播放老司机| 日韩电影在线免费看| 亚洲国产wwwccc36天堂| 欧美大片日本大片免费观看| 91精品中文字幕一区二区三区| 国产在线日韩欧美| 国产精品热久久久久夜色精品三区 | 亚洲成人综合在线| 日韩欧美在线一区二区三区| 91精品国产综合久久久久久| 91色乱码一区二区三区| 午夜日韩在线电影| 日韩一区在线播放| 日韩欧美国产一区二区在线播放| 日韩女优av电影| 国产欧美视频一区二区| 欧美性欧美巨大黑白大战| 日韩国产欧美在线观看| 六月丁香综合在线视频| 亚洲欧美另类小说视频| 精品嫩草影院久久| 91福利在线播放| 国产69精品久久久久毛片| 亚洲国产另类精品专区| 另类中文字幕网| 成人网男人的天堂| 国产成a人亚洲精| 一本久道中文字幕精品亚洲嫩| 国产成+人+日韩+欧美+亚洲| 91视频观看视频| 精品国产一二三| 日韩一区二区三区在线视频| 国产三级精品三级在线专区| 一区二区欧美视频| 亚洲激情第一区| 亚洲色欲色欲www| 成人免费在线观看入口| 天天免费综合色| 成人av资源在线| 成人av影视在线观看| 欧美日韩国产高清一区| 欧美日韩精品三区| 国产精品免费久久| 国产一区二区三区综合| 国模无码大尺度一区二区三区| 91视频你懂的| 国产精品日韩成人| 国产精品性做久久久久久| 粉嫩av亚洲一区二区图片| 制服丝袜亚洲色图| 亚洲综合色视频| 男人的j进女人的j一区| 麻豆精品在线看| 国精产品一区一区三区mba桃花 | 欧美色网一区二区| 国产精品乱人伦中文| 国产乱码字幕精品高清av| 精品婷婷伊人一区三区三| 欧美精品 国产精品| 欧美xingq一区二区| 午夜精品一区二区三区三上悠亚| 国产精品一区二区91| 精品久久久久久亚洲综合网| 亚洲国产三级在线| 欧洲色大大久久| 欧美精品色一区二区三区| 日韩一区中文字幕| 不卡的av电影在线观看| 欧美国产精品一区二区| 亚洲国产精品一区二区www在线| 成人sese在线| 中文乱码免费一区二区| av一区二区久久| 欧美一区午夜精品| 美女任你摸久久| 精品国产伦一区二区三区观看方式| 麻豆精品视频在线观看免费| 欧美二区三区的天堂| 日韩电影一二三区| 精品少妇一区二区三区在线播放| 精东粉嫩av免费一区二区三区| 成人av第一页| 亚洲欧美日韩久久| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产欧美在线人成| 亚洲成a人片综合在线| 日韩黄色片在线观看| 精品免费日韩av| 亚洲不卡av一区二区三区| 欧美色涩在线第一页| 亚洲香肠在线观看| 中文字幕乱码日本亚洲一区二区| 国产福利精品导航| 亚洲同性同志一二三专区| 欧美偷拍一区二区| 青青草精品视频| 国产精品天美传媒沈樵| 色综合亚洲欧洲| 欧美刺激脚交jootjob| 国产在线视频一区二区| 亚洲丝袜制服诱惑| 欧美精品乱码久久久久久按摩| 久久精品国产成人一区二区三区| 国产三级精品在线| 欧美亚日韩国产aⅴ精品中极品| 日韩黄色在线观看| 国产精品视频一二三区 | 亚洲欧美另类小说视频| 在线观看91av| av成人老司机| 麻豆91免费观看| 一区二区三区免费看视频| 精品粉嫩aⅴ一区二区三区四区| 91丨九色丨蝌蚪丨老版| 蜜桃av一区二区三区| 亚洲青青青在线视频| 久久综合久久鬼色| 免费高清不卡av| 中文字幕在线观看一区| 日韩精品一区二区三区蜜臀 | 欧美日韩国产首页在线观看| 国产精品正在播放| 免费在线欧美视频| 亚洲天堂精品在线观看| 国产日韩欧美制服另类| 精品久久久久一区二区国产| 欧美体内she精高潮| 成人黄色在线视频| 国产精一品亚洲二区在线视频| 亚洲chinese男男1069| 亚洲精品视频在线观看免费| 国产偷国产偷亚洲高清人白洁| 国产精品12区| 日本中文字幕不卡| 亚洲va中文字幕| 亚洲一区日韩精品中文字幕| 国产精品美女一区二区| 欧美精品一区二区三区视频| 欧美人狂配大交3d怪物一区| 91亚洲精品久久久蜜桃| 国产成人免费高清| 国产成人综合网| 国产精品亚洲第一区在线暖暖韩国| 免费日韩伦理电影| 性欧美疯狂xxxxbbbb| 亚洲成国产人片在线观看| 亚洲国产乱码最新视频| 亚洲一二三区不卡| 亚洲一区二区欧美激情| 午夜激情一区二区三区| 亚洲图片欧美综合| 天天色图综合网| 奇米影视在线99精品| 美女精品自拍一二三四| 精品一区二区三区在线观看| 九九视频精品免费| 精品亚洲porn| 国产精品自拍三区| fc2成人免费人成在线观看播放 | 日韩天堂在线观看| 精品国产乱码久久| 国产精品网站在线播放| 亚洲免费看黄网站| 亚洲一区二区三区四区五区黄| 午夜精品久久久久久久久久| 美女免费视频一区| 懂色av一区二区三区蜜臀| 99久久久国产精品免费蜜臀| 日本中文在线一区| 国产一区在线精品| 91麻豆精品在线观看| 欧美日韩成人综合| 欧美精品一区二区三区四区| 中文字幕一区二区三区不卡| 一区二区三区中文字幕| 免费成人美女在线观看.| 国产一区在线看| 在线观看精品一区| 日韩视频在线你懂得| 国产精品丝袜91| 日本不卡视频在线| 99久久99久久综合| 日韩欧美aaaaaa| 一区二区三区av电影| 老司机精品视频线观看86| 成人一区在线看| 欧美日韩国产中文| 日本一区二区三区免费乱视频| 夜夜操天天操亚洲| 国产高清亚洲一区| 在线成人高清不卡| 1024精品合集| 国产91丝袜在线播放九色| 欧美高清性hdvideosex| 中文字幕五月欧美| 狠狠色丁香久久婷婷综合_中 |