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

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

?? 8.asm

?? 單片機8051的若干實用程序
?? 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一区二区三区免费野_久草精品视频
日韩成人免费在线| 一区二区三区产品免费精品久久75| 91社区在线播放| www.66久久| 99在线精品免费| 成人污视频在线观看| 成人在线综合网站| 99在线视频精品| 在线日韩一区二区| 欧美亚洲国产一区二区三区va | 99re这里都是精品| 成人一区二区三区视频| 成人毛片在线观看| 成人黄页在线观看| 欧美性色欧美a在线播放| 欧美日韩一级二级三级| 91精品国产欧美日韩| 日韩欧美国产小视频| 国产午夜精品福利| 亚洲欧美综合色| 午夜免费久久看| 精品一区二区在线视频| 国产丶欧美丶日本不卡视频| youjizz久久| 欧美日韩在线亚洲一区蜜芽| 6080亚洲精品一区二区| 国产丝袜美腿一区二区三区| 亚洲免费观看视频| 欧美a级理论片| 成人黄色大片在线观看| 欧美色图在线观看| 久久一区二区三区国产精品| 亚洲国产成人午夜在线一区| 亚洲国产一区二区视频| 蜜桃久久av一区| 成人高清免费在线播放| 欧美日本在线看| 国产欧美日韩在线观看| 视频在线观看一区二区三区| 国产盗摄一区二区| 欧美日本国产视频| 亚洲欧洲精品天堂一级 | 欧美一卡在线观看| 国产欧美视频在线观看| 亚洲一区二区三区影院| 国产+成+人+亚洲欧洲自线| 欧美中文字幕一区二区三区| 久久影院午夜片一区| 亚洲一二三级电影| 福利电影一区二区| 日本不卡不码高清免费观看| 99视频一区二区| 欧洲激情一区二区| 国产精品免费观看视频| 精品中文av资源站在线观看| 欧美性色综合网| 亚洲欧美综合色| 国产高清精品久久久久| 制服.丝袜.亚洲.中文.综合| 亚洲欧美自拍偷拍| 懂色av一区二区在线播放| 欧美一激情一区二区三区| 夜夜嗨av一区二区三区网页| 国产精品一区一区三区| 日韩欧美国产午夜精品| 蜜臀久久99精品久久久久久9| 东方欧美亚洲色图在线| 精品国产91亚洲一区二区三区婷婷| 国产精品国产三级国产专播品爱网| 久久99久久99| 日韩小视频在线观看专区| 午夜电影一区二区| 欧美视频完全免费看| 亚洲精品福利视频网站| 色婷婷av一区二区三区大白胸| 久久精品亚洲麻豆av一区二区| 另类综合日韩欧美亚洲| 精品乱码亚洲一区二区不卡| 人人超碰91尤物精品国产| 欧美一区中文字幕| 美日韩一区二区| 日韩欧美激情在线| 麻豆91在线播放免费| 欧美成人一区二区三区在线观看| 日韩精品1区2区3区| 欧美不卡在线视频| 激情欧美一区二区三区在线观看| 精品久久一区二区| 国产成人在线影院| 国产精品人人做人人爽人人添 | 国产精品人成在线观看免费| 国产一区二区伦理| 国产精品理论片在线观看| a在线欧美一区| 亚洲免费高清视频在线| 欧美色区777第一页| 玖玖九九国产精品| 欧美国产一区视频在线观看| 一道本成人在线| 日韩成人免费看| 亚洲欧美怡红院| 欧美伊人精品成人久久综合97| 日韩国产欧美在线播放| 欧美va亚洲va在线观看蝴蝶网| 国产一区二区三区av电影| 自拍视频在线观看一区二区| 欧美久久久久久蜜桃| 久久97超碰色| 亚洲精品中文字幕乱码三区| 欧美一区二区性放荡片| 国产精华液一区二区三区| 亚洲欧美日韩国产成人精品影院| 欧美二区乱c少妇| 国产99久久久国产精品免费看| 亚洲男人的天堂av| 日韩精品在线一区| 色综合天天综合网天天狠天天| 日韩电影免费一区| 专区另类欧美日韩| 日韩片之四级片| 91国产福利在线| 国产成人精品www牛牛影视| 亚洲国产日韩精品| 久久精品人人做人人爽人人| 欧美视频一区二区三区| 成人网在线免费视频| 男女性色大片免费观看一区二区| 国产精品久久久久久久第一福利 | 色哟哟一区二区| 蜜臀久久久久久久| 亚洲视频在线观看三级| 精品噜噜噜噜久久久久久久久试看| 色久综合一二码| 国产成人在线网站| 美女网站视频久久| 亚洲一区二区高清| 亚洲欧美日韩在线播放| 欧美激情一区不卡| 久久久.com| 欧美精品一区二区三区久久久| 欧美日韩一区二区三区四区 | 亚洲精品乱码久久久久久久久| 欧美精品一区二区三区高清aⅴ| 欧美视频一区二区三区在线观看 | 国产综合色在线| 蜜臀91精品一区二区三区| 一区二区三区丝袜| 亚洲欧洲精品天堂一级| 国产欧美精品一区二区色综合| 欧美一区二区三级| 欧美肥胖老妇做爰| 欧美日韩国产经典色站一区二区三区 | 国产日韩视频一区二区三区| 日韩一二三四区| 日韩限制级电影在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 欧美日本视频在线| 欧美久久高跟鞋激| 欧美日本乱大交xxxxx| 欧美色中文字幕| 欧美精品视频www在线观看| 欧美天堂亚洲电影院在线播放 | 天天亚洲美女在线视频| 亚洲一级不卡视频| 日韩国产一二三区| 久久99久久久久久久久久久| 麻豆精品视频在线观看视频| 经典三级在线一区| 国产999精品久久久久久绿帽| 成人免费观看视频| 色激情天天射综合网| 欧美高清视频www夜色资源网| 欧美精品自拍偷拍| 精品久久久久香蕉网| 国产日产欧美一区| 亚洲精品少妇30p| 日本在线不卡视频一二三区| 捆绑紧缚一区二区三区视频| 国产麻豆精品在线观看| 91在线播放网址| 91精品一区二区三区久久久久久| 亚洲精品一区二区精华| 中文字幕av一区 二区| 一区二区国产盗摄色噜噜| 日韩成人av影视| 国产电影一区在线| 欧美四级电影在线观看| 久久久五月婷婷| 亚洲精品欧美激情| 麻豆久久久久久| 91丨porny丨蝌蚪视频| 91精品国产一区二区三区香蕉| 久久久久久久综合色一本| 亚洲黄色免费电影| 精品一区在线看| 欧美在线观看一区| 中文av一区二区| 麻豆91在线观看| 欧美性大战xxxxx久久久| 久久久精品综合|