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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 實驗九(點對點串行通信2)_發(fā)送.asm

?? 單片機只是別人的東西
?? ASM
字號:

;功能:在“串入并出”芯片擴展輸出引腳基礎(chǔ)上,增加串行通信

DISPBUF  DATA    48H     ;筆段碼顯示緩沖區(qū):
                         ;48H單元記錄千位,49H單元記錄百位
                         ;4AH單元記錄十位,4BH單元記錄個位

BTIME    DATA    40H     ;10ms計數(shù)單元
SECOND   DATA    4CH     ;秒計數(shù)單元
MINUTE   DATA    4DH     ;分計數(shù)單元
DISPB    BIT     00H     ;1秒定時時間到標志

TXDBuf   DATA	  30H	 ;發(fā)送緩沖區(qū)
TXDC     DATA     35H    ;發(fā)送/接收字節(jié)計數(shù)器
TXDOK    BIT      07H    ;發(fā)送成功標志(1-成功;0-失敗)

SDI     BIT  P1.2 ;串行數(shù)據(jù)輸入
SCLK    BIT  P3.4 ;串行數(shù)據(jù)移位脈沖
PCLK    BIT  P3.5 ;并行鎖存脈沖


ORG 0000H
LJMP MAIN

ORG 0023H
LJMP UART        ;跳串行口中斷服務(wù)程序入口地址

ORG 002BH
LJMP CTC2               ;定時/計數(shù)器T2中斷服務(wù)程序入口地址

ORG 0050H
;-----主程序開始-----
PROC MAIN
MAIN:
     MOV SP, #0DFH     ;對于具有256字節(jié)內(nèi)部RAM芯片來說,
                       ;將0E0H-0FFH,共計32字節(jié)作為堆棧區(qū)
     MOV DPTR, #8000H  ;關(guān)閉蜂鳴器
     MOV A, #0FFH
     MOVX @DPTR, A

     ;---復(fù)位后,將08H-0FF內(nèi)部RAM單元清0。
     MOV R7, #248
     MOV R0, #08H
LOOP1:
     MOV @R0, #0
     INC R0
     DJNZ R7, LOOP1


     ;----初始化定時器T2
     MOV TH2, #0DCH
     MOV TL2, #00H          ;初值0DC00送定時器T2
     MOV RCAP2H, #0DCH
     MOV RCAP2L, #00H       ;初始化重裝初值
     MOV T2CON, #00000100B  ;初始化T2工作方式(自動重裝初值、定時)
                            ;并啟動了T2

     ;初始化定時器T1(作串行通信波特率發(fā)生器輸入信號)
     MOV TL1, #250          ;4800波特率對應(yīng)定時器初值
     MOV TH1, #250
     ANL TMOD, #0F0H
     ORL TMOD, #00100000B   ;定時器T1工作在方式2(8位自動重裝初值)
     SETB TR1               ;啟動定時器T1
     CLR ET1                ;禁止T1中斷

     ;初始化串行口
     MOV SCON, #11010000B   ;串行口工作在方式3,SM2=0,以便用TB8位
                            ;作奇偶校驗位。
     ;SETB REN              ;允許接收

     ;-----初始化中斷控制器
     SETB PT2               ;將定時器T2中斷優(yōu)先級置為高
     ORL IE, #10110000B
     ;SETB ET2              ;允許定時器T2中斷
     ;SETB ES               ;允許串行口中斷
     ;SETB EA               ;開中斷



     MOV BTIME, #100          ;T2每10ms中斷一次,則BTIME回零時間為100*10ms
WAIT:
     JNB DISPB, WAIT
     CLR DISPB                ;清除1秒時間到標志
     LCALL TIMEPROC           ;執(zhí)行分秒處理及顯示子程序
     LCALL S_DISP             ;執(zhí)行串行輸出子程序,將筆段碼送LED
     LCALL TIMETXB            ;時間送發(fā)送緩沖區(qū),并啟動串行發(fā)送
     SJMP WAIT                ;等待
END


;定時/計數(shù)器T2中斷服務(wù)程序
PROC CTC2
CTC2:

     DJNZ  BTIME, EXIT ;溢出次數(shù)減1,不為0跳轉(zhuǎn)
     ;溢出次數(shù)已經(jīng)回到0,重新初始化溢出次數(shù)
     MOV BTIME, #100
     SETB DISPB         ;置位1秒時間到標志
EXIT:
     CLR TF2             ;清除定時器T2溢出標志
     RETI
END

PROC TIMEPROC            ;分秒處理及顯示子程序
TIMEPROC:
     ;時間計數(shù)單元加+1處理
     INC SECOND          ;秒計數(shù)單元+1
     MOV A, SECOND
     CJNE A, #60, NEXT1
