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

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

?? kbsub.lis

?? 基于HC908GP32的計算器完整程序
?? LIS
字號:
                        .module KBsub.c
                        .area text
 0000           _KB_Init::
 0000           ; /*-----------------------------------------------------*
 0000           ; *文件描述:本文件包含了H08C鍵盤中斷子函數,分別為:       *  
 0000           ; *(1)KB_Init:鍵盤初始化函數                             *
 0000           ; *   void KB_Init(void)                                 *
 0000           ; *(2)KB_Scan:掃描讀取鍵值函數                           *
 0000           ; *   unsigned char KB_Scan(void)                        *
 0000           ; *(3)KB_Def:鍵值轉為定義值函數                          *
 0000           ; *   unsigned char KB_Def(unsigned char KB_valve)       *
 0000           ; *-----------------------------------------------------*/
 0000           ; /*[以下為子程序源代碼]*/
 0000           ; /*[頭文件]*/
 0000           ; #include "GP32C.H"
 0000           ; #include "KB.h"
 0000           ; /*KB_Init:鍵盤初始化函數-------------------------------*
 0000           ; *功  能:初始化鍵盤中斷的引腳,但未開放鍵盤中斷         *
 0000           ; *參  數:無                                             *
 0000           ; *返  回:無                                             *
 0000           ; *-----------------------------------------------------*/  
 0000           ; void KB_Init(void)
 0000           ; {
 0000           ; 	 KB_P=0x00;             //復位KB_P
 0000 3F00              clr 0
 0002           ;        KB_D=0b00001111;       //定定義7-4為輸入,3-0為輸出
 0002 A60F              lda #15
 0004 B704              sta 0x4
 0006           ;        KB_PUE=0b11110000;     //定義輸入引腳有內部上拉電阻
 0006 A6F0              lda #-16
 0008 B70D              sta 0xd
 000A           ;        INTKBSCR|= (1<<IntBit);//屏蔽鍵盤中斷(IMASKk=1)
 000A 121A              bset #1,0x1a
 000C           ;        INTKBIER=0b11110000;   //允許輸入引腳的中斷可進入
 000C A6F0              lda #-16
 000E B71B              sta 0x1b
 0010           ;        INTKBSCR|= (1<<ACKKBit);  //清鍵盤中斷請求(ACKK=1)
 0010 141A              bset #2,0x1a
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 81                rts
 0013           ;           line -> 0,X
 0013           ;              i -> 1,X
 0013           ;            tmp -> 2,X
 0013           ;              j -> 3,X
 0013           _KB_Scan::
 0013 A7FC              ais #-4
 0015 95                tsx
 0016           ; }
 0016           ; /*KB_Scan:掃描讀取鍵值函數-----------------------------*
 0016           ; *功  能:掃描一次4*4鍵盤上的按鍵,讀取鍵值->*p          *
 0016           ; *         若無按鍵,*p為0xff                           *
 0016           ; *參  數:無                                             *
 0016           ; *返  回:掃描到的鍵值                                   *
 0016           ; *-----------------------------------------------------*/  
 0016           ; unsigned char KB_Scan(void) 
 0016           ;  {
 0016           ;        unsigned char line,i,j,tmp;
 0016           ;      line=0b11111110;        //使第一根行線為0(低電平)
 0016 A6FE              lda #-2
 0018 F7                sta ,X
 0019           ;        for(i=1;i<=4;i++)         //將掃描4根行線
 0019 A601              lda #1
 001B E701              sta 1,X
 001D 2032              bra L6
 001F           L3:
 001F           ; 	  {	
 001F           ;         tmp=KB_P;            //取KB_P->tmp
 001F B600              lda 0
 0021 E702              sta 2,X
 0023           ;         tmp|=0b00001111;     //KB_P.7-4保留,KB_P.3-0為1
 0023 AA0F              ora #15
 0025 E702              sta 2,X
 0027           ;         KB_P=tmp&line;       //令KB_P.n=0,n=0、1、2、3
 0027 F4                and ,X
 0028 B700              sta 0
 002A           ;           asm("NOP");            //等待,消除按鍵抖動
 002A 9D                NOP
 002B           ;           asm("NOP");
 002B 9D                NOP
 002C           ;           tmp=KB_P;
 002C B600              lda 0
 002E E702              sta 2,X
 0030           ;           tmp&=0b11110000;       //看第n行是否有鍵按下
 0030 A4F0              and #-16
 0032 E702              sta 2,X
 0034           ;           if(tmp!=0xf0)          //本行有鍵按下
 0034 A1F0              cmp #-16
 0036 2712              beq L7
 0038           ;            {
 0038 6F03              clr 3,X
 003A 2002              bra L12
 003C           L9:
 003C           L10:
 003C 6C03              inc 3,X
 003E           L12:
 003E           ; 	     for(j=0;j<250;j++);
 003E E603              lda 3,X
 0040 A1FA              cmp #-6
 0042 25F8              blo L9
 0044           ;               tmp=KB_P;
 0044 B600              lda 0
 0046 E702              sta 2,X
 0048           ;                   break;
 0048 200D              bra L5
 004A           L7:
 004A F6                lda ,X
 004B 48                lsla
 004C AA01              ora #1
 004E F7                sta ,X
 004F           L4:
 004F 6C01              inc 1,X
 0051           L6:
 0051 E601              lda 1,X
 0053 A104              cmp #4
 0055 23C8              bls L3
 0057           L5:
 0057           ; 	     }
 0057           ; 	     else                  //本行無鍵按下,掃描下一行
 0057           ; 		    line=(line<<1)|0x01; 
 0057           ; 	 }	
 0057           ; 	  if(i==5)   tmp=0xff;
 0057 E601              lda 1,X
 0059 A105              cmp #5
 005B 2604              bne L13
 005D A6FF              lda #-1
 005F E702              sta 2,X
 0061           L13:
 0061           ; 	  return(tmp);
 0061 E602              lda 2,X
 0063           L2:
 0063 A704              ais #4
 0065                   .dbline 0 ; func end
 0065 81                rts
                        .area lit
 0000           _KB_Table::
 0000 EE31              .byte 238,49
 0002 DE32              .byte 222,50
 0004 BE33              .byte 190,51
 0006 7E2B              .byte 126,43
 0008 ED34              .byte 237,52
 000A DD35              .byte 221,53
 000C BD36              .byte 189,54
 000E 7D2D              .byte 125,45
 0010 EB37              .byte 235,55
 0012 DB38              .byte 219,56
 0014 BB39              .byte 187,57
 0016 7B2A              .byte 123,42
 0018 E73C              .byte 231,60
 001A D730              .byte 215,48
 001C B73D              .byte 183,61
 001E 772F              .byte 'w,47
 0020 00                .byte 0
                        .area text
                ;       KeyPress -> 0,X
                ;              i -> 1,X
                ;              j -> 2,X
                ;       KB_valve -> 5,X
 0066           _KB_Def::
 0066 A7FD              ais #-3
 0068 95                tsx
 0069           ;  }
 0069           ; /*KB_Def:鍵值轉為定義值函數----------------------------*
 0069           ; *功  能:鍵值轉為定義值                                 *
 0069           ; *參  數:鍵值                                           *
 0069           ; *返  回:鍵定義值                                       *
 0069           ; *-----------------------------------------------------*/
 0069           ; //鍵盤定義表
 0069           ; const unsigned char KB_Table[]= 
 0069           ; {0xEE,'1',0xDE,'2',0xBE,'3',0x7E,'+',
 0069           ;  0xED,'4',0xDD,'5',0xBD,'6',0x7D,'-',
 0069           ;  0xEB,'7',0xDB,'8',0xBB,'9',0x7B,'*',
 0069           ;  0xE7,'<',0xD7,'0',0xB7,'=',0x77,'/',
 0069           ;  0x00};
 0069           ; unsigned char KB_Def(unsigned char KB_valve)
 0069           ;  {
 0069           ;    unsigned char KeyPress;
 0069           ;    unsigned char i;
 0069           ;    unsigned char j;
 0069           ;    i=0;
 0069 6F01              clr 1,X
 006B 203C              bra L17
 006D           L16:
 006D           ;    while(1)
 006D           ;    {
 006D           ;      j=KB_Table[i];
 006D 3F00              clr *__r0
 006F E601              lda 1,X
 0071 AB00              add #<_KB_Table
 0073 B700              sta *__r1
 0075 B600              lda *__r0
 0077 A900              adc #>_KB_Table
 0079 B700              sta *__r0
 007B 5500              ldhx *__r0
 007D F6                lda ,x
 007E 95                tsx
 007F E702              sta 2,X
 0081           ;      //與0(定義表結束標志)相比較
 0081           ;      if (j==0)                   //=0,即表中無次定義值
 0081 2605              bne L19
 0083           ;         {KeyPress=0xff; break;}  //返回0xff
 0083 A6FF              lda #-1
 0085 F7                sta ,X
 0086 2023              bra L18
 0088           L19:
 0088           ;      else
 0088           ;         //與鍵值相比較
 0088           ;         if (j==KB_valve)         //找到       
 0088 E602              lda 2,X
 008A E105              cmp 5,X
 008C 2615              bne L21
 008E           ;            {KeyPress=KB_Table[i+1];break;} //取鍵定義值
 008E 3F00              clr *__r0
 0090 E601              lda 1,X
 0092 AB01              add #<_KB_Table+1
 0094 B700              sta *__r1
 0096 B600              lda *__r0
 0098 A901              adc #>_KB_Table+1
 009A B700              sta *__r0
 009C 5500              ldhx *__r0
 009E F6                lda ,x
 009F 95                tsx
 00A0 F7                sta ,X
 00A1 2008              bra L18
 00A3           L21:
 00A3 E601              lda 1,X
 00A5 AB02              add #2
 00A7 E701              sta 1,X
 00A9           L17:
 00A9 20C2              bra L16
 00AB           L18:
 00AB           ;         else
 00AB           ;            i+=2;              //指向下一個鍵值,繼續判斷
 00AB           ;     };
 00AB           ;     return KeyPress;
 00AB F6                lda ,X
 00AC           L15:
 00AC A703              ais #3
 00AE                   .dbline 0 ; func end
 00AE 81                rts

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区蜜桃臀影院| 91色综合久久久久婷婷| 精品乱人伦小说| 久久99精品久久久久久动态图| 日韩视频在线你懂得| 精品一区二区三区在线观看国产| 久久麻豆一区二区| 国产一区二区三区| 中文字幕在线视频一区| 色成年激情久久综合| 午夜欧美在线一二页| 日韩欧美综合在线| 高清在线不卡av| 亚洲欧美日韩国产手机在线| 欧美四级电影在线观看| 久久电影网站中文字幕| 中文字幕精品在线不卡| 色婷婷久久久亚洲一区二区三区 | 国产精品久久久久久久久免费樱桃| 99国产欧美另类久久久精品| 午夜精品一区在线观看| 欧美大肚乱孕交hd孕妇| av毛片久久久久**hd| 性做久久久久久久久| 久久久久久影视| 色www精品视频在线观看| 日本91福利区| 国产精品国产三级国产普通话三级| 欧美性一级生活| 韩国精品在线观看| 一区二区三区四区激情| 欧美一区二区日韩| av一二三不卡影片| 日本不卡高清视频| 中文字幕av一区二区三区| 欧美日精品一区视频| 国产伦精一区二区三区| 一区二区成人在线观看| 久久亚洲春色中文字幕久久久| 色综合咪咪久久| 久久99精品网久久| 亚洲精品免费一二三区| 精品国产99国产精品| 在线视频一区二区免费| 国产一区二区导航在线播放| 亚洲在线观看免费| 国产午夜精品久久久久久久 | 亚洲欧美综合色| 日韩视频国产视频| 色94色欧美sute亚洲13| 韩国女主播一区| 亚洲第一激情av| 国产精品三级av在线播放| 91精品一区二区三区久久久久久| 不卡一区在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲乱码中文字幕综合| 久久久一区二区| 91精品国产欧美一区二区成人| 91首页免费视频| 国产精品主播直播| 日本美女一区二区三区视频| 日韩美女啊v在线免费观看| 26uuu另类欧美| 欧美色图免费看| 99麻豆久久久国产精品免费 | 99国产精品久久久久久久久久久| 蜜桃一区二区三区在线| 亚洲一区二区三区小说| 国产精品美女一区二区三区| 欧美xxxxxxxxx| 欧美色精品在线视频| 99视频超级精品| 国产精品一区二区久久不卡| 全国精品久久少妇| 亚洲国产日韩一级| 亚洲视频资源在线| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲免费视频成人| 欧美国产精品专区| 久久亚洲免费视频| 欧美不卡一区二区三区四区| 欧美日本国产一区| 91蝌蚪国产九色| 成人动漫一区二区在线| 国产精品一区二区免费不卡 | 日本精品一区二区三区高清 | 91高清在线观看| 白白色 亚洲乱淫| 国产精品一区一区三区| 久久99精品久久久| 久久激情五月激情| 免费av成人在线| 日韩激情视频在线观看| 亚洲va天堂va国产va久| 亚洲一区二区三区四区五区中文| 中文字幕一区二区三区精华液 | 国产亚洲一区二区三区四区 | 国产精品一区二区三区四区| 国产在线视频精品一区| 亚洲视频在线观看一区| 国产精品女上位| 中文字幕欧美日韩一区| 成人久久久精品乱码一区二区三区| 欧美剧在线免费观看网站| 亚洲一区二区欧美| 欧美在线999| 亚洲一区二区成人在线观看| 日本韩国欧美一区二区三区| 亚洲精品免费看| 欧美在线看片a免费观看| 亚洲私人黄色宅男| 成人动漫在线一区| 蜜桃视频一区二区三区| 综合在线观看色| 亚洲视频在线一区二区| 一区二区三区四区激情| 亚洲.国产.中文慕字在线| 日韩专区在线视频| 免费在线观看视频一区| 美女精品自拍一二三四| 久久国产夜色精品鲁鲁99| 激情国产一区二区 | 久久久噜噜噜久久中文字幕色伊伊| 色噜噜狠狠色综合中国| 国产精品一区免费在线观看| 岛国精品一区二区| 91一区二区三区在线观看| 成人动漫在线一区| 精品一区二区三区在线观看| 国产综合色精品一区二区三区| 国产激情视频一区二区三区欧美| 国产很黄免费观看久久| www.久久久久久久久| 在线一区二区三区四区五区| 欧美日韩国产高清一区| 91精品国产综合久久香蕉的特点| 欧美电视剧在线观看完整版| 久久精品一区二区三区不卡| 中文字幕一区二区三区色视频| 亚洲愉拍自拍另类高清精品| 石原莉奈在线亚洲二区| 国产一区二区三区在线观看免费 | 国产一区二区三区日韩| 成人在线一区二区三区| 日本精品免费观看高清观看| 538prom精品视频线放| 国产亚洲综合在线| 亚洲欧美日韩中文播放| 日韩电影一区二区三区四区| 国产在线精品不卡| 91美女精品福利| 91精品久久久久久久91蜜桃| 国产视频一区在线播放| 一区二区三区在线播放| 麻豆91在线观看| kk眼镜猥琐国模调教系列一区二区 | 日韩欧美成人一区| 久久精品日产第一区二区三区高清版 | 中文字幕在线不卡一区二区三区| 亚洲韩国一区二区三区| 精久久久久久久久久久| 99久久99久久精品国产片果冻| 欧美美女一区二区| 久久精品视频在线看| 亚洲尤物在线视频观看| 国产伦精品一区二区三区免费迷 | 亚洲成人久久影院| 国产美女娇喘av呻吟久久| 在线精品国精品国产尤物884a | 日韩欧美亚洲国产精品字幕久久久| 中文字幕免费一区| 亚洲bt欧美bt精品| 国产激情视频一区二区三区欧美| 欧美色大人视频| 国产农村妇女毛片精品久久麻豆| 亚洲一区二区精品久久av| 国产精品99久久久久久久vr| 欧美日韩在线播放三区四区| 久久久久久亚洲综合| 成人免费视频免费观看| 国产日韩欧美精品在线| 亚洲美女免费视频| 国内精品伊人久久久久av一坑 | 亚洲视频精选在线| 精品一区二区三区视频| 一本久久a久久精品亚洲| 欧美精品一区二区三区四区| 亚洲国产va精品久久久不卡综合| 粉嫩13p一区二区三区| 欧美一级生活片| 一级特黄大欧美久久久| 高清成人免费视频| 日韩欧美高清一区| 亚洲一区二区精品久久av| bt7086福利一区国产| 久久亚洲精品小早川怜子| 日本美女视频一区二区| 欧洲av在线精品| 亚洲欧美综合色|