日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年01月25日(星期六)

2018年01月25日 | 2864LCD顯示遙控鍵值解碼器

發(fā)布者:BlissfulCharm 來源: eefocus關(guān)鍵字:LCD顯示  遙控鍵值  解碼器 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

 

源程序:
;********************************************************************************

;*  標(biāo)題:  偉納電子ME300B 單片機(jī) 開發(fā)系統(tǒng)演示程序 - 12864LCD顯示遙控鍵值讀取器    *
;                                               *
;********************************************************************************
;*  描述:                                                                       *
;*         12864LCD(帶漢字庫)顯示遙控鍵值讀取器                                 *
;*         LCD型號:TS12864A-3(帶漢字庫)或兼容型號      控制器ST7920          *
;*         MCU:AT89S52 ,晶體頻率:11.0592MHz                                    *
;*         P0口為128*64LCD的數(shù)據(jù) D0-D7                                          *
;*         K17鍵按下,繼電器吸合。K19鍵按下,繼電器關(guān)閉                         *
;*         顯示程序在中斷服務(wù)程序之中                                           *                                                                                                        *
;********************************************************************************
;* 【版權(quán)】 Copyright(C)偉納電子 www.willar.com  All Rights Reserved            *
;* 【聲明】 此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!                  *
;********************************************************************************


        IRCOM  EQU  20H       ;20H-23H IR使用
        X     EQU  26H        ;LCD 地址變量

        IRIN   EQU  P3.2
        BEEP   EQU  P3.7
        RELAY  EQU  P1.3

        RS EQU P2.0
        RW EQU P2.1
        EN  EQU P2.2
        PSB EQU P2.3
        RST EQU P2.5
;------------------------------------------------
         ORG 0000H
         JMP  MAIN

         ORG 0003H         ;外部中斷INT0入口地址
         JMP  IR_IN        ;中斷服務(wù)程序
;------------------------------------------------
MAIN:
          MOV   SP,#40H
          MOV   A,#00H
          MOV   R0,#20H
LOOP0:    MOV   @R0,A          ;20H-26H清零
          INC   R0
          CJNE  R0,#27H,LOOP0
          MOV  IE,#81H       ;允許總中斷中斷,使能 INT0 外部中斷
          MOV  TCON,#01H     ;觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
          SETB  IRIN
          SETB RST
   NOP
   SETB PSB            ;8位數(shù)據(jù),并口

          CALL  SET_LCD        ;初始化TS12864A-3
          CALL  MENU1
          CALL  MENU2
          CALL  MENU3
          CALL  MENU4
LOOP1:
          MOV  A,22H
          CJNE  A,#40H,LOOP2    ;K17鍵按下
          CLR   RELAY           ;繼電器吸合
LOOP2:    CJNE  A,#04H,LOOP3    ;K19鍵按下
          SETB  RELAY           ;繼電器關(guān)閉
LOOP3:    JMP   LOOP1

;=============================================
;  LCD 初始化設(shè)置
;=============================================-
SET_LCD:
          CLR  EN
          MOV  A,#34H     ;34H--擴(kuò)充指令操作
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#30H     ;30H--基本指令操作
          CALL  WCOM
          CALL  DELAY1

          MOV  A,#0CH     ;開顯示,關(guān)光標(biāo),
          CALL  WCOM
          CALL  DELAY1
          MOV  A,#01H     ;清除 LCM 顯示屏
          CALL  WCOM
          CALL  DELAY1
          RET