NEXT1:
     JC NEXT2
     ;秒大于60,從0開始計數(shù),且分計數(shù)單元加1
     MOV SECOND, #0
     INC MINUTE
     MOV A, MINUTE
     CJNE A, #60, NEXT21
NEXT21:
     JC NEXT2          ;分小于60
     MOV SECOND, #0
NEXT2:
     ;秒單元計數(shù)器筆段碼送顯示緩沖區(qū)
     MOV A, SECOND
     MOV B, #10
     DIV AB             ;轉(zhuǎn)換為BCD碼
                        ;十位在A中,個位在B中
     MOV DPTR, #LEDTAB  ;0-F字模表首地址送DPTR
     MOV R0, #DISPBUF+2
     MOVC A, @A+DPTR    ;查表取筆段碼
     MOV @R0, A         ;秒高位筆段碼送顯示緩沖區(qū)

     INC R0             ;指向緩沖區(qū)最低位
     MOV A, B           ;取個位碼
     MOVC A, @A+DPTR    ;查表取筆段碼
     MOV @R0, A         ;秒低位筆段碼送顯示緩沖區(qū)

     ;分單元計數(shù)器筆段碼送顯示緩沖區(qū)
     MOV A, MINUTE
     MOV B, #10
     DIV AB             ;轉(zhuǎn)換為BCD碼
                        ;十位在A中,個位在B中
     MOV DPTR, #LEDTAB  ;0-F字模表首地址送DPTR
     MOV R0, #DISPBUF
     MOVC A, @A+DPTR    ;查表取筆段碼
     MOV @R0, A         ;分高位筆段碼送顯示緩沖區(qū)

     INC R0             ;指向緩沖區(qū)最低位
     MOV A, B           ;取個位碼
     MOVC A, @A+DPTR    ;查表取筆段碼
     CLR ACC.7          ;顯示LED202數(shù)碼管的小數(shù)點dp
     MOV @R0, A         ;分低位筆段碼送顯示緩沖區(qū)
     RET
END

PROC S_DISP             ;串行輸出子程序
S_DISP:
    MOV R0, #DISPBUF    ;顯示緩沖區(qū)首地址送R0
    MOV R7, #4
LOOP2:
    MOV A, @R0
    MOV R6, #8
LOOP1:
    CLR SCLK
    RLC A
    MOV SDI, C         ;串行數(shù)據(jù)送SDI引腳
    SETB SCLK          ;鎖存串行輸入數(shù)據(jù)
    DJNZ R6, LOOP1
    ;取下一顯示碼
    INC R0
    DJNZ R7, LOOP2
    ;4位筆段碼已全部移到串入并出芯片中
    CLR PCLK
    NOP                  ;延遲一個機器周期
    SETB PCLK
    RET
END

PROC TIMETXB  ;時間送發(fā)送緩沖區(qū)
TIMETXB:

     MOV A, SECOND
     MOV B, #10
     DIV AB             ;轉(zhuǎn)換為BCD碼
                        ;十位在A中,個位在B中
     MOV R0, #TXDBuf+2
     MOV @R0, A
     INC R0
     MOV @R0, B         ;秒低位送發(fā)送緩沖區(qū)緩沖區(qū)

     ;分單元計數(shù)器筆段碼送顯示緩沖區(qū)
     MOV A, MINUTE
     MOV B, #10
     DIV AB             ;轉(zhuǎn)換為BCD碼
                        ;十位在A中,個位在B中
     MOV R0, #TXDBuf
     MOV @R0, A
     INC R0
     MOV @R0, B         ;分低位送發(fā)送緩沖區(qū)緩沖區(qū)

     ;計算校驗和
     MOV R0, #TXDBuf
     MOV R7, #4
     CLR A              ;清累加器
LOOP1:
     ADD A, @R0         ;累加求和!
     INC R0
     DJNZ R7, LOOP1
     ANL A, #7FH        ;保留和的低7位,避免與幀首標志相同
     MOV @R0, A         ;校驗和存入發(fā)送緩沖區(qū)

     MOV A, #0AAH       ;先發(fā)送幀首標志
     MOV C, P           ;奇偶標志P送C
     MOV TB8, C         ;奇偶標志P送TB8,即b8位
     MOV SBUF, A        ;寫串行口緩沖寄存器,啟動發(fā)送
     MOV TXDC, #0       ;初始化發(fā)送字節(jié)數(shù)
     RET
END


