| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1172 人关注过本帖
标题:求助--------------我的有错改下呀??????????????
只看楼主 加入收藏
wangluncbal6
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-9
收藏
 问题点数:0 回复次数:7 
求助--------------我的有错改下呀??????????????
编写8255初始化程序和键值读取程序,并将键值序号显示在一个LED七段数码管上入口地址是200H~207H用PC0~PC2控制行线PC4~PC6控制列线,PA0~PA6做输出到LED上,我编了一下可能有很多的错误请高手指正。
CODE如下:
      DATA  SEGMENT
      TABLE  DB  3FH,06H,5BH,4FH,66H,6DH,7DH,7FH,6FH  ;预置显示值
      BUFFER DB  ?  ;预留一个字节装键值
      DATA ENDS
      CODE  SEGMENT
      ASSUME  CS:CODE,DS:DATA
 START: MOV AX,DATA ;初始化操作
        MOV DS,AX
  SET:  MOV DX,206H;初始化8255
        MOV AL,89H
        OUT DX,AL
WAIT-IN: MOV AL,00H;检测按键所有行输出0
         MOV DX,204;8255的 C口地址
         OUT DX,AL
         IN AL,DX;读列线
         AND AL,70H
         CMP AL,70H;比较是否有按键按下
         JZ WAIT-IN;无就等待
 DONE:  CALL DAELAY;延时消除抖动
        MOV BL,0;键号初始值为0
        MOV CL,0FEH;扫描初始值
       MOV DL,3;计数值行数
SCANR: MOV AL,CL;扫描一行
       MOV DX,204H;C口地址
       OUT DX,AL
       ROL AL,1;修改行数
       MOV CL,AL
       IN AL,DX;读列数
       AND AL,70H
       CMP AL,70H ;判断列线状态
       JNZ SCANL;有低转
       ADD BL,3;没有使键号=键号值+列数
       DEC DL
       JNZ SCANR;行未完转
       JMP HANDLE;扫描结束
SCANR: OR AL,0FH; 高位置1,避免出错
       RCR AL,1
       JNC HANDLE;列为低,确定按键值
       INC BL
       JMP SCANL;查找下一列
 HANDLE MOV AL,BL;传按键
        MOV BX,OFFSET TABLE;段码表首址
        XLAT
        MOV DX,200H  ;A口地址
        OUT DX,AL;送段码
        CALL DELAY
        MOV AH,04H
        INT 21H
 CODE ENDS
 END STATRT
我感觉错误太多了,高手帮下忙啊,感激不尽
搜索更多相关主题的帖子: 数码管 
2008-10-24 19:02
zhulei1978
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
就发现一个错
SCANR: OR AL,0FH; 高位置1,避免出错   这里是不是应该是SCANL

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2008-10-24 19:51
wangluncbal6
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-9
收藏
得分:0 
那个是打错的,你们在仔细看看,赋值,检测那些对不,谢谢。
2008-10-25 00:02
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
建议楼主用编译器帮助查错.
2008-10-25 08:52
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
简单一看,程序中延时子程序呢?还有,你是怎么确定8255端口的?Int21h04功能辅助设备输出,没有返回DOS的功能吧?
写程序风格不错,但是程序确实如你所说,错误太多。。。
需要知道你的硬件电路——似乎类似诊断卡?

[[it] 本帖最后由 cnhanxiao 于 2008-10-26 12:10 编辑 [/it]]
2008-10-26 12:05
wangluncbal6
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-9
收藏
得分:0 
谢谢 哦 ,8255的端口是题上给定的,是200H-207H 延时子程序我 没写上,关于辅助设备你 说了我才知道不用返回DOS。我才学2个月的《微机系统原理与接口技术》现在就要考试真的好难呀 ,望高手帮我改改啊 ,提提学习的意见。
2008-10-26 13:11
wangluncbal6
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-9-9
收藏
得分:0 
还有怎样结尾?谢谢了 哦 。。。。。。。
2008-10-26 13:58
ass754754563
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-10-28
收藏
得分:0 
[bo][un]wangluncbal6[/un] 在 2008-10-26 13:58 的发言:[/bo]

还有怎样结尾?


mov ah,4ch
int 21h
2008-10-28 12:53
快速回复:求助--------------我的有错改下呀??????????????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016563 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved