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

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

?? 綜合實驗.asm

?? 用8279實現顯示和鍵盤功能~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
?? ASM
字號:
;系統晶振是 11.0592 MHz
Z8279   EQU     7fffH  ;8279 狀態/命令口地址
D8279   EQU     77ffH  ;8279 數據口地址
LEDMOD  EQU     00H     ;左邊輸入 八位字符顯示
                        ;外部譯碼鍵掃描方式,雙鍵互鎖
LEDFEQ  EQU     2FH     ;掃描速率
LEDCLS  EQU     0C1H    ;清除顯示 RAM
LEDWR0  EQU     80H     ;設定的將要寫入的顯示RAM地址
READKB  EQU     40H     ;讀 FIFO RAM 地址 0 的命令字

        ORG     0000H
        AJMP    START
        ORG     001BH   ;INT T1 入口地址
        AJMP    INT_T1
        ORG     0040H
START:	MOV 30H,#00H
        MOV 31H,#1H
		MOV 32H,#0FH
		MOV 34H,#00H
        MOV     SP,#60H
        LCALL   INIT8279        ;初始化8279
        MOV     R3,#0H          ;時
        MOV     R2,#0H          ;分
        MOV     R1,#0H          ;秒
        MOV     R0,#0H          ;10毫秒
        MOV     R6,#0FFH        ;標志
        MOV     TMOD,#10H
        MOV     TL1,#00H        ;10毫秒的時間常數
        MOV     TH1,#0DCH
        LCALL   DIS_mS
        SETB    ET1
        SETB    EA              ;允許中斷
WAIT:
        LCALL   GETKEY          ;讀鍵盤
        CJNE    A,#0FFH,CONT    ;判斷是否有鍵輸入
        MOV     A,B
        CJNE    A,#0H,KEY_G    ;輸入鍵是'0',轉CLEAR_T
        LCALL   CLEAR_T
KEY_G:  CJNE    A,#0aH,KEY_D    ;輸入鍵是'*',轉START_T
        LCALL   START_T
KEY_D:  CJNE    A,#0bH,KEY_P    ;輸入鍵是'#',轉STOP_T
        LCALL   STOP_T
KEY_P:  CJNE    A,#1H,KEY_E    ;輸入鍵是'1',轉SET_T
        LCALL   SET_T
KEY_E:  CJNE    A,#2H,CONT     ;輸入鍵是'2',轉MONITOR
        LCALL    MONITOR
CONT:   CJNE    R6,#0FFH,WAIT   ;若無秒標志則循環
        LCALL DENG
        LCALL   DISPLAY         ;顯示時間
        MOV     R6,#0           ;清標志
        SJMP    WAIT            ;循環
MONITOR:  PUSH ACC
          MOV A,34H
		  CPL A
		  MOV 34H,A
		  pop acc
		  RET
        


CLEAR_T:                        ;時間清零子程序
        CLR     TR1             ;關計數器
        MOV     R3,#0H          ;小時清零
        MOV     R2,#0H          ;分鐘清零
        MOV     R1,#0H          ;秒清零
        MOV 32H,#0FH
        MOV     R0,#0H          ;10毫秒清零
        MOV     R6,#0FFH        ;置秒標志
        LCALL   DIS_mS          ;顯示毫秒
        RET
START_T:                        ;電子鐘計時子程序
        SETB    TR1
        RET
STOP_T:                         ;電子鐘停止計時子程序
        CLR     TR1
        RET
