c语言实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言实验报告

(经典版)

编制人:__________________

审核人:__________________

审批人:__________________

编制单位:__________________

编制时间:____年____月____日

序言

下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!

并且,本店铺为大家提供各种类型的经典范文,如工作计划、总结报告、策划方案、规章制度、合同协议、条据文书、演讲致辞、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!

Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!

Moreover, our store provides various types of classic sample essays for everyone, such as work plans, summary reports, planning plans, rules and regulations, contract agreements, documents, speeches, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!

c语言实验报告

c语言实验报告

因为在C语言草创的年代,UNIX是最好的大型机系统.下面是为大家带来的c语言实验报告范文,希望可以帮助大家。

c语言实验报告范文范文1、

1、只有频繁用到或对运算速度要求很高的变量才放到data区内,如for循环中的计数值。

2、其他不频繁调用到和对运算速度要求不高的变量都放到Xdata 区。

3、常量放到code区,如字库、修正系数。

4、逻辑标志变量可以定义到bdata中。

在51系列芯片中有16个字节位寻址区bdata,其中可以定义8X16=128个逻辑变量。这样可以大大降低内存占用空间。定义方法是:bdata bit LedState;但位类型不能用在数组和结构体中。

5、data区内最好放局部变量。

因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;

6、确保程序中没有未调用的函数。

在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil做得很愚蠢,但也没办法。

7、如果想节省data空间就必须用large模式。

将未定义内存位置的变量全放到Xdata区。当然最好对所有变量都要指定内存类型。

8、使用指针时,要指定指针指向的内存类型。

在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向Xdata区的指针占2个字节。如指针p是指向data区,则应定义为:char data Xp;。还可指

定指针本身的存放内存类型,如:char data X Xdata p;。其含义是指针p指向data区变量,而其本身存放在Xdata区。

以前没搞过C51.大学时代跟单片机老师的时候也是捣鼓下汇编,现在重新搞单片机,因为手头资料不多,找到一些C51的程序,发现里面有这些关键字,不甚明了,没办法只好找了下,发现如下描述:

从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、Xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。

在51系列中data,idata,Xdata,pdata的区别

data:固定指前面0X00-0X7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

idata:固定指前面0X00-0Xff的256个RAM,其中前128和data

的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:moX ACC,@RX.(不重要的补充:c中idata做指针式的访问效果很好)

Xdata:外部扩展RAM,一般指外部0X0000-0Xffff空间,用DPTR 访问。

pdata:外部扩展RAM的低256个字节,住址出现在A0-A7的上时读写,用movX ACC,@RX读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。

三、有关单片机ALE引脚的问题

"单片机不访问外部锁存器时ALE端有正脉冲信号输出,此频率约为时钟振荡频率的1/6.每当访问外部数据存储器是,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲."这句话是不是有毛病.我觉得按这种说法,应该丢失3个ALE脉冲才对,我一直想不通是怎么回事,希望大虾们帮帮我.

答:

相关文档
最新文档