PROC UART                  ;串行中斷服務(wù)子程序
UART:
    PUSH ACC
    PUSH PSW

    SETB RS0               ;切換工作寄存器區(qū)
    SETB RS1

    JNB TI, NEXT2
    ;串行發(fā)送結(jié)束中斷
    CLR TI                 ;清除發(fā)送結(jié)束中斷
    ;檢查發(fā)送字節(jié)計數(shù)器,確定是否已發(fā)送了所有數(shù)據(jù)
    MOV A, TXDC
    CJNE A, #5, NEXT1
NEXT1:
    JNC NEXT2
    ;小于5,說明尚未完成發(fā)送
    ADD A, #TXDBuf           ;加上發(fā)送緩沖區(qū)首地址
    MOV R0, A
    MOV A, @R0             ;取發(fā)送數(shù)據(jù)
    MOV C, P               ;奇偶標志P送C
    MOV TB8, C             ;奇偶標志P送TB8,即b8位
    MOV SBUF, A            ;寫串行口緩沖寄存器,啟動發(fā)送
    INC TXDC               ;發(fā)送字節(jié)計數(shù)器加1
NEXT2:
    JNB RI, EXIT           ;退出
    CLR RI                 ;清除發(fā)送結(jié)束中斷
    ;串行接收有效
    MOV A, SBUF
    ;執(zhí)行奇偶校驗,P標志與RB8位應(yīng)該相同,否則就錯
    MOV C, P
    ANL C, /RB8            ;計算P. /RB8
    MOV F0, C              ;暫時保存F0標志中
    MOV C, RB8
    ANL C, /P              ;計算RB8. /P
    ORL C, F0              ;完成了P與RB8的異或運算!
    JC EXIT                ;奇偶校驗錯!
    ;奇偶校驗正確!
    CJNE A, #0A5H, NEXT3
    ;等于0A5H,說明接收方已經(jīng)準確接收,成功標志置1
    SETB TXDOK
    SJMP EXIT
NEXT3:
    CJNE A, #0A6H, EXIT
    ;重新發(fā)送
    CLR TXDOK          ;清除發(fā)送成功標志
    MOV TXDC, #0       ;初始化發(fā)送字節(jié)計數(shù)器
    MOV A, #0AAH       ;發(fā)送幀首標志
    MOV C, P           ;奇偶標志P送C
    MOV TB8, C         ;奇偶標志P送TB8,即b8位
    MOV SBUF, A        ;寫串行口緩沖寄存器,啟動發(fā)送
EXIT:
    POP PSW
    POP ACC
    RETI
END


LEDTAB:                 ;八段LED共陽數(shù)碼管字模
;數(shù)碼  0     1     2     3     4     5    6    7
DB     0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H

