日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于51單片機(jī)和8279驅(qū)動(dòng)八段數(shù)碼管顯示與上位機(jī)通信的串口收發(fā)程序
基于51單片機(jī)和8279驅(qū)動(dòng)八段數(shù)碼管顯示與上位機(jī)通信的串口收發(fā)程序
 更新時(shí)間:2008-7-26 20:01:32  點(diǎn)擊數(shù):2
【字體: 字體顏色

;系統(tǒng)晶振是 11.0592 MHz

;上位機(jī)用串口調(diào)試助手來(lái)配合實(shí)驗(yàn)
Z8279          EQU            0FF82H         ;8279 狀態(tài)/命令口地址
D8279          EQU            0FF80H         ;8279 數(shù)據(jù)口地址
LEDMOD         EQU            00H            ;左邊輸入 八位字符顯示
                               ;外部譯碼鍵掃描方式,雙鍵互鎖
LEDFEQ         EQU            33H            ;掃描速率
LEDCLS         EQU            0C1H           ;清除顯示 RAM
LEDWR0         EQU            80H            ;設(shè)定的將要寫入的顯示RAM地址
READKB         EQU            40H            ;讀 FIFO RAM 地址 0 的命令字

               ORG            0000H
               AJMP           START
               ORG            0040H
START:
               MOV            SP,#60H
               LCALL          INIT8279               ;初始化8279
               MOV            SCON,#50H              ;串口 方式 1
               MOV            TMOD,#20H              ;T1 方式 1
               MOV            TL1,#0FDH              ;波特率 9600 的常數(shù)
               MOV            TH1,#0FDH
               SETB           TR1               

                          SETB           EA
WAIT:
               JBC            RI,DIS_REC             ;是否接收到數(shù)據(jù)
               LCALL          GETKEY                 ;讀鍵盤
               CJNE           A,#0FFH,WAIT           ;是否有鍵輸入
               MOV            SBUF,B                 ;串口輸出鍵盤輸入的值
               NOP
SS:            JBC            TI,WAIT                ;是否發(fā)送完畢
               SJMP           SS

DIS_REC:
               MOV            A,SBUF                 ;讀串口接收到的數(shù)據(jù)
               CLR            C
               SUBB           A,#30H                 ;以下判定輸入是否在0-F
               JC            ERROR
               SUBB           A,#0AH
               JNC            DIS_REC1
               ADD            A,#0AH
               SJMP           DIS_REC2
DIS_REC1:
               SUBB           A,#7H
               JC             ERROR
               SUBB           A,#6H
               JNC            ERROR
               ADD            A,#10H
DIS_REC2:
               MOV            R4,#00H
               MOV            R5,A
               LCALL          DISLED                 ;顯示輸入的數(shù)字(0-F)
ERROR:         AJMP           WAIT

INIT8279:                              ;8279初始化子程序
               PUSH          DPH                     ;保存現(xiàn)場(chǎng)
               PUSH          DPL
               PUSH          ACC
               LCALL         DELAY                   ;延時(shí)
               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                     ;恢復(fù)現(xiàn)場(chǎng)
               POP           DPL
               POP           DPH
               RET
;讀取鍵盤子程序
;輸入: 無(wú)          ; 輸出: B: 讀到的鍵碼 A: 按鍵的標(biāo)志
GETKEY: PUSH          DPH                     ;保存現(xiàn)場(chǎng)
               PUSH          DPL
               PUSH          PSW
               MOV           DPTR,#Z8279
               MOVX          A,@DPTR                 ;讀8279狀態(tài)
               ANL           A,#07H                  ;屏蔽D7-D3
               JNZ           GETVAL                  ;判斷是否有鍵輸入
               MOV           A,#0H                   ;置標(biāo)志(無(wú)鍵輸入)
               SJMP          NKBHIT
GETVAL: MOV           A,#READKB               ;讀 FIFO RAM 命令
               MOVX          @DPTR,A
               MOV           DPTR,#D8279
               MOVX          A,@DPTR                 ;讀鍵
               ANL           A,#0FH                  ;屏蔽 SHIFT 和 CTRL 鍵
               MOV           DPTR,#KEYCODE           ;鍵碼表起始地址
               MOVC          A,@A+DPTR               ;查表
               MOV           B,A                     ;置返回鍵值
               MOV           A,#0FFH                 ;置標(biāo)志(有鍵輸入)
NKBHIT: POP           PSW                     ;恢復(fù)現(xiàn)場(chǎng)
               POP           DPL
               POP           DPH
               RET
;顯示字符子程序
;輸入: R4,位置 R5,值
DISLED:         PUSH          DPH                    ;保存現(xiàn)場(chǎng)
                PUSH          DPL
                PUSH          ACC
                MOV           A,#LEDWR0              ;置顯示起始地址
                ADD           A,R4                   ;加位置偏移量
                MOV           DPTR,#Z8279
                MOVX          @DPTR,A                ;設(shè)定顯示位置
                MOV           DPTR,#LEDSEG           ;置顯示常數(shù)表起始位置
                MOV           A,R5
                MOVC          A,@A+DPTR              ;查表
                MOV           DPTR,#D8279
                MOVX          @DPTR,A                ;顯示數(shù)據(jù)
                POP           ACC                    ;恢復(fù)現(xiàn)場(chǎng)
                POP           DPL
                POP           DPH
                RET

DELAY:                                 ;延時(shí)子程序
               PUSH           0                      ;保存現(xiàn)場(chǎng)
               PUSH           1
               MOV            0,#0H
DELAY1: MOV            1,#0H
               DJNZ           1,$
               DJNZ           0,DELAY1
               POP            1                      ;恢復(fù)現(xiàn)場(chǎng)
               POP            0
               RET
;LED顯示常數(shù)表
LEDSEG: DB             3FH,06H,5BH,4FH,66H,6DH,7DH,07H
               DB             7FH,6FH,77H,7CH,39H,5EH,79H,71H
               DB             0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H
               DB             0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H
               DB             6DH,02H,08H,00H,59H,0FH,76H     
;鍵盤鍵碼表
KEYCODE:DB             30H,31H,32H,33H,34H,35H,36H,37H
               DB             38H,39H,41H,42H,43H,44H,45H,46H
               DB             47H,48H,49H,4AH,4BH,4CH,4DH,4EH
               END

  • 上一篇: 兩片51單片機(jī)互相通信的串行通信程序(一個(gè)發(fā)送程序,一個(gè)接收程序)
  • 下一篇: 基于51單片機(jī)和8279驅(qū)動(dòng)八段數(shù)碼管顯示與上位機(jī)通信的串口收發(fā)程序
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1