导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助[求助][XLWANG0795]

 *第15029篇: 求助[求助]

  
楼 主:XLWANG0795 2003年7月30日13:34
 求助[求助]
求助:
 我想用8279做一个键盘,程序代码如下,不知错在什么地方,请各位大侠指教。
 线路图与原理图接法是一致的。晶振用12m,我暂时未进行显示器部分的调试,但键盘处总觉得8279好象未起作用似的,读不出键来。 4脚irq输出观察不到(只是在中断方式下才能有的么???)
      kd equ  60h
      st equ  61h
      poc equ 0a001h
      pod equ 0a000h
      dirn equ 6  ;显示位数
      kmd  equ 1   ;8279初始化命令 译码扫描键盘
    org 0
    ajmp main
    org 100h
 main: mov sp,#30h  ;调试主程序
       mov st,#0
       mov kd,#0
       lcall dl2
      lcall prmk
  ml0: nop
       lcall key    ;读键
       mov 50h,kd
      lcall dir0   ;显示
      lcall dl2
  ddd: sjmp ml0
  dir0:mov dptr,#poc ;显示子程序
       mov a,#90h  ;写显示ram地址0,地址自动加1方式
       inc dptr
       mov r3,#dirn ;显示位数
       mov r0,#50h  ;显示缓冲区首地址
   drl:mov a,@r0    ;取显示数据
       mov dptr,#tdb
       movc a,@a+dptr ;查显示段码
       mov dptr,#pod
       movx @dptr,a   ;写8279显示ram
       inc r0
       djnz r3,drl
       ret
   tdb:db 77h,41h,3bh,6bh,4dh ;0--9
       db 6eh,7eh,43h,7fh,6fh
   dl2:mov r6,#200   ;延时
   dl1:lcall dl
       djnz r6,dl1
       ret
   dl:mov r7,#0ffh
      djnz r7,$
      ret
  key:mov dptr,#poc  ;读8279状态
      movx a,@dptr   ;注:应该有键按下此处a内应有数值,但我总得到的是0x00这是什么原因?
   anl a,#07h
   jnz kld        ;有键闭合转kld
   lcall prmk     ;8279初始化
   ret
  kld:mov dptr,#pod  ;读键码
      movx a,@dptr
      anl a,#0fh
   mov kd,a
   ret
  prmk:mov dptr,#poc ;8279命令口
    mov a,#kmd    ;模式字
       movx @dptr,a
    mov a,#34h    ;clk分频倍数 20分频
    movx @dptr,a
    ret
  end 
 
 
此主题相关图片如下:
按此在新窗口浏览图片
  
2楼:华山挑夫 2003年8月1日13:59
 [试试]你可以通过cpu读8279的状态字来判断有无按键
记得irq输出只在中断方式使用
  
3楼:XLWANG0795 2003年8月1日15:54
 你好,首先谢谢你的回复。在打问号的地方,
你好,首先谢谢你的回复。在打问号的地方,是读8279的状态字部分,但得到的是0X00,我觉得此处应得到按键的数量(后三位),


  
4楼:华山挑夫 2003年8月1日17:28
 看看kmd=0;行不行


>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:请问:74ls594  595 596 597有什么区别?

[下一篇主题]:谁有protel dxp 的中文手册,先谢了