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

* 38780: 求助[求助]

   XLWANG0795 
XLWANG0795发表的帖子 

 求助[求助]
求助:
 我想用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 
 
 
此主题相关图片如下:
按此在新窗口浏览图片

发表时间:2003年7月30日13:34:14

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  38987.[详细][试试]你可以通过cpu读8279的状态字来判断有无按键
摘要:记得irq输出只在中断方式使用......(27字)
- [华山挑夫][1177次] 2003年8月1日

  39001.[详细]你好,首先谢谢你的回复。在打问号的地方,是读8279的状态字部分,但得到的是0X00,我觉得此处应..
摘要:你好,首先谢谢你的回复。在打问号的地方,是读8279的状态字部分,但得到的是0X00,我觉得此处应得到按键的数量(后三位),   ......(122字)
- [XLWANG0795][1582次] 2003年8月1日

  39023.[详细]看看kmd=0;行不行
摘要:          ......(21字)
- [华山挑夫][1440次] 2003年8月1日

[上一篇帖子]:具体那一款,请告诉我。
[下一篇帖子]:可以用CYPRESS公司的单片机。