音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

請問:用51編8279

作者:bjjtyl 欄目:單片機
請問:用51編8279
各位大蝦:
    小弟現(xiàn)在有個問題請教,我用51接8279,用一片74LS154顯示14位,在編寫程序時,寫進的顯示內容,用不用每次必須清顯示RAM,如果不用,那我怎樣才能知道顯示的哪一位。

2樓: >>參與討論
sby_1027
清一次即可,用字位控制。
KEYCOM            XDATA         0E601H
KEYDAT            XDATA            0E600H
KEYCAM            EQU              30H ;定義存放按鍵值RAM起始地址
;*********************************************
;*           8279  初始化                    *
;* KEYCOM為8279命令口   KEYDAT為8279數據口   *
;*********************************************
START: MOV R0,#10
        MOV DPTR,#KEYCOM ;命令口地址
        MOV A, #10H  ;鍵盤/顯示方式命令字8字符顯示左入口,編碼鍵盤,雙鍵鎖定
        MOVX @DPTR,A
        MOV A,#34H  ;程序時鐘命令 26分頻對外部輸入時鐘
        MOVX @DPTR,A
        MOV A,#0DFH ;清除顯示緩沖區(qū)命令
        MOVX @DPTR,A
BUSY1:  MOVX A,@DPTR
        JB ACC.7,BUSY1
        MOV IE,#81H
        MOV DPTR,#KEYDAT
        MOV A,#0C8H
        MOVX @DPTR,A ;字型送入8279
        INC DPTR
        MOV A,#90H
        MOVX @DPTR,A ;字位送入8279(顯示P)
HA7S2:    MOV 30H,#80H
        MOV 31H,#40H
HA7S3:  MOV DPTR,#KEYCOM
        MOVX A ,@DPTR
        ANL A,#07H
        CJNE A,#00H ,HA7S4;
        AJMP HA7S3
HA7S4:  MOV DPTR ,#KEYDAT
        MOVX A,@DPTR
    MOV B,A ;取鍵值
    MOV R1,#00H
    MOV DPTR ,#KEYTAB ;數字鍵鍵值表
HA7S5:  MOV A , #00H
        MOVC A,@A+DPTR
    CJNE A , B ,HA7S6;查鍵值表是否相同
    AJMP HA7SA; 轉數字鍵處理程序
HA7S6:  INC DPTR ;鍵值表地址加1
        INC R1  ;查找次數加1
    MOV A,R1
    JB ACC.4 ,HA7S7  ;是功能鍵嗎?
    AJMP  HA7S5 ; 繼續(xù)查找
HA7S7:  MOV R1,#00H
        MOV DPTR ,#KEYTAB1 ;功能鍵表地址
HA7S8:    MOV A,#00H
    MOVC A,@A+DPTR ;取出功能鍵鍵值
    CJNE A,B,HA7S9  ;鍵值相同嗎?
    AJMP HA7SC  ;轉功能鍵處理子程序
HA7S9:  INC DPTR
        INC R1
    MOV A,R1
    JNB ACC.2,HA7S8 ;繼續(xù)查找
  LJMP START
     ;;;    AJMP HA7SD ;無按鍵返回
HA7SD:  LJMP START
HA7SA:  MOV A ,30H
        MOV DPTR ,#0FE01H
    MOVX @DPTR ,A; 字位送入8279
    MOV A,R1
    MOV R0,31H
    MOV @R0,A
    INC 31H
    MOV DPTR ,#CDATA
    MOVC A,@A+DPTR;取字型代碼
    MOV DPTR,#KEYDAT
    MOVX @DPTR,A ;送8279顯示
    INC 30H
    MOV A,30H ;字位加1
    CJNE A,#88H,HA7SB  ;
    LJMP HA7S2
HA7SB:  AJMP HA7S3
HA7SC:  MOV DPTR ,#KJPADDR
        MOV A,R1
        RL A
  ;;       ADD A,R1
        ADD A,#00H
          JMP @A+DPTR ;
KJPADDR:LJMP LOOP0
           LJMP LOOP1
           LJMP LOOP2
KEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H
        DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBH
KEYTAB1:DB 0E3H,0E2H,0E1H
CDATA: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H,6CH,1AH,68H,0E8H
LOOP0:MOV R5,#0CH  ;0
      LJMP DISPC
LOOP1:MOV R5,#9FH  ;1
      LJMP DISPC
LOOP2:MOV R5,#0BH  ;2
DISPC: MOV R6,#80H
DISPC1: MOV DPTR ,#KEYCOM
       MOVX @DPTR,A ;字位送8279
       MOV A ,R5
       MOV DPTR  ,#KEYDAT ;字形送8279
       MOVX @DPTR ,A
        LCALL DELAY1
;    MOV A ,#0FFH
;    MOVX @DPTR ,A ;關顯示
;       INC R6 ;
;    CJNE R6,#88H,DISPC1
;    AJMP DISPC;
    LJMP HA7S2
AAA: NOP
     NOP
     RETI
DELAY1:MOV R1,#0FAH
DELAY2:NOP
       NOP
       DJNZ R1,DELAY2
       DJNZ R0,DELAY1
       RET
END

3樓: >>參與討論
ptj_wing
問一下
現(xiàn)在的8279這么貴(二十幾元一塊)還有多少人用啊

4樓: >>參與討論
bbstom
不僅貴!
不僅貴! 而且是NEC的(日貨)!!!
建議用ZLG7289代替. 或用動態(tài)掃描法(74LS164+ ...).


5樓: >>參與討論
xjycug
RE
建議MAX7219,非常好用,我有源代碼。
你可試試。
#include<intrins.h>
#include<reg52.h>

#define N 8

sbit bytesend_din=P1^2;
sbit byteclk_clk=P1^3;
sbit byteload_load=P1^4;


//unsigned CHAR num_show[N]={0,1,2,3,4,5,6,7};

void sendbyte(unsigned CHAR VALUE_send)
{

  unsigned CHAR cycal=0x80;

  while(cycal>=0x01)
  {
     byteclk_clk=0;
     if((VALUE_send&cycal)==0x00)
       bytesend_din=0;
     else
       bytesend_din=1;


     _nop_();
     _nop_();
     _nop_();

     byteclk_clk=1;

     _nop_();

     cycal=cycal>>1;
   }
  
}

void VALUEsend(unsigned CHAR address,unsigned CHAR VALUE)
{
  
  sendbyte(address);
  sendbyte(VALUE);
  byteload_load=0;
  _nop_();
  _nop_();
  _nop_();
  byteload_load=1;
}


void initial7219()
{
  VALUEsend(0x0b,0x06);
  VALUEsend(0x0a,0x05);
  VALUEsend(0x09,0xff);
  VALUEsend(0x0c,0x01);
}


void disp7219()
{
   unsigned CHAR i;
   for(i=0x0;i<0x06;i++)
    //VALUEsend(i+1,num_show[i]);
    VALUEsend(i+1,i);
}



void main()
{
  initial7219();

  do
  {
    disp7219();
   }while(1);
}




6樓: >>參與討論
bjjtyl
8279鍵值如何讀出來,如何計算?
我用8279做鍵盤接口,但不知如何讀出鍵值,如何計算鍵值,有知道的朋友能否指點小弟,最好給我一些編好的MCS-51的匯編程序。(小弟對C語言不大懂)
謝謝。

7樓: >>參與討論
混混

樓主:有是請教您,能不能加我qq:378230855

參與討論
昵稱:
討論內容:
 
 
相關帖子
放大器在輸入端懸空的情況下,輸出電壓很大(幾V)
一次程序編寫筆記:簡潔的提示音程序(附代碼及說明)
關于8255擴展鍵盤問題!
問個Xilinx ISE 8.2i的問題
求教,兩次買的18B20為什么性能不一樣?
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號