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

[复制链接]
7452|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的时候会出错。
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下都可以编译

ayb_ice 发表于 2008-7-11 08:27 | 显示全部楼层

实在不行

还可以自己写头文件
liangyg 发表于 2008-7-11 08:51 | 显示全部楼层

头文件定义的问题

tides 发表于 2008-7-11 09:08 | 显示全部楼层

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

汇编一样的要定义,你不要用代号,直接用地址就OK了
救火车 发表于 2008-7-11 09:11 | 显示全部楼层

头文件的事儿

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

或者更换KEIL更高的版本。
computer00 发表于 2008-7-11 09:26 | 显示全部楼层

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

dandywang 发表于 2008-7-11 10:52 | 显示全部楼层

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

 楼主| wujing198 发表于 2008-7-11 13:02 | 显示全部楼层

谢谢各位

谢谢各位,问题已经解决。多年不用单片机了,现在一下用起还不习惯了。
fireflyyx 发表于 2014-5-1 10:38 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

293

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部