SET_T:                          ;設置初值子程序
        CLR     TR1             ;關計數器

        MOV     R4,#7
        LCALL   GETWORD         ;讀小時數
        CJNE    A,#0FFH,INVALID ;判斷輸入合法性
        MOV     A,B
        ADD     A,#232
        JC      INVALID         ;判斷輸入小時值 < 24
        MOV     A,B
        MOV     B,#10
        DIV     AB
        SWAP    A
        ADD     A,B
        MOV     R3,A            ;保存輸入的值

        MOV     R4,#5
        LCALL   GETWORD         ;讀分鐘數
        CJNE    A,#0FFH,INVALID ;判斷輸入合法性
        MOV     A,B
        ADD     A,#196
        JC      INVALID         ;判斷輸入分鐘數 < 60
        MOV     A,B
        MOV     B,#10
        DIV     AB
        SWAP    A
        ADD     A,B
        MOV     R2,A            ;保存輸入的值

        MOV     R4,#3
        LCALL   GETWORD         ;讀秒
        CJNE    A,#0FFH,INVALID ;判斷輸入合法性
        MOV     A,B
        ADD     A,#196
        JC      INVALID         ;判斷輸入分鐘值 < 60
        MOV     A,B
        MOV     B,#10
        DIV     AB
        SWAP    A
        ADD     A,B
        MOV     R1,A            ;保存輸入的值

        ;MOV     R4,#1
       ; LCALL   GETWORD         ;讀10毫秒數
        ;CJNE    A,#0FFH,INVALID ;判斷輸入合法性
        ;MOV     A,B
        ;MOV     B,#10
        ;DIV     AB
        ;SWAP    A
       ; ADD     A,B
       ; MOV     R0,A            ;保存輸入的值
        AJMP    SET_TOK
INVALID:
        LCALL   CLEAR_T         ;時間清零
SET_TOK:LCALL   DIS_mS          ;顯示10毫秒
        LCALL   DISPLAY         ;顯示時間
        RET

GETWORD:                        ;讀數子程序
WKEY1:  LCALL   GETKEY          ;讀鍵盤
        CJNE    A,#0FFH,WKEY1   ;無鍵輸入,則再讀
        MOV     A,B
        ADD     A,#0f6H
        JC      ERROR1          ;判斷輸入是否大于9
        MOV     A,B
       ; SUBB    A,#30H
        ;JC      ERROR1          ;判斷輸入是否小于0
        MOV     R5,A
        LCALL   DISLED          ;顯示輸入的字符
        MOV     B,#10
        MUL     AB
        PUSH    ACC             ;保存輸入的值
WKEY2:  LCALL   GETKEY          ;讀鍵盤
        CJNE    A,#0FFH,WKEY2   ;無鍵輸入則再讀
        MOV     A,B
        ADD     A,#0f6H         ;判斷輸入是否大于9
        JC      ERROR2
        MOV     A,B
       ; SUBB    A,#30H          ;判斷輸入是否小于0
        ;JC      ERROR2
        DEC     R4
        MOV     R5,A
        LCALL   DISLED          ;顯示輸入的字符
        MOV     B,A
        POP     ACC
        ADD     A,B
        MOV     B,A             ;把得到的值存在B
        MOV     A,#0FFH         ;置合法輸入標志
        AJMP    KEYOK
ERROR2: POP     ACC
ERROR1: MOV     A,#0            ;置非法輸入標志
KEYOK:  RET

INIT8279:                       ;8279初始化子程序
        PUSH   DPH              ;保存現場
        PUSH   DPL
        PUSH   ACC
        LCALL  DELAY            ;延時
        MOV    DPTR ,#Z8279
        MOV    A,#LEDMOD        ;置8279工作方式
        MOVX   @DPTR,A
        MOV    A,#LEDFEQ        ;置鍵盤掃描速率
        MOVX   @DPTR,A
        MOV    A,#LEDCLS        ;清除 LED 顯示
        MOVX   @DPTR,A
        POP    ACC              ;恢復現場
        POP    DPL
        POP    DPH
        RET
;讀取鍵盤子程序
;輸入: 無   ; 輸出: B: 讀到的鍵碼 A: 按鍵的標志
GETKEY: PUSH   DPH              ;保存現場
        PUSH   DPL
        PUSH   PSW
        MOV    DPTR,#Z8279
        MOVX   A,@DPTR          ;讀8279狀態
        ANL    A,#07H           ;屏蔽D7-D3
        JNZ    GETVAL           ;判斷是否有鍵輸入
        MOV    A,#0H            ;置標志(無鍵輸入)
        SJMP   NKBHIT
GETVAL: MOV    A,#READKB        ;讀 FIFO RAM 命令
        MOVX   @DPTR,A
        MOV    DPTR,#D8279
        MOVX   A,@DPTR          ;讀鍵
        ANL    A,#3FH           ;屏蔽 SHIFT 和 CTRL 鍵
        MOV    DPTR,#KEYCODE    ;鍵碼表起始地址
        MOVC   A,@A+DPTR        ;查表

        MOV    B,A              ;置返回鍵值
        MOV    A,#0FFH          ;置標志(有鍵輸入)
NKBHIT: POP    PSW              ;恢復現場
        POP    DPL
        POP    DPH
        RET
;顯示字符子程序
;輸入: R4,位置 R5,值
DISLED:  PUSH   DPH             ;保存現場
         PUSH   DPL
         PUSH   ACC
         MOV    A,#LEDWR0       ;置顯示起始地址
         ADD    A,R4            ;加位置偏移量
         MOV    DPTR,#Z8279
         MOVX   @DPTR,A         ;設定顯示位置
         MOV    DPTR,#LEDSEG    ;置顯示常數表起始位置
         MOV    A,R5
         MOVC   A,@A+DPTR       ;查表
         MOV    DPTR,#D8279
         MOVX   @DPTR,A         ;顯示數據
         POP    ACC             ;恢復現場
         POP    DPL
         POP    DPH
         RET

DELAY:                          ;延時子程序
        PUSH    0               ;保存現場
        PUSH    1
        MOV     0,#0H
DELAY1: MOV     1,#0H
        DJNZ    1,$
        DJNZ    0,DELAY1
        POP     1               ;恢復現場
        POP     0
        RET
DIS_mS:
        MOV     A,R0
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#0
       ; LCALL   DISLED          ;顯示10毫秒低位
        MOV     A,R0
        SWAP    A               ;高低半字節交換
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#1
       ; LCALL   DISLED          ;顯示10毫秒高位
        RET

INT_T1:                         ;INT_T1中斷服務子程序
        PUSH    DPH             ;保護現場
        PUSH    DPL
        PUSH    ACC
        PUSH    PSW
        CLR     TR1

        MOV     TL1,#00H        ;10毫秒定時常數
        MOV     TH1,#0DCH
        SETB    TR1

        MOV     A,R0
        ADD     A,#1            ;10毫秒數加 1
        DA      A
        MOV     R0,A

        LCALL   DIS_mS          ;顯示10毫秒

        CJNE    R0,#0,EXIT      ;判斷10毫秒=0
        MOV     R6,#0FFH        ;置秒標志
        CJNE    R1,#59H,SECOND  ;判斷秒=59
        MOV     R1,#99H
        CJNE    R2,#59H,MINUTE  ;判斷分=59
        MOV     R2,#99H
        CJNE    R3,#23H,HOUR    ;判斷時=23
        MOV     R3,#99H
HOUR:
        MOV     A,R3
        ADD     A,#1            ;時加1
        DA      A
        MOV     R3,A
MINUTE:
        MOV     A,R2
        ADD     A,#1            ;分加1
        DA      A
        MOV     R2,A
SECOND:
        MOV     A,R1
        ADD     A,#1            ;秒加1
        DA      A
        MOV     R1,A
EXIT:
        POP     PSW             ;恢復現場
        POP     ACC
        POP     DPL
        POP     DPH
        RETI                    ;中斷返回
DISPLAY:  
        MOV     A,R3
        ANL     A,#0FH
        ADD     A,#10H
        MOV     R5,A
        MOV     R4,#6
        LCALL   DISLED          ;顯示小時低位
        MOV     A,R3
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#7
        LCALL   DISLED          ;顯示小時高位
        MOV     A,R2
        ANL     A,#0FH
        ADD     A,#10H
        MOV     R5,A
        MOV     R4,#4
        LCALL   DISLED          ;顯示分鐘低位
        MOV     A,R2
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#5
        LCALL   DISLED          ;顯示分鐘高位
        MOV     A,R1
        ANL     A,#0FH
        ADD     A,#10H
        MOV     R5,A
        MOV     R4,#2
        LCALL   DISLED          ;顯示秒低位
        MOV     A,R1
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#3
        LCALL   DISLED          ;顯示秒高位

        MOV     A,33H
        ANL     A,#0FH
        ADD     A,#10H
        MOV     R5,A
        MOV     R4,#0
        LCALL   DISLED          ;顯示倒計時低位
        MOV     A,33H
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#1
        LCALL   DISLED          ;顯示倒計時高位


        RET


 DENG:    
	     PUSH ACC
		 PUSH DPH
		 PUSH DPL
		 PUSH PSW
		 MOV A,#0ffH
		 CJNE A,34H,PASS

		 MOV P1,#0FH
		 LJMP BACK
PASS:	 MOV A,#0H
         DJNZ 32H,PASS0
		 MOV 32H,#0EH

PASS0:   ADD A,32H
         DA A
		 MOV 33H,A
         MOV R7,31H
         DJNZ R7,PASS2 
		 MOV A,30H
         MOV DPTR,#LIST		 
		 MOVC A,@A+DPTR
	     CJNE A,#0FFH,PASS1
		 
         MOV 30H,#0H
         MOV 31H,#1H		 
         LJMP BACK
		 
PASS1:   MOV P1,A
	     MOV A,30H
	     INC A
	     MOV 30H,A
	     MOVC A,@A+DPTR
         MOV R7,A		 
	     MOV A,30H
	     INC A
		 MOV 30H,A
PASS2:
         MOV 31H,R7
BACK:    POP PSW
		 POP DPL
		 POP DPH
		 POP ACC
		
         RET		 
		
		
			
LIST:
DB 96H, 7H,9fH, 1H,96H, 1H,9fH, 1H,96H, 1H,9FH, 1H,6H,2H
DB 69H,7H,6fH,1H,69H,1H,6FH,1H,69H,1H,6FH,1H,09H,2H,0FFH



;LED顯示常數表
LEDSEG: DB      3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
        DB      7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
        DB      0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;'0.,1.,2.,3.,4.,5.,6.,7.'
        DB      0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;'8.,9.,A.,B.,C.,D.,E.,F.'
        DB      6DH,02H,08H,00H,59H,0FH,76H     ;'U,-,_, ,I,O,P, '
;鍵盤鍵碼表
KEYCODE:DB      1H,4H,7H,0aH,0ffH,0ffH,0ffH,0ffH 
        DB      2H,5H,8H,0H, 0ffH,0ffH,0ffH,0ffH
        DB      3H,6H,9H,0bH,0ffH,0ffH,0ffH,0ffH
        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩你懂的在线观看| 天堂蜜桃一区二区三区| 日本高清不卡视频| 天堂精品中文字幕在线| 中文字幕不卡在线| 欧美日本在线播放| av亚洲精华国产精华精华| 亚洲成人黄色小说| 亚洲九九爱视频| 日本精品一区二区三区四区的功能| 韩国v欧美v亚洲v日本v| 4438x亚洲最大成人网| 91精品办公室少妇高潮对白| av在线不卡电影| 欧美日韩久久久一区| 欧美美女一区二区| 色成年激情久久综合| 不卡一二三区首页| 床上的激情91.| 国产一区视频在线看| 国内精品视频666| 久久99精品国产.久久久久 | 欧美日韩一区二区三区四区| 国产精品白丝jk黑袜喷水| 免费高清在线一区| 中文无字幕一区二区三区| 欧美一区二区三区日韩| 69成人精品免费视频| 日韩一级片网址| 久久久精品影视| 伊人色综合久久天天| proumb性欧美在线观看| 美国十次了思思久久精品导航| 国产一区在线精品| 国产一区二区在线看| 另类小说欧美激情| 国产一区二区三区最好精华液| 欧美一区二区日韩| 91精品国产欧美一区二区| 欧美一区二区三区免费视频 | 亚洲精品综合在线| 伊人色综合久久天天| 五月婷婷久久综合| www.亚洲人| 成人免费视频视频在线观看免费| 69精品人人人人| 国产欧美一区二区精品性色| 久久久久高清精品| 亚洲激情六月丁香| 激情另类小说区图片区视频区| 国产精品午夜电影| 欧美96一区二区免费视频| 国产麻豆精品视频| 91黄色小视频| 亚洲乱码中文字幕| 菠萝蜜视频在线观看一区| 2014亚洲片线观看视频免费| 日韩av电影免费观看高清完整版在线观看| 久久精品人人做人人综合| 蜜臀91精品一区二区三区| 在线播放一区二区三区| 欧美aⅴ一区二区三区视频| aa级大片欧美| 国产欧美日韩卡一| 国产精品亚洲一区二区三区妖精| 欧美aa在线视频| 欧美日韩精品一区二区三区蜜桃| 91视频在线看| 亚洲视频香蕉人妖| 不卡av电影在线播放| 最新久久zyz资源站| 91在线一区二区| 亚洲国产精品久久久男人的天堂| 一区二区不卡在线视频 午夜欧美不卡在| 精品国产麻豆免费人成网站| 午夜电影网一区| 日韩精品专区在线影院观看| 国产综合色在线| 性做久久久久久久免费看| 成人免费毛片aaaaa**| 亚洲欧美日韩一区二区三区在线观看| 日韩一区在线免费观看| 国内精品免费在线观看| 国产精品福利一区| 91精品蜜臀在线一区尤物| 国产乱码精品一区二区三区av| jlzzjlzz亚洲日本少妇| 午夜国产不卡在线观看视频| 国产女人aaa级久久久级| 在线视频亚洲一区| 国产美女在线观看一区| 一区二区三区在线视频免费| 精品成人一区二区| 在线观看日韩国产| 高清国产一区二区| 人人精品人人爱| 一区二区三区 在线观看视频| 国产精品77777竹菊影视小说| 在线精品国精品国产尤物884a| 在线电影一区二区三区| 91麻豆国产福利在线观看| 久久激情综合网| 日韩精品久久久久久| 亚洲一区二区在线观看视频| 亚洲精品在线三区| 欧美一区二区美女| 欧美二区三区91| 日韩欧美二区三区| 久久亚洲欧美国产精品乐播| 日韩午夜激情视频| 日韩精品一区在线| 欧美不卡一二三| 久久久久久一二三区| 久久九九久久九九| 日本一区二区不卡视频| 国产欧美日韩在线视频| 欧美一区二区福利在线| 欧美一区二区视频观看视频| 色天天综合色天天久久| 在线欧美日韩精品| 欧美午夜电影在线播放| 日韩欧美一区二区免费| 久久一区二区三区四区| 自拍视频在线观看一区二区| 日韩精品国产精品| jlzzjlzz国产精品久久| 欧美三日本三级三级在线播放| 午夜精品福利在线| 久久99精品久久久久婷婷| 国产成人免费在线观看不卡| 欧美亚洲国产怡红院影院| 欧美精品第一页| 久久久久国产精品麻豆ai换脸 | 色综合激情五月| 久久精品视频免费| 亚洲丝袜制服诱惑| 九九热在线视频观看这里只有精品| 精品国产一区久久| 成人免费在线播放视频| 久久爱www久久做| 91精品国产91久久久久久一区二区| 国产精品中文字幕日韩精品| 欧美日韩五月天| 亚洲欧美一区二区不卡| 久久er99热精品一区二区| 在线看国产一区二区| 亚洲另类在线视频| www.欧美.com| √…a在线天堂一区| 成人a区在线观看| 国产精品美女一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 午夜视频一区二区三区| 欧美怡红院视频| 五月激情综合婷婷| 精品卡一卡二卡三卡四在线| 日韩主播视频在线| 91精品国产综合久久国产大片| 91老司机福利 在线| 精品国产1区2区3区| 国产黄色精品网站| 国产精品久久久久久久久果冻传媒 | 亚洲综合精品久久| 欧美精品tushy高清| 中文字幕一区二区三区在线观看| 亚洲免费观看高清完整版在线| 亚洲国产高清aⅴ视频| 激情欧美日韩一区二区| 久久久久久久综合日本| 成人综合在线网站| 一区二区三区四区蜜桃 | 国产精品福利影院| 欧美性色综合网| 国产91在线观看| 日韩vs国产vs欧美| 精品少妇一区二区三区日产乱码| 久久精品视频网| 色婷婷综合久久久久中文| 久久99精品久久只有精品| 亚洲成av人片一区二区三区| 久久婷婷综合激情| 日韩三级在线观看| 欧美一区二区视频观看视频| 99久久99久久精品免费看蜜桃| 国产日产欧美一区| 欧美在线观看视频一区二区三区| 中文字幕一区av| 久久久噜噜噜久久人人看 | 日韩国产欧美三级| 尤物视频一区二区| 亚洲欧美偷拍三级| 亚洲免费观看视频| 亚洲自拍偷拍av| 午夜视频在线观看一区二区| 亚洲精品国产品国语在线app| 韩国视频一区二区| 丝袜美腿亚洲一区二区图片| 夜夜嗨av一区二区三区网页| 亚洲尤物视频在线| 水野朝阳av一区二区三区|