打印

请教在C51如何仿真C8051F120的P6口

[复制链接]
3155|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
草履虫|  楼主 | 2009-1-12 22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我在C51中使用汇编,控制P6口,使用指令DJNZ P6,$,
然后运行仿真程序,填加P6.0,看到的结果是P6.0没有任何变化,
而实际烧片子,程序运行,P6.0是变化的。
我现在调试程序,不可能每次都烧一变程序,然后用示波器观察,那样太麻烦。
P0~P3口仿真都没有问题,唯独P4~P7有问题。
请高手指教。

相关帖子

沙发
草履虫|  楼主 | 2009-1-13 13:02 | 只看该作者

大家也都仿真不了?

使用特权

评论回复
板凳
winloop| | 2009-1-13 13:28 | 只看该作者

用的什么环境和仿真器?

使用特权

评论回复
地板
ayb_ice| | 2009-1-13 20:25 | 只看该作者

硬件肯定是没有问题的

软件仿真不要太认真,软件仿真比较适合数**算之类的.

使用特权

评论回复
5
草履虫|  楼主 | 2009-1-13 20:33 | 只看该作者

用的是KEIL51 V3版本,纯软件,没有用硬件仿真器

我没有用硬件,纯软件的仿真。时序对了,我就直接烧硬件调试。
但现在是用DJNZ P6,$不能看到P6.0的波形(KEIL51的LOGIC ANALYZE)

软件仿真让要目的是为了快速调试,不然每次都要烧程序太麻烦。
我是从来都不用硬件仿真器的。如果真是硬件调试的话,我会加软件测试程序。

目前我的软件还没有达到真正硬件调试的要求,所以要先用纯软件仿真。


使用特权

评论回复
6
ayb_ice| | 2009-1-13 21:13 | 只看该作者

硬件仿真器一般也是当烧录器

当程序不对时调试一下很快就能错误之处.

使用特权

评论回复
7
草履虫|  楼主 | 2009-1-13 22:39 | 只看该作者

在某些时候好像是可以仿真,但不清楚状态。

当时程序有点问题,P6口的仿真起作用了,但调试好后又不能用了。唉!!!!
如果全部用烧录的方式,调试程序不把单片机累死,也把人累死了。
问这个问题,主要目的也不全是为了调试我的软件,主要是想把这个问题弄清楚,所以一直想知道如何使。

使用特权

评论回复
8
zpc| | 2009-1-15 14:47 | 只看该作者

我有提供硬件调试器

ZUEC3 C8051F全速USB的JTAG/C2调试器 兼容U-EC3/U-EC5调试工具
http://www.zhlab.cn/product/P0000009.htm

使用特权

评论回复
9
草履虫|  楼主 | 2009-1-16 22:39 | 只看该作者

新发现,现在怀疑是KEIL C51的问题

1. 我的软件有定时器0中断,和UART0中断两个中断,TIMER 0中断设定最高优先级。
2. UART0中断使用TIME 1,MODE自动装载,波特率N。
3. TIMER0 ISR对TIMER 0进行了,关闭和开启的功能,同时使用了寄存器A,R3~R6,DPTR并进行了保护。程序开始关闭TIMER 0,保护现场,后对P6口进行写,P3口进行写操作,操作后,恢复现场,开启TIMER 0,退出。
4. UART0 ISR,只是读取SBUF,清中断标志位,没有做任何事情,除使用R1外,没有使用任何寄存器。
5. 以上提到的所有寄存器都没有在其他程序使用,主程序没有调用其他函数。
现在的现象是打开KEIL软件仿真功能,打开LOGIC ANALYZE仿真窗口:
A. P6口没有任何波形,P3口波形正常,仿真没有任何报错信息。
B. 打开TIMER 0或TIMER 1两个状态窗口,P6口出现波形,P3口也有波形,但仿真会出现*** Missing Clock Detector Reset invoked. ***。仿真程序复位。关闭TIMER 0/TIMER 1的窗口后,错误消失。打开UART 0的窗口没有报错信息。
    实际程序在执行过程中,没有发现错误。
    以上是个人在仿真调试过程中发现的一些现象,不知道各位是否遇到过类似问题,为什么会出现,请明白人说一说。

使用特权

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

本版积分规则

28

主题

489

帖子

0

粉丝