首页 上一页 1 2 下一页 尾页

新手学keil c51碰到的问题,麻烦大家指教 点击:9803 | 回复:27



smith8193

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2004年3月27日
发表于:2006-03-16 08:51:00
楼主
我在周立功公司的网站上下载了keil7.09DEMO版,然后按着一个论坛上的精华贴“51单片机C语言学习”的说明,一步步的设置和输入代码:

#include <AT89X51.H>
#include <stdio.h>

void main(void)
{
 SCON = 0x50; //串口方式1,允许接收
 TMOD = 0x20; //定时器1定时方式2
 TCON = 0x40; //设定时器1开始计数
 TH1 = 0xE8; //11.0592MHz 1200波特率
 TL1 = 0xE8;
 TI = 1;
 TR1 = 1; //启动定时器

 while(1)
  {
   printf ("Hello World!\n"); //显示Hello World
  }
}


最后运行却报错,提示信息:

Build target 'Target 1'
assembling STARTUP.A51...
compiling 4.c...
*** WARNING C318 IN LINE 1 OF 4.c: can't open file 'AT89X51.H'
4.C(6): error C100: unprintable character 0xA1 skipped
4.C(6): error C100: unprintable character 0xA1 skipped
4.C(6): error C202: 'SCON': undefined identifier
4.C(7): error C100: unprintable character 0xA1 skipped
4.C(7): error C100: unprintable character 0xA1 skipped
4.C(7): error C202: 'TMOD': undefined identifier
4.C(8): error C100: unprintable character 0xA1 skipped
4.C(8): error C100: unprintable character 0xA1 skipped
4.C(8): error C202: 'TCON': undefined identifier
4.C(9): error C100: unprintable character 0xA1 skipped
4.C(9): error C100: unprintable character 0xA1 skipped
4.C(9): error C202: 'TH1': undefined identifier
4.C(10): error C100: unprintable character 0xA1 skipped
4.C(10): error C100: unprintable character 0xA1 skipped
4.C(10): error C202: 'TL1': undefined identifier
4.C(11): error C100: unprintable character 0xA1 skipped
4.C(11): error C100: unprintable character 0xA1 skipped
4.C(11): error C202: 'TI': undefined identifier
4.C(12): error C100: unprintable character 0xA1 skipped
4.C(12): error C100: unprintable character 0xA1 skipped
4.C(12): error C202: 'TR1': undefined identifier
4.C(14): error C100: unprintable character 0xA1 skipped
4.C(14): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(16): error C100: unprintable character 0xA1 skipped
4.C(17): error C100: unprintable character 0xA1 skipped
4.C(17): error C100: unprintable character 0xA1 skipped
4.C(17): error C100: unprintable character 0xA1 skipped
4.C(17): error C100: unprintable character 0xA1 skipped
Target not created


不知道是怎么回事,希望高手能指点迷津。多谢啊!



周公

  • 精华:10帖
  • 求助:0帖
  • 帖子:119帖 | 5549回
  • 年度积分:0
  • 历史总积分:6446
  • 注册:2002年11月26日
发表于:2006-03-16 10:05:00
1楼
为什么“[b]TI = 1;” [/b]?

smith8193

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2004年3月27日
发表于:2006-03-16 10:18:00
2楼
我也不知道啊,我是在一个网站上看到的教程。然后照着输入的,它要实现的功能是在串行调试窗口中不断的输出Hello World!

tigermu

  • 精华:6帖
  • 求助:0帖
  • 帖子:175帖 | 5410回
  • 年度积分:0
  • 历史总积分:19807
  • 注册:2003年1月19日
发表于:2006-03-16 13:07:00
3楼
你好像没有 AT89X51.H 库呀。

漂流远方

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 101回
  • 年度积分:0
  • 历史总积分:152
  • 注册:2005年4月03日
发表于:2006-03-16 17:10:00
4楼
哪位给指点一下啊,我想知道啊

smith8193

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2004年3月27日
发表于:2006-03-16 17:19:00
5楼
我是在周立功公司的网站上下载的DEMO版本的KEIL,安装的时候也提示能进行普通的编译调试啊

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2006-03-17 16:19:00
6楼
好像是你的(at89x51.h)头文件没有在原先的目录或丢失了。

笨小孩_4125

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2006年3月25日
发表于:2006-03-25 23:21:00
7楼
我想是因为你的程序里没有#include <reg51.h>的缘故!你可以试一下!

lian1984

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年4月25日
发表于:2006-04-25 11:42:00
8楼
我在周立功公司的网站上下载了keil7.09DEMO版,解压后怎么没有安装序列号?好象是没有文件名为"SN"的文本文件,谁知道的告诉我一下.
邮箱:tianshi198409@163.com
谢谢

wh109

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 17回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2003年12月17日
发表于:2006-04-25 19:49:00
9楼
无符号双字节快速乘法子程序
Q16RR:             MOV  A,R7 ;(R4R5)*(R6R7)->(R2R3R4R5)
   MOV  B,R5
   MUL  AB
   XCH  A,R5
   MOV  R3,B
   MOV  B,R6
   MUL  AB
   ADD  A,R3
   MOV  R2,A
   CLR  A
   ADDC   A,B
   MOV  R3,A
   MOV  A,R4
   MOV  B,R7
   MUL  AB
   ADD  A,R2
   XCH  A,R4
   XCH  A,B
   ADDC   A,R3
   MOV  R3,A
   MOV  F0,C ;F0=PSW.5
   MOV  A,R6
   MUL  AB
   ADD  A,R3
   MOV  R3,A
   CLR  A
   MOV  ACC.0,C
   MOV  C,F0
   ADDC   A,B
   MOV  R2,A
   RETI
以上是一个乘法指令,但我对乘法指令 MUL AB 的功能一直搞不明白,我们知道加减法可以位与位之间直接进行运算,我不明白乘法指令如何进行运算,上面的指令我看了好长时间也不懂,恳请那位高手帮我分析一下程序,编程思路是如何的?

努力就会进步

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 32回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2006年6月22日
发表于:2006-07-28 09:33:00
10楼
试用版的KEIL C51好象只能进行汇编语言的编译调试,而不能进行C语言的编译调试,是否就是因为这个原因.

梁航

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2005年11月06日
发表于:2006-07-28 17:13:00
11楼
你的头文件不对,你看看你的KEIL目录里的\inc目录里有那个AT89X51。H文件吗?你用reg51.h就行。试用版的keil只是不能编译产生超过2K字节的程序,别的没有限制

owenwan

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2006年7月28日
发表于:2006-07-28 23:56:00
12楼
 你的头文件不对,你看看你的KEIL目录里的\inc目录里有那个AT89X51。H文件吗?你用reg51.h就行。试用版的keil只是不能编译产生超过2K字节的程序,别的没有限制 

如果没有可以发一个给你哦owenwan@163.com, TI=1在你的程序里目前没什么用!!!

♂长空♂

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 217回
  • 年度积分:0
  • 历史总积分:290
  • 注册:2006年6月30日
发表于:2006-08-04 22:42:00
13楼
hehe 

you_you

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 7回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2006年9月04日
发表于:2006-09-04 12:56:00
14楼
'TMOD': undefined identifier
这个信息证明你的头文件有问题,这些特殊功能寄存器是在头文件中定义的,而这里出现没有定义的信息,很显然,头文件有问题。

聚丙烯DCS

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 37回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2002年7月26日
发表于:2006-09-10 14:03:00
15楼
wh109:
   这么长时间了,不知道你是否已经解决?
   这个程序是用8051本身的乘法指令来完成双字节乘法运算的.
   原理就象我们用笔算十进制一样,乘的结果再对位,相加即可.

聚丙烯DCS

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 37回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2002年7月26日
发表于:2006-09-10 14:09:00
16楼
如   0A05H 和 0B06H想乘

             0A       05
             0B       06
          ---------------
           0A*06    05*06
+  0A*0B   05*0B
-----------------------------
 对位相加,结果要放在三个字节中.
05*06在最低字节,(0A*06 + 05*0B)在中间字节,0A*0B+C 在最高字节.

猎隼

  • 精华:1帖
  • 求助:1帖
  • 帖子:151帖 | 1661回
  • 年度积分:0
  • 历史总积分:8983
  • 注册:2005年9月28日
发表于:2006-09-11 16:10:00
17楼
你的头文件软件没有找着,找一找头文件吧,估计找到头文件,程序问题就会迎刃而解了。

伟凡科技

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年2月13日
发表于:2006-09-12 08:47:00
18楼
那个程序只有一个地方有错误,就是将#include <AT89X51.H>
改为#include <reg52.H>或者自己编写一个#include <AT89X51.H>文件!不要全部复制那个程序,只要一段一段的拷贝下来,再将#include <AT89X51.H>改为#include <reg52.H>,然后编译完全通过.不信你就试试!
MSN:kekechong@hotmail.com

lwalwg

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2007年5月04日
发表于:2007-06-27 19:24:00
19楼

hkingsp

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 29回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2007年4月23日
发表于:2007-06-28 13:16:00
20楼
STARTUP.A51 不要包含了老大

上海地区单片机培训 [url]www.121mcu.com[/url]

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页