打印

AT89s52单片机采用keil开发时出现的问题

[复制链接]
6402|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wujing198|  楼主 | 2008-7-10 16:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用keil开发AT89S52的时候,无法使用定时器T2,凡是涉及到T2的所有寄存器均会报错为没有定义。
如使用如下语句:
MOV T2MOD,#00H
会报错error A45: UNDEFINED SYMBOL (PASS-2)
使用C语言开发时
如以下测试程序
#include <reg52.h>

void main(void)
{
 TMOD=04;
 T2MOD=24;
}

会报错TEST.C(6): error C202: 'T2MOD': undefined identifier
但是TMOD不会报错

请教各位高手,这是什么问题,是不是keil本身的问题?

相关帖子

沙发
flying8210| | 2008-7-10 17:19 | 只看该作者

看看头文件

T2MOD没定义,自己好好想想吧

使用特权

评论回复
板凳
ayb_ice| | 2008-7-10 19:39 | 只看该作者

你打开头文件看看便知

使用特权

评论回复
地板
wujing198|  楼主 | 2008-7-10 21:27 | 只看该作者

现在C语言是没有问题了

现在C语言开发是没有问题了,问题是现在可能需要用汇编开发。汇编MOV T2MOD,#00H的时候会出错。

使用特权

评论回复
5
jerkoh| | 2008-7-11 08:26 | 只看该作者

re

t2con  equ  0c8h
rcap2h equ  0cbh
rcap2l equ  0cah
tr2    equ  0cah

     mov t2con,#30h    ;t2
     mov rcap2h,#0ffh
     mov rcap2l,#0dch  ;9600

     setb tr2

这样就行,我用来做波特率
keil 8.08  wave vw下都可以编译

使用特权

评论回复
6
ayb_ice| | 2008-7-11 08:27 | 只看该作者

实在不行

还可以自己写头文件

使用特权

评论回复
7
liangyg| | 2008-7-11 08:51 | 只看该作者

头文件定义的问题

使用特权

评论回复
8
tides| | 2008-7-11 09:08 | 只看该作者

汇编一样的要定义,你不要用代号,直接用地址就OK了

汇编一样的要定义,你不要用代号,直接用地址就OK了

使用特权

评论回复
9
救火车| | 2008-7-11 09:11 | 只看该作者

头文件的事儿

#include <reg52.h>
换成
AT89X52.h 试一下。

或者更换KEIL更高的版本。

使用特权

评论回复
10
computer00| | 2008-7-11 09:26 | 只看该作者

没有就自己定义下呗,有啥大不了的事呀……

使用特权

评论回复
11
dandywang| | 2008-7-11 10:52 | 只看该作者

在主程序中定义一下就可以了

使用特权

评论回复
12
wujing198|  楼主 | 2008-7-11 13:02 | 只看该作者

谢谢各位

谢谢各位,问题已经解决。多年不用单片机了,现在一下用起还不习惯了。

使用特权

评论回复
13
fireflyyx| | 2014-5-1 10:38 | 只看该作者
I see!

使用特权

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

本版积分规则

8

主题

293

帖子

1

粉丝