51单片机内部特殊功能寄存器分析

发布者:guqian999最新更新时间:2018-01-05 来源: eefocus关键字:51单片机  内部特殊功能寄存器 手机看文章 扫描二维码
随时随地手机看文章

1. Warning 280:’i’:unreferenced LOCal variable
说明局部变量i 在函数中未作任何的存取操作,解决方法消除函数中i 变量的宣告

2 Warning 206:’MusIC3’:missing function-prototype
说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用
解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告

3 Compling :C:\8051\MANN.C
Error:318:CAN’t open file ‘beep.h’
说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#include “beep.h”,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中

4 Compling:C:\8051\LED.C
Error 237:’LedOn’:function already has a body
说明LedOn( )函数名称重复定义即有两个以上一样的函数名称
解决方法修正其中的一个函数名称使得函数名称都是独立的

5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAYX1MS?DELAY
说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间,解决方法去掉DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译

6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP
FROM : 0025H
TO: 0025H
说明外部资料ROM 的0025H 重复定义地址
解决方法外部资料ROM 的定义如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在0x25 处并修正它

7 WARNING 206:’DelayX1ms’: missing function-prototype
C:\8051\INPUT.C
Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C
说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作宣告
解决方法编写DelayX1ms 的内容编写完后也要作宣告或作外部宣告可在delay.h 的包含档宣告成外部以便其它函数调用

8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL
SYMBOL:MUSIC3
MODULE:C:\8051\MUSIC.OBJ(MUSIC)
***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL:MUSIC3
MODULE:C:\8051\MUSIC.OBJ(MUSIC)
ADDRESS:0018H
说明程序中有调用MUSIC 函数但未将该函数的含扩档C 加入到工程档Prj 作编译和连接
解决方法设MUSIC3 函数在MUSIC C 里将MUSIC C 添加到工程文件中去

9 ***ERROR 107:ADDESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GOUP_
LENGTH: 0018H
***ERROR 118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: VOLUME
MODULE: C:\8051\OSDM.OBJ (OSDM)
ADDRESS: 4036H
说明data 存储空间的地址范围为0~0x7f,当公用变量数目和函数里的局部变量如果存
储模式设为SMALL 则局部变量先使用工作寄存器R2~R7 作暂存当存储器不够用时则会
以data 型别的空间作暂存的个数超过0x7f 时就会出现地址不够的现象
解决方法将以data 型别定义的公共变量修改为idata 型别的定义
说明如对编译出错感兴趣的网友能否把你们常遇到的错误信息收集起来并提出最终的
解决办法加以归纳以期共享
10 ***ERROR L104: MULTIPLE PUBLIC DEFINITIONS
是104号错误,你头文件里的变量定义被多次调用,相当于多次定义了。(注意头文件里与主函数间容易同时调用相同的变量)


关键字:51单片机  内部特殊功能寄存器 引用地址:51单片机内部特殊功能寄存器分析

上一篇:如何快速掌握一款新的MCU程序设计
下一篇:KEIL与标准C的关系及编程方法

推荐阅读最新更新时间:2024-03-16 15:51