;數(shù)碼  8     9     A     B     C     D     E     F
DB     80H,  90H,  88H, 83H,  0C6H, 0A1H, 86H, 8EH

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产免费观看| 自拍av一区二区三区| 国产精品久久影院| 三级欧美韩日大片在线看| 成人小视频在线观看| 91精品国产综合久久久蜜臀粉嫩 | 亚洲精品久久久久久国产精华液| 奇米影视一区二区三区小说| 日本乱人伦aⅴ精品| 国产精品欧美极品| 国产麻豆精品在线| 精品久久久久一区| 欧美aaa在线| 欧美老年两性高潮| 亚洲一区二区在线视频| 99免费精品视频| 久久久91精品国产一区二区精品 | 国产成人精品一区二| 777午夜精品视频在线播放| 一区二区国产盗摄色噜噜| 国产不卡视频在线播放| 精品国产自在久精品国产| 亚洲成av人影院| 欧美三级欧美一级| 亚洲人成影院在线观看| 高清shemale亚洲人妖| 久久影院午夜片一区| 久久99九九99精品| 亚洲精品一区二区三区精华液 | www欧美成人18+| 美女网站在线免费欧美精品| 欧美色精品在线视频| 亚洲久草在线视频| 91福利资源站| 一区二区三区小说| 欧美日韩免费视频| 日韩国产在线一| 日韩一级二级三级| 激情深爱一区二区| 久久久精品国产99久久精品芒果 | 中文字幕一区二区三区在线播放 | 日韩一区二区三区高清免费看看| 蜜臀av亚洲一区中文字幕| 欧美一区二区三区不卡| 捆绑紧缚一区二区三区视频| 久久亚洲精精品中文字幕早川悠里 | 亚洲欧美怡红院| 日本精品一区二区三区四区的功能| 亚洲一区二区在线视频| 欧美精品一级二级三级| 狠狠色综合播放一区二区| 国产视频一区二区三区在线观看| av一区二区久久| 亚洲午夜在线视频| 欧美一区二区美女| 国产99久久久国产精品潘金 | 亚洲精品在线网站| 99麻豆久久久国产精品免费| 一区二区三区成人| 在线成人高清不卡| 国产成人精品影院| 亚洲一级二级三级| 久久久久久久久蜜桃| 99久久99久久久精品齐齐| 丝袜美腿高跟呻吟高潮一区| 欧美精品1区2区| 成人一区二区视频| 一区二区三区在线观看动漫| 欧美电影免费观看完整版| 93久久精品日日躁夜夜躁欧美| 亚洲国产精品久久一线不卡| 2024国产精品视频| 色狠狠桃花综合| 国产美女精品一区二区三区| 亚洲欧美另类图片小说| 精品国产乱码久久久久久闺蜜| 777午夜精品视频在线播放| 久久se精品一区精品二区| 综合久久国产九一剧情麻豆| 91精品国产欧美一区二区18| 91免费视频网址| 国产在线观看一区二区| 亚洲图片欧美综合| 国产精品免费视频网站| 日韩精品一区二区三区四区视频| 色8久久精品久久久久久蜜 | 久久综合久久综合久久综合| 欧美性色aⅴ视频一区日韩精品| 国产麻豆精品视频| 日日夜夜精品视频天天综合网| 国产精品福利影院| 久久久久久亚洲综合| 6080国产精品一区二区| 色婷婷综合久色| 岛国一区二区在线观看| 国产一区在线精品| 精品一区二区三区在线视频| 午夜欧美大尺度福利影院在线看| 专区另类欧美日韩| 国产精品美女久久久久高潮| 国产亚洲一本大道中文在线| 欧美成人免费网站| 欧美一级片免费看| 欧美日韩视频专区在线播放| 欧美私模裸体表演在线观看| 91国偷自产一区二区三区观看| 91在线丨porny丨国产| 国产ts人妖一区二区| 国产91精品一区二区| 国产成人av网站| 成人夜色视频网站在线观看| 成人免费视频一区| 成人手机在线视频| va亚洲va日韩不卡在线观看| 不卡视频在线看| 99久久99久久精品免费观看| 成人av电影在线网| 不卡视频在线观看| 一本到不卡精品视频在线观看| 99热在这里有精品免费| 91亚洲永久精品| 色欧美88888久久久久久影院| 色婷婷av一区二区三区gif| 色偷偷88欧美精品久久久| 色乱码一区二区三区88| 欧美日韩国产成人在线91| 这里只有精品免费| 日韩精品在线看片z| 久久一日本道色综合| 中文幕一区二区三区久久蜜桃| 国产精品久久久久桃色tv| 亚洲私人黄色宅男| 婷婷综合五月天| 精品一区二区在线免费观看| 懂色av中文字幕一区二区三区| 成人午夜私人影院| 欧美亚洲日本国产| 精品少妇一区二区三区| 国产精品美女视频| 亚洲一区二区三区不卡国产欧美| 日欧美一区二区| 国产精品综合av一区二区国产馆| 99久久久久久99| 欧美日韩第一区日日骚| 久久久久久麻豆| 亚洲一区二区五区| 国产一区二区免费在线| 在线视频亚洲一区| 久久久久久夜精品精品免费| 麻豆精品一区二区| 波多野结衣中文字幕一区二区三区| 色域天天综合网| 久久综合狠狠综合久久综合88 | 日韩影院精彩在线| 国产69精品久久久久毛片| 欧美日本国产视频| 日本一区二区成人| 青青草国产成人99久久| 99精品视频在线观看| 日韩欧美电影一二三| 一区二区在线免费观看| 国产一区高清在线| 欧美精品 日韩| 亚洲人成网站在线| 久久国产精品露脸对白| 欧美色窝79yyyycom| 亚洲国产精品激情在线观看| 日本不卡不码高清免费观看| 成人妖精视频yjsp地址| 精品久久国产97色综合| 午夜在线电影亚洲一区| 成人av电影免费观看| 精品99一区二区| 日韩成人一级大片| 欧美午夜理伦三级在线观看| 久久麻豆一区二区| 免费看日韩精品| 欧美三级电影网| 亚洲欧美色综合| 99久久精品国产导航| 国产午夜精品福利| 久久99热99| 欧美精品在线视频| 亚洲午夜在线观看视频在线| 色综合天天综合网天天狠天天 | 日韩欧美亚洲国产另类 | 国产一区二区伦理| 精品日韩一区二区三区| 天堂久久一区二区三区| 91黄色免费网站| 亚洲精品国产视频| 一本到三区不卡视频| 亚洲蜜臀av乱码久久精品蜜桃| 成人激情动漫在线观看| 中日韩免费视频中文字幕| 国产不卡在线一区| 国产女人18毛片水真多成人如厕| 国产一区二区主播在线| 久久久噜噜噜久久人人看| 紧缚捆绑精品一区二区|