;===================================================
;在 LCM 各行顯示信息字符
;===================================================
LCD_SHOW:

          CJNE  A,#1,LINE2  ;判斷是否為第一行
  LINE1:  MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
          MOV  A,#80H       ;設(shè)置 LCD 的第一行地址
          CALL  WCOM        ;寫入命令
          JMP  FILL

  LINE2:  CJNE  A,#2,LINE3  ;判斷是否為第三行
          MOV  A,#090H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
          MOV  A,#090H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM
          JMP  FILL

  LINE3:  CJNE  A,#3,LINE4  ;判斷是否為第三行
          MOV  A,#088H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
          MOV  A,#088H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM
          JMP  FILL

  LINE4:  CJNE  A,#4,LINE5  ;判斷是否為第三行
          MOV  A,#098H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM        ;寫入命令
          CALL  CLR_LINE    ;清除該行字符數(shù)據(jù)
          MOV  A,#098H      ;設(shè)置 LCD 的第三行地址
          CALL  WCOM

  FILL:   CLR  A            ;填入字符
          MOVC  A,@A+DPTR   ;由消息區(qū)取出字符
          CJNE  A,#0,LC1    ;判斷是否為結(jié)束碼
  LINE5:  RET
  LC1:    CALL  WDATA       ;寫入數(shù)據(jù)
          INC  DPTR         ;指針加1
          JMP  FILL         ;繼續(xù)填入字符
          RET
;=================================================
;清除該行 LCM 的字符
;=================================================
CLR_LINE:
          MOV  R0,#16      ;
   CL1:   MOV  A,#' '
          CALL  WDATA
          DJNZ  R0,CL1
          RET
;==================================================
;LCM 顯示工作菜單信息
;==================================================
MENU1:
         MOV   DPTR,#MENU1A
         MOV   A,#1         ;在第一行顯示信息
         CALL  LCD_SHOW
         RET
MENU1A:  DB  "紅外遙控碼讀取器",0

MENU2:
         MOV   DPTR,#MENU2A
         MOV   A,#2         ;在第二行顯示信息
         CALL  LCD_SHOW
         RET
MENU2A:  DB  "--www.willar.com",0

MENU3:
         MOV   DPTR,#MENU3A
         MOV   A,#3         ;在第三行顯示信息
         CALL  LCD_SHOW
         RET
MENU3A:  DB  "鍵值編碼:- - H",0

MENU4:
         MOV   DPTR,#MENU4A
         MOV   A,#4         ;在第四行顯示信息
         CALL  LCD_SHOW
         RET
MENU4A:  DB  "鍵值反碼:- - H",0

;==============================================
; 寫指令使能子程序
;RS=L,RW=L,D0-D7=指令碼,E=高脈沖
;==============================================
WCOM:
          MOV  P0,A
          CLR RS
          CLR RW
          SETB EN
          CALL  DELAY0
          CLR EN
          RET
;=============================================
;寫數(shù)據(jù)使能子程序
;RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖
;=============================================
WDATA:
          MOV   P0,A
          SETB  RS
          CLR   RW
          SETB  EN
          CALL  DELAY0
          CLR   EN
          RET

DELAY0:   MOV  R7,#250      ;延時500微秒
          DJNZ  R7,$
          RET
;===============================================
;在 LCM 第三行、第四行顯示字符
;A=ASC DATA, B=LINE X POS
;===============================================
LCDP3:                    ;在LCD的第三行顯示字符
         PUSH  ACC        ;
         MOV  A,B         ;設(shè)置顯示地址
         ADD  A,#088H     ;設(shè)置LCD的第三行地址
         CALL  WCOM       ;寫入命令
         POP  ACC         ;由堆棧取出A
         CALL  WDATA      ;寫入數(shù)據(jù)
         RET

LCDP4:                    ;在LCD的第四行顯示字符
         PUSH  ACC        ;
         MOV  A,B         ;設(shè)置顯示地址
         ADD  A,#098H     ;設(shè)置LCD的第四行地址
         CALL  WCOM       ;寫入命令
         POP  ACC         ;由堆棧取出A
         CALL  WDATA      ;寫入數(shù)據(jù)
         RET
;=================================================
; IR 譯碼子程序
;中斷服務(wù)程序
;=================================================
IR_IN:
          CLR EA         ;暫時關(guān)閉CPU的所有中斷請求
          PUSH  ACC
          PUSH  PSW
          SETB  PSW.3     ;選擇工作寄存器組1
          CLR   PSW.4

          MOV   R0,#IRCOM
          MOV  R1,#04H
I1:       JNB  IRIN,I2       ;等待 IR 信號出現(xiàn)
          LCALL CONV
          DJNZ  R1,I1
          JMP  IR_OUT
 I2:      MOV  R4,#20
 I20:     CALL  DEL
          DJNZ  R4,I20
          JB  IRIN,I1        ;確認(rèn)IR信號出現(xiàn)
 I21:     JB  IRIN,I3        ;等 IR 變?yōu)?a href="http://m.weightgang.cn/zhuanti/qbnP0C" style="color:#4595e6;" target="_blank">高電平
          CALL  DEL
          JMP  I21
 I3:      MOV  R3,#0         ;8位數(shù)清為0
 LL:      JNB  IRIN,I4       ;等 IR 變?yōu)?a href="http://m.weightgang.cn/zhuanti/qXzvTS" style="color:#4595e6;" target="_blank">低電平
          CALL  DEL
          JMP  LL
 I4:      JB  IRIN,I5        ;等 IR 變?yōu)楦唠娖?br/>          CALL  DEL
          JMP  I4
 I5:      MOV  R2,#0         ;0.14ms 計數(shù)
 L1:      CALL  DEL
          JB  IRIN, N1       ;等 IR 變?yōu)楦唠娖?br/>                             ;IR=0,檢查R2中的計數(shù)值
          MOV  A,#8
          CLR  C
          SUBB  A,R2         ;判斷高低位
                             ;IF C=0  BIT=0
          MOV  A,@R0
          RRC  A
          MOV  @R0,A         ;處理完一位
          INC  R3
          CJNE  R3,#8,LL     ;需處理完8位
          MOV  R3,#0
          INC  R0
          CJNE  R0,#24H,LL   ;收集到4字節(jié)了
          JMP   IR_SHOW
 N1:      INC  R2
          CJNE  R2,#30,L1    ;0.14ms 計數(shù)過長則時間到自動離開

IR_OUT:   POP  PSW
          POP  ACC
          SETB  EA
          RETI

;------------------------------------------------------------------
IR_SHOW:
          MOV A,22H
          CPL A                ;將22H取反后和23H比較
          CJNE A,23H,IR_SHOW1  ;如果不等表示接收數(shù)據(jù)發(fā)生錯誤,放棄。
          CALL   CONV
          CALL  BEEP_BL        ;蜂鳴器鳴響表示解碼成功
IR_SHOW1:
          JMP  IR_OUT
;===============================================
;編碼轉(zhuǎn)換為 ASCII 碼并顯示
;===============================================
CONV:
          MOV   X,#5        ;設(shè)置顯示起始位置
          MOV   A,22H
          ANL   A,#0F0H      ;取出高四位二進(jìn)制數(shù)
          SWAP  A            ;高四位與低四位互換
          PUSH  ACC          ;壓入堆棧
          CLR   C            ;C=0
          SUBB  A,#0AH       ;減10
          POP   ACC          ;彈出堆棧
          JC    ASCII0       ;該數(shù)小于10,轉(zhuǎn)ASCII0
          ADD   A,#07H       ;大于10的數(shù)加上37H
ASCII0:   ADD   A,#30H       ;小于10的數(shù)加上30H
          MOV   B,X
          CALL  LCDP3

          MOV   A,22H
          ANL   A,#0FH        ;取出低四位二進(jìn)制數(shù)
          PUSH  ACC
          CLR   C
          SUBB  A,#0AH        ;減10
          POP   ACC
          JC    ASCII1        ;該數(shù)小于10,轉(zhuǎn)ASCII0
          ADD   A,#07H        ;大于10的數(shù)加上37H
ASCII1:   ADD   A,#30H        ;小于10的數(shù)加上30H
          INC   X
          MOV   B,X
          CALL  LCDP3

          MOV   X,#5         ;設(shè)置顯示起始位置
          MOV   A,23H        ;反碼
          ANL   A,#0F0H      ;取出高四位二進(jìn)制數(shù)
          SWAP  A            ;高四位與低四位互換
          PUSH  ACC          ;壓入堆棧
          CLR   C            ;C=0
          SUBB  A,#0AH       ;減10
          POP   ACC          ;彈出堆棧
          JC    ASCII2       ;該數(shù)小于10,轉(zhuǎn)ASCII0
          ADD   A,#07H       ;大于10的數(shù)加上37H
ASCII2:   ADD   A,#30H       ;小于10的數(shù)加上30H
          MOV   B,X
          CALL  LCDP4

          MOV   A,23H
          ANL   A,#0FH        ;取出低四位二進(jìn)制數(shù)
          PUSH  ACC
          CLR   C
          SUBB  A,#0AH        ;減10
          POP   ACC
          JC    ASCII3        ;該數(shù)小于10,轉(zhuǎn)ASCII0
          ADD   A,#07H        ;大于10的數(shù)加上37H
ASCII3:   ADD   A,#30H        ;小于10的數(shù)加上30H
          INC   X
          MOV   B,X
          CALL  LCDP4
          RET
;===================================================
;蜂鳴器響一聲子程序
;===================================================
BEEP_BL:
         MOV  R6,#100
  BL1:   CALL  DEX1
         CPL  BEEP
         DJNZ  R6,BL1
         MOV  R5,#25
         CALL  DELAY
         RET
 DEX1:   MOV  R7,#180
 DEX2:   NOP
         DJNZ  R7,DEX2
         RET
 DELAY:                    ;延時R5×10MS
         MOV  R6,#50
  D1:    MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,D1
         DJNZ  R5,DELAY
         RET
;===============================================
; DELAY  R5*0.14MS
DEL:
          MOV  R5,#1       ;IR解碼使用
DEL0:     MOV  R6,#2
DEL1:     MOV  R7,#32
DEL2:     DJNZ  R7,DEL2
          DJNZ  R6,DEL1
          DJNZ  R5,DEL0
          RET

DELAY1:                    ;延時5MS
         MOV  R6,#25
  DL2:   MOV  R7,#100
         DJNZ  R7,$
         DJNZ  R6,DL2
         RET
;================================================
        END


關(guān)鍵字:LCD顯示  遙控鍵值  解碼器 引用地址:2864LCD顯示遙控鍵值解碼器

上一篇:89S51看門狗功能的使用方法如下
下一篇:4×4矩陣鍵盤C語言程序參考

推薦閱讀

以下程序已實際調(diào)試運(yùn)行通過) ; ---AT89C2051加氧泵控制器源程序-OK! org 0000h ajmp main nop org 01bh clr tr1 ajmp timon org 30h main:mov 40h,#00h mov 41...
談到便攜式設(shè)備,電源適配器一直是個麻煩。它們的大小、能效水平和功率輸出不足在某種程度上削弱了它們所支持的設(shè)備外形的持續(xù)減小,從而影響了可攜性。 現(xiàn)在,USB供電(PD)通過單一電纜提供達(dá)100 W的電力和數(shù)據(jù)傳輸能力。這一便利代表USB PD正在成為中小型設(shè)備首選的充電方式。然而,實施USB PD的一個挑戰(zhàn),是以更高的功率水平提供不同的輸出電壓,以滿...
(文章來源:ISweek工采網(wǎng)) 隨著城市化的逐漸加劇,現(xiàn)代都市的生活節(jié)奏越來越快,人們也越來越不愿將少數(shù)的空閑時間花在各種家庭雜務(wù)上,也因此各路機(jī)器人開始慢慢誕生。如今市面上可見的智能機(jī)器人就有拖地機(jī)、洗碗機(jī),甚至自動澆花系統(tǒng)也逐漸變得智能了。下面和工采網(wǎng)小編一起了解一下SST光電液位開關(guān)在機(jī)器人項目中的應(yīng)用。 機(jī)器人都有一個共性,...
簡介:51單片機(jī)是對所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來隨著Flash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一。1. 電路圖一個二極管點(diǎn)亮一般需流經(jīng)的電流值為3mA~10mA,二極管兩邊的壓降為1.6V~1.7V。2. 點(diǎn)亮二極管:(1)位操作: sbit led0=P0^0; led0=0;/...

史海拾趣

問答坊 | AI 解惑

REALGEK8019as芯片資料翻譯.pdf

最近才發(fā)現(xiàn)的,從國外的REALGEK8019as芯片資料翻譯的來啊非常的好…

查看全部問答∨

EEWORLD每月社區(qū)人物評選標(biāo)準(zhǔn)

為了感謝常年活躍于壇子,孜孜不倦,默默分享的老牛們(論壇牛人):D ,以及鼓勵新加入壇子的小牛們,每月EEWORLD都會對一個月來網(wǎng)友們的發(fā)帖數(shù)及發(fā)帖質(zhì)量等做一個統(tǒng)計,評選出每月的社區(qū)人物。同時還有“博客之星”的評選,所以經(jīng)營好自己的博客也 ...…

查看全部問答∨

大俠都進(jìn)來啊,單片機(jī)怎么解密

我現(xiàn)在有個新茂的SM5964C40P   0909C    N11952CMN  型單片機(jī),由于不想編程,想直接把里面的程序燒出來,那位大俠能告訴我這個型號的能燒出來嗎,…

查看全部問答∨

s3c2440無法進(jìn)入中斷函數(shù)問題

我的程序也能編譯鏈接都沒有問題,就是在運(yùn)行時總是無法進(jìn)入中斷函數(shù)中。我覺得應(yīng)該是中斷向量表的問題,導(dǎo)致程序始終無法進(jìn)入中斷。一般程序都是燒到0x30000000地址下,而中斷一般都是跳到0x0處,它怎么進(jìn)入中斷處理函數(shù)呢? 哪位能幫幫我,不勝 ...…

查看全部問答∨

【散分】:昨天、今天跑通了51+12864液晶字符、圖形顯示程序!

液晶型號CA12864A(帶字庫,7920控制器),C51單片機(jī)。程序C、ASM的都有。兩個早上,所有問題迎刃而解,高興中!…

查看全部問答∨

實現(xiàn)第二步: 自己DIY一個廉價的C8051編程器并成功讀寫濕度計開發(fā)板

    昨天用洞洞板按照我前面帖子提供的圖紙焊接出一個并口C8051編程器。     今天一早插到PC機(jī)上,運(yùn)行編程器文件(前面帖子附件可下載), 點(diǎn)連接馬上識別出MCU的型號: 試著操作一下,十分順利,反應(yīng)速度快 ...…

查看全部問答∨

TI LED驅(qū)動設(shè)計指南

本帖最后由 dontium 于 2015-1-23 11:38 編輯 德州儀器針對現(xiàn)今的LED設(shè)計需求提供了最廣闊的高性能產(chǎn)品組合??匆幌耇I不同型號LED驅(qū)動器的特點(diǎn)、應(yīng)用和設(shè)計方案吧。 …

查看全部問答∨

運(yùn)用EPWM1-3輸出六路三項晶閘管觸發(fā)脈沖的問題

本人不知道如何設(shè)置PWM模塊的值,跪求給出設(shè)置程序?以下是我完成的部分程序,請高手指點(diǎn)迷津 void InitEPwm1Example() {    // Setup TBCLK    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up   &nbs ...…

查看全部問答∨

PCB高效自動布線的PCB設(shè)計技術(shù)

  盡管現(xiàn)在的EDA工具很強(qiáng)大,但隨著PCB尺寸要求越來越小,器件密度越來越高,PCB設(shè)計的難度并不小。如何實現(xiàn)PCB高的布通率以及縮短PCB設(shè)計時間呢?本文介紹PCB規(guī)劃、布局和布線的PCB設(shè)計技巧和要點(diǎn)。 現(xiàn)在PCB設(shè)計的時間越來越短,越來越小的電路 ...…

查看全部問答∨

電容壽命計算

電容就是我們通常所說的電容器,其作用就是作為容納電的容器。電容也是使用量比較大元器件之一,經(jīng)常出現(xiàn)在耦合、濾波、隔直通交等電路設(shè)計當(dāng)中。由于應(yīng)用面積廣泛,所以電容的壽命問題就很有可能決定產(chǎn)品的壽命。本文就以電容的壽命為出發(fā)點(diǎn),為大 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved