打印

大家帮我看看这个程序什么地方有问题?谢谢了

[复制链接]
2301|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugangzhu|  楼主 | 2009-9-22 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mugangzhu 于 2009-9-22 16:52 编辑

LIST P=69P42
ROMSIZE=3072
;**********************************
;系统寄存器
;**********************************
IE   EQU  00H;中断使能标志寄存器
IRQ  EQU  01H;中断请求寄存器
T0M  EQU  02H;定时器0
T0L  EQU  04H;定时器0低4位
T0H  EQU  05H;定时器0高4位
PORTA EQU 08H
PORTB EQU 09H
PORTC EQU 0AH;按键PORTC.0取消,PORTC.1打开输出
PORTD EQU 0BH
PORTE EQU 0CH;输出PORT
TBR   EQU 0EH;查表寄存器
INX   EQU 0FH;索引寄存器
DPL   EQU 10H;查表指针低4位
DPM   EQU 11H;查表指针中3位
DPH   EQU 12H;查表指针高3位
PCCR  EQU 1AH;PORTC输入/输出控制寄存器
PECR  EQU 1CH;PORTE输入/输出控制寄存器
WDT   EQU 1FH;看门狗定时器
;***********************************
;用户寄存器
;**********************************
AC_BACK  EQU 30H;A备份寄存器
TEMP     EQU 31H;临时寄存器
TEMERL_0 EQU 32H;定时时间低4位
TEMERH_0 EQU 33H;定时时间高4位
CTO      EQU 34H
CT1      EQU 35H;延时用
KEY_ST   EQU 36H;键状态寄存器
;**********************************
;程序
;**********************************
                ORG  0000H
                JMP  RESET
                RTNI
                RTNI TIMER_IST
                RTNI
                JMP  PORT_IST
;************************************
;PORT_IST中断服务子程序
;************************************
PORT_IST:               
               STA  AC_BACK,00H
               LDI  IRQ,00H
PORT_IST_END:
               LDA  AC_BACK,00H
               RTNI
;************************************
;TIMER_IST中断服务程序
;************************************
TIMER_IST:
              STA  AC_BACK,00H
              LDI  IRQ,00H
TIMER_IST_END:
              LDA  AC_BACK,00H
              RTNI                             
;************************************
;上电程序
;************************************
RESET:
              NOP
;-------------------------------------              
;清用户寄存器   
POWER_RESET:
              LDI  DPL,00H
              LDI  DPM,03H
              LDI  DPH,00H;从30H开始
POWER_RESET_1:
              LDI  INX,00H
              ADIM DPL,01H
              LDI  TEMP,00H
              ADCM DPM,00H
              BA3 POWER_RESER_2
              JMP POWER_RESET_3
POWER_RESET_2:
              ADIM  DPH,01H
POWER_RESET_3:
              SBI  DPH,01H
              BNZ POWER_RESET_1
              SBI  DPM,04H
              BNZ POWER_RESET_1;到0BFH结束
;----------------------------------------
;初始化系统寄存器
              LDI T0L,0FH
              LDI T0H,0BH
              LDI T0M,00H
              LDI PORTC,00H
              LDI PCCR,00H;输入口
              LDI PORTE,00H
              LDI PECR,0FH;输出口
;主程序
MAIN:
;PORT_IST中断
PORT_INT_SET:
              LDI PORTA,03H
              LDI PORTB,0CH
              LDI PORTC,0FH
              LDI PORTD,0FH;打开上拉电阻使用下降沿中断
              NOP
              NOP          ;等待程序稳定
              LDI IRQ,00H
              LDI IE,0001B;允许PORT中断
              HALT
              NOP
              NOP
;*********************************************              
;检测按键状态
KEY_CK:
              LDA PORTC,00H;取PORTC按键值
              STA TEMP,00H;把按键值存放在临时寄存器当中
              CALL  DELAY ;延时40ms
              LDA PORTC,00H;再次取PORTC按键值
              SUB TEMP,00H;比较两次按键值
              BNZ PORT_IST_SET
              SBI TEMP,00H;
              BA0 PORT_IST_SET;取消按键按下,则返回初始状态
              EORIM TEMP,0FH;
              STA  KEY_ST,00H;
              LDA  KEY_ST,00H
              STA  PORTE,00H;将按键状态送到PORTE口输出
;*******************************
;打开TIMER0中断计时                           
;**********************************************
              LDI IRQ,00H
              LDI IE,0100B
              NOP
              NOP
              JMP MAIN              
;延时去抖动              
DELAY:
              LDI CT1,09H
              LDI CT0,0EH
              SBIM CT0,01H
              BC $-1
              SBIM CT1,01H
              BC $-4
              RTNI  
;********************************************
              END
沙发
warm_ice| | 2009-9-23 09:02 | 只看该作者
编译的时候出错??有什么错误,一般编译的时候会指出来.

使用特权

评论回复
板凳
gaoyuaug| | 2009-9-23 10:15 | 只看该作者
我认为能用软件仿真的,是高手。
因为新手都是从搭万能板板开始的。

使用特权

评论回复
地板
warm_ice| | 2009-9-23 10:18 | 只看该作者
我认为能用软件仿真的,是高手。
因为新手都是从搭万能板板开始的。
gaoyuaug 发表于 2009-9-23 10:15

软件仿真时,有个虚拟设备,可以像搭万用板时搭常用的器件.

使用特权

评论回复
5
gaoyuaug| | 2009-9-23 10:27 | 只看该作者
IDE66可以吗?

使用特权

评论回复
6
mugangzhu|  楼主 | 2009-9-23 10:45 | 只看该作者
没有啊,只是说有15处错误的啊,
还有你说的那个虚拟设备在什么地方啊?

使用特权

评论回复
7
warm_ice| | 2009-9-23 10:46 | 只看该作者
IDE66可以吗?
gaoyuaug 发表于 2009-9-23 10:27

可以的

使用特权

评论回复
8
warm_ice| | 2009-9-23 10:50 | 只看该作者
没有啊,只是说有15处错误的啊,
还有你说的那个虚拟设备在什么地方啊?
mugangzhu 发表于 2009-9-23 10:45

有错误的时候,编译器会指出哪行有错误,一一对照修改即可.

要用虚拟设备,首先用打开软件仿真功能(选中TOOLS目录下的SIMULATION),然后它下面的virtual device就可以使用了.

使用特权

评论回复
9
mugangzhu|  楼主 | 2009-9-23 11:00 | 只看该作者
呵呵,应经修改成功了,原来下面那个可以给指出来啊,滑动鼠标就可以看出来了,有点激动啊!

使用特权

评论回复
10
mugangzhu|  楼主 | 2009-9-23 11:02 | 只看该作者
那个我用过的啊,可是程序只要运行起来,那些虚拟设备框就看不了了啊?

使用特权

评论回复
11
mugangzhu|  楼主 | 2009-9-23 11:03 | 只看该作者
只有那几个虚拟设备吗?不能自己添加或者像99SE一样自己制作吗?

使用特权

评论回复
12
warm_ice| | 2009-9-23 11:31 | 只看该作者
那个我用过的啊,可是程序只要运行起来,那些虚拟设备框就看不了了啊?
mugangzhu 发表于 2009-9-23 11:02

有的,再点一下那个虚拟设备的图标或者把当前程序窗口最小化就能看到了.

使用特权

评论回复
13
warm_ice| | 2009-9-23 11:32 | 只看该作者
只有那几个虚拟设备吗?不能自己添加或者像99SE一样自己制作吗?
mugangzhu 发表于 2009-9-23 11:03

目前还没那么专业,但给初学者使用足够了.

使用特权

评论回复
14
mugangzhu|  楼主 | 2009-9-23 11:48 | 只看该作者
呵呵,我想把晶振改成32.768K的可是上面只能在2000K-8000K之间改动才行?有没有其它的办法?

使用特权

评论回复
15
warm_ice| | 2009-9-23 13:23 | 只看该作者
呵呵,我想把晶振改成32.768K的可是上面只能在2000K-8000K之间改动才行?有没有其它的办法?
mugangzhu 发表于 2009-9-23 11:48

暂时没办法

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

358

帖子

1

粉丝