51单片机复习程序例举002
1、使用外部中断INT0使P0口的8位LED灯的状态进行翻转 /****************************************************************************** * 说明:AT89S52芯片,12M晶振 * 中断服务程序 void name(void) interrupt m using n { 中断时要执行的程序代码 } * 修饰符1:interrupt m :将该函数转化成中断函数, * m = 0 -- 5 分别对应:INT0,T0,INT1,T1,ES,T2 * 修饰符1:using n :指定本函数内部使用的寄存器组,可省略-
[单片机]
51单片机--堆栈
子程序或中断程序时保护现场,因为51单片机的寄存器是十分有限的,而相对来说普通数据存储器更充足,通过入栈将寄存器中的内容临时保存到堆栈中(普通数据存储器),这是一个用时间换取空间的编程方式。 51单片机的堆栈是向上生长的,就是堆栈不为空时,栈底地址小于栈顶地址,当将数据入栈时,栈顶地址增加。还有一个技巧是,堆栈是数据存储器的一部分,也就是说堆栈除了利用push和pop访问,也可以通过普通的选址方法访问,例如mov。有时我们想访问堆栈数据,但不想改动变动栈顶,这时可以通过mov来访问数据。还有一个书上很少提到的知识点是出栈之后,原来那个栈顶的内容并不会清零,所以我们依然可以像对待普通数据存储器一样访问。 下面通过教科书上的一个变
[单片机]
基于51单片机应用系统的串行通信设计
在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。 2 串行通信的硬件设计 在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在线工作组态,红外检测装
[单片机]
基于<font color='red'>51单片机</font>应用系统的串行通信设计
如何使用8051单片机在7段显示器上显示数字?
在使用 单片机开发 项目的时候,经常会使用到7段显示器。7段显示器可以显示字母和数字,它内部是其实是发光 LED 灯,通过控制不同的 接口 点亮内部LED灯,从而显示出数字。目前,它在许多 电子产品 中用于显示 信息 ,比如:充电宝、直发器等。 7段显示器由8个LED构成,这些LED以顺序方式连接,以方便在打开某些LED组合时显示0到9的数字。点亮时,它一次只显示一位数字。 使用80 51单片机 在7段显示器上显示数字的原理图: 在7段显示器上显示从“0到F”的数字的程序是: #include reg51.h sbit a= P3^0; sbit x= P3^1; sbit y= P3^2; sbit z= P3
[单片机]
如何使用80<font color='red'>51单片机</font>在7段显示器上显示数字?
51单片机综合学习系统之步进电机控制篇
大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了红外线遥控的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习步进电机控制的基本原理与使用方法。 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。 上图是我们将要使用的51单片机综合学习系统硬件平台,本期实验我们用到了综合系统主机、步进电机,综合系统其它功能模块原理与使用详见前几期《 电子制
[单片机]
<font color='red'>51单片机</font>综合学习系统之步进电机控制篇
51单片机做一个计时器
同样我们使用的仍然是STC的8051单片机,这段代码是用来做一个计时器,通过数码管实时显示出来,因为板子上数码管有6个,所以可以设置小时,分钟,秒三个单位,在Proteus上也是可以模拟的,计时结束可以用蜂鸣器,或者继电器接口连接 一个闹铃,闹铃用电磁式的就可以,当然简单来说蜂鸣器就是一个不错的选择。 程序中没有设置小时单位,想要加上的小伙伴可以用显示分钟,秒的方法同样显示出来,但添加后要注意延时的时间,时间设置不当可能会出现显示不清楚,数字抖动,或者未选中的数码管也隐隐发光(“鬼影”)。具体大小可以自己调试着来,也是很简单的。下边是源代码: #include reg52.h #define uint unsigne
[单片机]
51单片机串口T1加看门狗程序
数码管部分的电路图 程序: #include reg52.h #define UCHAR unsigned char #define UINT unsigned int sfr WDT_CONTR = 0xe1; UCHAR table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; UCHAR timer; UCHAR conter; void initserial(void) { timer='0'; conter=0; TMOD=0X20; SCON=0X50; TL
[单片机]
<font color='red'>51单片机</font>串口T1加看门狗程序
20天89C51单片机总结
看了怎么久的单片机做个总结。其实就芯片来说单片机没想象的那么复杂!89C51就40个引脚。其中P0~P3口占了32个。一个接地一个接电源,两个振荡引脚。一个EA引脚ROM的起始地址选择端。一个ALE/Vpp片外地址锁存器充许引脚/线编程电源输入端。PSEN片外ROM充许使能端。当然还有个复位REST引脚。其中P3口全部都有第2功能复用:定时 中断 串行口中断。当P0~P3端口写#FFH时片内锁存器置1这是单口为双向输入 输出口。这是从芯片外围看。 从芯片的内部看的话主要的就两个独立的存储器 ROM,RAM 一个为程序指示,一个为数据处理和存放。编程时通过寻址方式区别ROM,RAM。他们都为64KB的容量。ROM的片内为4KB存储
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved