《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 用PIC做的一個MOUSE程序

用PIC做的一個MOUSE程序

2009-01-16
關鍵詞: PIC 源代碼

PIC做的一個MOUSE程序

TITLE " MOUSE "
 LIST   P=16C54,R=O
;
;*******************************************
;*                                         *
;*   MOUSE CONTROLLER                      *
;*                                         *
;*   VERSION : 25 APRIL, 1990              *
;*                                         *
;*   PIC MODE = PIC16C54XT   CLK=4.0MHZ    *
;*******************************************
;
;-------------------------------------------
;       FILES ASSIGNMENT
;-------------------------------------------
;
STATUS EQU 3            ;STATUS REGISTER
RA EQU 5                ;I/O PORT A
RB EQU 6                ;I/O PORT B
TIMER1 EQU 10           ;COUNTER FOR DELAY
CSTAT EQU 14            ;CO-ORDINATE STATUS
BSTAT EQU 15            ;BUTTON STATUS
DATA0 EQU 16            ; 
DATA1 EQU 17            ;
DATA2 EQU 20            ;5 BYTE RS232 DATA
DATA3 EQU 21            ;
DATA4 EQU 22            ;
FLAGA EQU 23            ;GENERAL PURPOSE FLAG
XCOUNT EQU 24           ;X-MOVEMENT COUNTER
YCOUNT EQU 25           ;Y-MOVEMENT COUNTER
FLAGB EQU 26            ;GENERAL PURPOSE FLAG
COUNT EQU 30            ;GENERAL PURPOSE COUNTER
DATA_AREA EQU 31             ;FOR TEMP. STORAGE
;
;------------------------------------------
;       BIT ASSIGNMENT
;------------------------------------------
;
YC EQU 0                ;Y-CLOCK PIN
YD EQU 1                ;Y-DATA PIN
UP EQU 1                ;MOVING UP FLAG
XC EQU 2                ;X-CLOCK PIN
XD EQU 3                ;X-DATA PIN
RI EQU 3                ;MOVING RIGHT FLAG
BU1 EQU 0               ;BUTTON #1 PIN
BU2 EQU 2               ;BUTTON #2 PIN
CA EQU 0                ;CARRY FLAG
RD EQU 7                ;RECEIVED DATA PIN TO RS232
ZERO_AREA EQU 2              ;ZERO FLAG
TR EQU 2                ;TIGGER FLAG
;
;===========================================
;       SUBROUTINES
;===========================================
;
;*******************************************
 ORG 0
;*******************************************
;
;===========================================
; DELAY A BIT TIME AND CHECK XC & YC STATUS
;===========================================
BIT
 BTFSS RA,XC            ;XC = 1 ?
 GOTO BIT0
 BTFSC CSTAT,XC         ;(XC=1)
 GOTO BITY              ;(XC ALWAYS = 1)
 INCF XCOUNT            ;(XC --|__)
 BCF FLAGB,RI           ;DEFAULT LEFT
 BTFSS RA,XD            ;LEFT / RIGHT ?
 GOTO BITY
 BSF FLAGB,RI
 GOTO BITY
BIT0
 BTFSS CSTAT,XC         ;(XC=0)
 GOTO BITY              ;(XC ALWAYS = 0)
 INCF XCOUNT            ;(XC __|--)
 BCF FLAGB,RI           ;DEFAULT LEFT
 BTFSC RA,XD            ;LEFT / RIGHT ?
 GOTO BITY
 BSF FLAGB,RI
BITY
 BTFSS RA,YC            ;YC = 1 ?
 GOTO BITY0
 BTFSC CSTAT,YC         ;(YC=1)
 GOTO BITDY             ;(YC ALWAYS = 1)
 INCF YCOUNT            ;(YC --|__)
 BCF FLAGB,UP           ;DEFAULT DOWN
 BTFSS RA,YD            ;DOWN / UP ?
 GOTO BITDY
 BSF FLAGB,UP
 GOTO BITDY
BITY0
 BTFSS CSTAT,YC         ;(YC=0)
 GOTO BITDY             ;(YC ALWAYS = 0)
 INCF YCOUNT            ;(YC __|--)
 BCF FLAGB,UP           ;DEFAULT DOWN
 BTFSC RA,YD            ;DOWN / UP ?
 GOTO BITDY
 BSF FLAGB,UP
BITDY
 MOVF RA,W              ;SAVE COOR. STATUS
 MOVWF CSTAT
 MOVLW 193D             ;0.833 MS DELAY
 MOVWF TIMER1
BITD0
 NOP
 DECFSZ TIMER1
 GOTO BITD0
 RETLW 0
;
;=================================================
;
;************************************************
;*      SUBROUTINE TO SEND A BYTE               *
;*      AS RS232C FORMAT 8,N,1                  *
;************************************************
;
BYTE
 CLRF COUNT             ;RESET 8 BIT COUNT
 BTFSS FLAGA,TR         ;ANY TRIGGER
 GOTO BYTE0
 BCF RB,RD              ;LOW RD FOR START BIT
BYTE0
 CALL BIT
BYTE1
 BTFSS FLAGA,TR         ;ANY TRIGGER ?
 GOTO BYTE3
 RRF DATA_AREA               ;SHIFT DATA TO CARRY
 BTFSS STATUS,CA        ;0 / 1 ?
 GOTO BYTE2
 BSF RB,RD              ;SEND A 1
 GOTO BYTE3
BYTE2
 BCF RB,RD              ;SEND A 0
BYTE3
 CALL BIT
 INCF COUNT
 BTFSS COUNT,3          ;COUNT = 8 ?
 GOTO BYTE1
 BTFSS FLAGA,TR         ;ANY TRIGGER ?
 GOTO BYTE4
 BCF RB,RD              ;SEND SENT BIT
 CALL BIT
 BSF RB,RD
 CALL BIT
 GOTO BYTE5
BYTE4
 CALL BIT
 CALL BIT
BYTE5
 RETLW 0
;
;============================================
;       RESET ENTRY
;============================================
;
INIT
 MOVLW B'11000001'      ;DISABLE WATCH DOG
 OPTION
 MOVLW B'00001111'      ;INIT RB0~3 BE INPUTS
 TRIS RB                ;RB4~7 BE OUTPUTS
 MOVLW B'11111111'      ;INIT RA0~3 BE INPUTS
 TRIS RA
 BSF RB,RD              ;HIGH RD PIN
 COMF RB,W              ;GET INIT BUTTON INPUTS
 ANDLW B'00000101'
 IORLW B'10000000'
 MOVWF BSTAT
 MOVWF DATA0           
 MOVF RA,W
 MOVWF CSTAT
 CLRF FLAGA             ;CLEAR TR FLAG
 CLRF XCOUNT            ;RESET XCOUNT & YCOUNT
 CLRF YCOUNT
SCAN
 CLRF DATA1             ;UPDATE X,Y MOVEMENT DATA
 CLRF DATA2
 CLRF DATA3
 CLRF DATA4
 MOVF XCOUNT,W          ;XCOUNT = 0 ?
 BTFSS STATUS,ZERO_AREA
 GOTO WRITX
SCANA
 MOVF YCOUNT,W          ;YCOUNT = 0 ?
 BTFSS STATUS,ZERO_AREA
 GOTO WRITY
SCANB
 COMF RB,W              ;BUTTON STATUS CHANGE ?
 ANDLW B'00000101'
 IORLW B'10000000'
 SUBWF BSTAT
 BTFSC STATUS,ZERO_AREA      ;IF CHANGE THEN TRIGGER
 GOTO SCANC             ;(NO CHANGE)
 BSF FLAGA,TR           ;(CHANGE) SET TRIGGER FLAG
 COMF RB,W              ;FORMAT BUTTON STATUS DATA
 ANDLW B'00000101'
 IORLW B'10000000'
 MOVWF DATA0
SCANC
 COMF RB,W
 ANDLW B'00000101'
 IORLW B'10000000'
 MOVWF BSTAT
 MOVF DATA0,W           ;SEND DATA0,1,2,3,4 TO HOST
 MOVWF DATA_AREA
 CALL BYTE
 MOVF DATA1,W
 MOVWF DATA_AREA
 CALL BYTE
 MOVF DATA2,W
 MOVWF DATA_AREA
 CALL BYTE
 MOVF DATA3,W
 MOVWF DATA_AREA
 CALL BYTE
 MOVF DATA4,W
 MOVWF DATA_AREA
 CALL BYTE
 BCF FLAGA,TR           ;CLEAR TRIGGER FLAG
 GOTO SCAN
;
WRITX
 BSF FLAGA,TR           ;SET TRIGGER FLAG
 MOVLW 40H              ;IF XCOUNT > 64 THEN XCOUNT <-64
 SUBWF XCOUNT,W
 BTFSC STATUS,CA
 GOTO WRITR
WRITS
 BTFSS FLAGB,RI         ;LEFT / RIGHT ?
 GOTO WRITL
 COMF XCOUNT            ;(RIGHT) NEG XCOUNT
 INCF XCOUNT,W
WRITA
 MOVWF DATA1
 MOVWF DATA3
 CLRF XCOUNT            ;RESET XCOUNT
 GOTO SCANA
;
WRITR
 MOVLW 40H              ;XCOUNT <- 64
 MOVWF XCOUNT
 GOTO WRITS
;
WRITL
 MOVF XCOUNT,W          ;(LEFT)
 GOTO WRITA
;
WRITY
 BSF FLAGA,TR           ;SET TRIGGER FLAG
 MOVLW 40H              ;IF YCOUNT > 64 THEN YCOUNT <-64
 SUBWF YCOUNT,W
 BTFSC STATUS,CA
 GOTO WRITV
WRITW
 BTFSS FLAGB,UP         ;DOWN / UP ?
 GOTO WRITD
 COMF YCOUNT            ;(UP) NEG YCOUNT
 INCF YCOUNT,W
WRITB
 MOVWF DATA2
 MOVWF DATA4
 CLRF YCOUNT            ;RESET YCOUNT
 GOTO SCANB
;
WRITV
 MOVLW 40H              ;YCOUNT <- 64
 MOVWF YCOUNT
 GOTO WRITW
;
WRITD
 MOVF YCOUNT,W          ;(DOWN)
 GOTO WRITB
;
;===========================================
;       RESET ENTRY
;===========================================
;
 ORG 777
 GOTO INIT              ;JUMP TO PROGRAM STARTING
;
 END
;
;********************************************

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲国产精品v| 亚洲欧美日韩专区| 亚洲伦理在线免费看| 国产精品久久二区| 亚洲一区在线观看免费观看电影高清| 亚洲精品男同| 夜夜躁日日躁狠狠久久88av| 国产精品入口夜色视频大尺度| 国产在线视频不卡二| 亚洲一区二区三区精品动漫| 欧美一二三区在线观看| 国产精品劲爆视频| 日韩一级视频免费观看在线| 在线视频精品一| 亚洲欧美另类久久久精品2019| 国产精品久久久久久久久果冻传媒| 国产一区二区三区久久久| 国产精品地址| 欧美黄色片免费观看| 欧美日韩一区二区三区在线观看免| 亚洲精品在线观看免费| 欧美日韩亚洲一区二区三区四区| 欧美一区二区三区四区视频| 欧美一级在线播放| 国产精品久久久一区二区三区| 国产精品自拍小视频| 久久综合中文字幕| 国产日韩欧美高清免费| 久久最新视频| 久久久久久噜噜噜久久久精品| 亚洲一区国产精品| 国产精品亚洲а∨天堂免在线| 欧美在线免费看| 久久不射网站| 国产夜色精品一区二区av| 亚洲香蕉网站| 国产毛片久久| 欧美大片国产精品| 亚洲欧美日韩国产一区二区| 国产亚洲综合在线| 欧美特黄一级大片| 亚洲欧美国产三级| 久久狠狠亚洲综合| 亚洲一区二区三区国产| 欧美午夜三级| 国产亚洲欧美中文| 国产精品高潮呻吟| 亚洲欧美日韩一区在线| 国模大胆一区二区三区| 亚洲国内在线| 在线观看日韩av| 伊人成人开心激情综合网| 亚洲在线观看免费视频| 亚洲男女毛片无遮挡| 久久gogo国模裸体人体| 国产精品观看| 欧美午夜理伦三级在线观看| 伊人成人在线| 欧美在线免费观看| 久久精品国产亚洲高清剧情介绍| 欧美日韩国产成人高清视频| 亚洲国产精品一区二区三区| 亚洲图片激情小说| 亚洲视频精品在线| 国产精品久久久久久久app| 亚洲欧美国产不卡| 一区二区成人精品| 亚洲欧美日本视频在线观看| 国内精品模特av私拍在线观看| 国产精品成人免费| 国产精品一区二区三区观看| 国产一区视频网站| 欧美日韩国产小视频在线观看| 亚洲一区二区少妇| 亚洲精选一区二区| 羞羞视频在线观看欧美| 亚洲国产成人av好男人在线观看| 亚洲欧洲综合另类在线| 久久久久久9999| 国产精品久久久久久久久搜平片| 日韩视频在线一区二区三区| 国产农村妇女毛片精品久久麻豆| 最新亚洲激情| 国产精品成人久久久久| 欧美日韩精品| 国产麻豆精品视频| 亚洲国产精品激情在线观看| 欧美日韩免费观看中文| 久久不射2019中文字幕| 99国产成+人+综合+亚洲欧美| 久久久青草婷婷精品综合日韩| 欧美精选午夜久久久乱码6080| 欧美激情区在线播放| 久久天天狠狠| 国产精品美女www爽爽爽| 国产精品视频网址| 羞羞答答国产精品www一本| 99精品视频一区| 国外成人在线视频网站| 国产视频精品网| 久久国产精品一区二区三区| 女女同性女同一区二区三区91| 亚洲免费综合| 中文亚洲字幕| 国产精品国产三级国产普通话三级| 亚洲一区日韩在线| 一区二区三区视频在线观看| 亚洲精品国产日韩| 国产欧美精品在线| 欧美日本亚洲视频| 午夜精品一区二区三区在线播放| 国产精品极品美女粉嫩高清在线| 亚洲国产日韩欧美在线99| 欧美日韩一区三区| 午夜激情综合网| 欧美专区日韩专区| 欧美理论视频| 亚洲国产高清一区| 久久成人18免费观看| 国产日韩欧美视频在线| 亚洲在线网站| 欧美体内she精视频在线观看| 国内精品久久久久久久影视蜜臀| 一区二区三区 在线观看视| 国产女人精品视频| 亚洲电影欧美电影有声小说| 亚洲最黄网站| 欧美夫妇交换俱乐部在线观看| 欧美精品www在线观看| 国产伦精品一区二区三区免费迷| 欧美丰满少妇xxxbbb| 国产精品一二三视频| 亚洲成色最大综合在线| 久久国产精品一区二区三区四区| 亚洲视频axxx| 亚洲在线一区| 久久亚洲精选| 欧美视频一区二区三区在线观看| 欧美午夜精品久久久久久人妖| 一本色道久久88亚洲综合88| 免播放器亚洲一区| 日韩一二三在线视频播| 国产精品久久久久久av下载红粉| 久久综合伊人| 在线综合视频| 欧美成人激情在线| 亚洲激情专区| 久久久国产精彩视频美女艺术照福利| 一本大道av伊人久久综合| 欧美日韩中文字幕精品| 国产精品久久久久aaaa樱花| 欧美精品三区| 国产精品一区二区在线观看| 欧美午夜在线一二页| 亚洲主播在线播放| 黑人巨大精品欧美一区二区小视频| 亚洲一区日本| 国产日韩在线一区| 亚洲精品女av网站| 欧美系列电影免费观看| 香蕉免费一区二区三区在线观看| 亚洲国产美女精品久久久久∴| 亚洲一级电影| 国产日韩在线视频| 亚洲午夜电影网| 亚洲国内在线| 国产欧美日韩亚洲一区二区三区| 国产精品麻豆成人av电影艾秋| 国产亚洲欧美日韩美女| 欧美一区二区三区在线观看视频| 欧美日韩国产精品一区二区亚洲| 国产一区二区三区在线免费观看| 欧美国产综合视频| 日韩亚洲欧美高清| 这里只有精品视频在线| 亚洲无线一线二线三线区别av| 亚洲人成网站在线观看播放| 欧美天堂亚洲电影院在线观看| 亚洲国产一区二区三区高清| 亚洲国产视频直播| 欧美精品黄色| 激情国产一区| 黄色一区二区三区| 激情综合色丁香一区二区| 欧美另类99xxxxx| 亚洲校园激情| 国产夜色精品一区二区av| 欧美大片在线看免费观看| 国产精品久久久久一区二区三区共| 久久国产一区| 可以看av的网站久久看| 国产精品一区二区久久精品| 妖精成人www高清在线观看| 午夜精品美女自拍福到在线| 国产一区白浆| 亚欧美中日韩视频| 国产精品亚洲一区| 国产精品永久免费观看| 亚洲人人精品| 亚洲一区中文字幕在线观看| 91久久精品日日躁夜夜躁欧美| 久久精品99国产精品酒店日本| 亚洲欧洲在线观看| 亚洲美女免费视频| 宅男66日本亚洲欧美视频| 亚洲精一区二区三区| 欧美日韩综合一区| 一区二区三区精品| 日韩亚洲欧美精品| 影音国产精品| 国产精品草莓在线免费观看| 亚洲欧美精品在线| 欧美日韩国产经典色站一区二区三区| 欧美区一区二区三区| 亚洲综合色丁香婷婷六月图片| 美女图片一区二区| 亚洲精品乱码久久久久久按摩观| 国产三区二区一区久久| 你懂的成人av| 亚洲综合精品自拍| 国产精品久久久久9999| 伊人久久久大香线蕉综合直播| 国产午夜精品全部视频在线播放| 日韩亚洲欧美一区| 免费一区二区三区| 久久精品91久久香蕉加勒比| 久久青青草综合| 久久久精品网| 欧美—级a级欧美特级ar全黄| 好看不卡的中文字幕| 久久狠狠一本精品综合网| 国产精品卡一卡二| 欧美一区二区三区婷婷月色| 久久在线视频| 亚欧成人精品| av成人老司机| 欧美一级一区| 欧美韩国日本综合| 一级日韩一区在线观看| 亚洲第一网站| 欧美三级电影网| 亚洲图片欧洲图片日韩av| 亚洲国产欧美另类丝袜| 亚洲午夜激情免费视频| 欧美日韩国产首页在线观看| 国产精品国产三级国产aⅴ入口| 嫩草伊人久久精品少妇av杨幂| 在线播放视频一区| 欧美剧在线免费观看网站| 亚洲美女福利视频网站| 你懂的成人av| 欧美视频网址| 久久久久青草大香线综合精品| 欧美日韩国产经典色站一区二区三区| 国产精品捆绑调教| 欧美日韩一区二区在线播放| 亚洲欧美激情一区二区| 午夜免费电影一区在线观看| 一本大道久久精品懂色aⅴ| 亚洲美女诱惑| 欧美性大战久久久久久久蜜臀| 美腿丝袜亚洲色图| 亚洲激情影视| 国模一区二区三区| 国产综合视频在线观看| 国产日韩欧美制服另类| 日韩一级视频免费观看在线| 亚洲日本黄色| 亚洲电影av在线| 欧美大片在线影院| 欧美成人一二三| 日韩一级免费观看| 久久精品一区二区国产| 亚洲午夜高清视频| 欧美日韩在线高清| 男女精品网站| 久久激情久久| 欧美日韩一区二区在线观看视频| 久久这里只精品最新地址| 性欧美激情精品| 久久亚洲欧美国产精品乐播| 免费视频一区| 国产麻豆91精品| 欧美伦理a级免费电影| 亚洲一区亚洲二区| 亚洲日本中文| 欧美国产三级| 欧美电影在线观看| 国产精品国产三级国产专区53| 美女爽到呻吟久久久久| 国产一区二区电影在线观看| 一区二区免费在线观看| 国产日韩一区二区三区在线| 国产欧美一区视频| 欧美一区日本一区韩国一区| 国产精品天美传媒入口| 在线视频国内自拍亚洲视频| 欧美日韩高清在线观看| 亚洲国产日本| 新片速递亚洲合集欧美合集| 欧美成年人视频网站欧美| 久久成人免费电影| 亚洲高清电影| 欧美一区二区女人| 久久久久这里只有精品| 国内自拍亚洲| 国语自产精品视频在线看一大j8| 久久精品国产第一区二区三区最新章节| 国产一区91精品张津瑜| 日韩午夜高潮| 欧美乱人伦中文字幕在线| 美女网站在线免费欧美精品| 国产伦精品一区二区三区在线观看| 久久国产毛片| 老鸭窝91久久精品色噜噜导演| 国产视频综合在线| 国产日韩欧美一区二区三区四区| 国产一区二区三区视频在线观看| 亚洲一区二区三区免费视频| 亚洲精品国久久99热| 国产精品入口夜色视频大尺度| 亚洲精品日产精品乱码不卡| 亚洲午夜久久久久久久久电影网| 性欧美8khd高清极品| 在线观看视频免费一区二区三区| 亚洲人体大胆视频| 国产精品高清一区二区三区| 亚洲精选成人|