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

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

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

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

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

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

在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=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 *p;。还可指定指针本身的存放内存类型,如:char data * 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脉冲才对,我一直想不通是怎么回事,希望大虾们帮帮我.

答:

其他所有指令每6个机器周期发出一个ALE,而MOVX指令占用12个机器周期只发出一个ALE

四、如何将一个INT型数据转换成2个CHAR型数据?

经keil优化后,char1=int1/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一样的。

五、在KEIL C51上仿真完了,怎样生成HEX文件去烧写??

右键点项目中Target 1,选第二个,在OUTPUT中选中CREAT HEX

六、typedef 和 #define 有何不同??

typedef 和 #define 有何不同》》》 如

typedef unsigned char UCHAR ;

#define unsigned char UCHAR ;

typedef命名一个新的数据类型,但实际上这个新的数据类型是已经存在的,只不过是定义了

一个新的名字.

#define只是一个标号的定义.

你举的例子两者没有区别,但是#define还可以这样用

#define MAX 100

#define FUN(x) 100-(x)

#define LABEL

等等,这些情况下是不能用typedef定义的

七、请问如何设定KELC51的仿真工作频(时钟)用右键点击左边的的target 1,然后在xtal一栏输入

八、不同模块怎样共享sbit变量,extern不行?把SBIT定义单独放到一个.H中,每个模块都包含这个.h文件

九、C51中对于Px.x的访问必须自己定义吗?

是的。

如sbit P17 = 0x97;即可定义对P1.7的访问

c语言实验报告范文范文2:

一、 实验目的

1、掌握指针的概念、会定义和使用指针变量

2、掌握指向数组的指针变量

3、掌握字符串指针的使用

二、 实验内容

1、 输入3个字符串,按由小到大的顺序输出。(习题10.2)

2、 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(习题10.6)

3、 完善程序,要求使用函数功能:将一个数字字符串转换成一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。

#include

#include

long fun(char *p)

填写程序

void main()

char s[6];

long n;

printf("Enter a string:\n");

gets(s);

n=fun(s);

printf("%ld\n",n);

三、 实验步骤与过程

四、程序调试记录

c语言实验报告范文范文3:

一、 实验目的

1、掌握c语言中的变量、数组、函数、指针、结构体等主要知识点。

2、掌握c程序的结构化程序设计方法,能使用c语言开发简单的应用程序。

3、掌握c程序的运行、调试方法等。

二、 实验内容

编写一个学生信息排序程序。要求:

1、程序运行时可输入n个学生的信息和成绩(n预先定义)。

2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。

3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。

1、 使用函数方法定义各个模块。

三、 实验步骤与过程

物理实验报告 ·化学实验报告 ·生物实验报告 ·实验报告格式 ·实验报告模板

四、程序调试记录

看过c语言实验报告范文的人还看了:

字符串c语言实验报告总结,c语言实验报告范文相关推荐

  1. c语言初步实验报告,c语言实验报告(大一c语言实验报告答案)

    哪位帮我一下啊,我这有个作业,要写C语言程序设计实验报告,包括五个部. 最低0.27元/天开通百度文库会员,可在文库查看完整内容> 原发布者:aming7728081 计算机科学与技术系C语言实 ...

  2. 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...

    篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...

  3. c语言实验报告七大气科学,计算机实验报告

    <计算机实验报告>由会员分享,可在线阅读,更多相关<计算机实验报告(32页珍藏版)>请在人人文库网上搜索. 1.实验指导实验一 Visual C+6.0开发环境使用大气科学专业 ...

  4. c语言综合实验报告与材料专业,实验报告汇总

    种子萌发的实验报告 一.做实验1.材料工具(1)常见的种子(如:绿豆 黄豆)40粒.(2)有盖的罐头4个,小勺1个,餐巾纸8张,4张分别标有1.2.3.4的标签,胶水,清水.2.方法步骤(1)在第一个 ...

  5. c语言程序设计论文结构,c语言顺序结构设计实验报告.docx

    c语言顺序结构设计实验报告 姓名王中华班级学号31实验日期课程名称C语言程序设计指导教师陈强成绩 实验名称:C语言的三种结构-顺序结构 [实验目的] 1.理解C语言程序的三种基本结构.2.掌握变量定义 ...

  6. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...

    课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...

  7. 安徽工程大学C语言程序设计实验报告,安徽工业大学嵌入式实验报告.docx

    安徽工业大学嵌入式实验报告 <嵌入式系统实验报告>指导教师:陆勤姓名:程少锋学号:139074366班级:物联网131班实验一B 熟悉实验开发环境一.实验目的熟悉ADS1.2 开发环境,学 ...

  8. 单片机c语言数码显示实验报告,单片机动态显示技术实验报告.doc

    桂林电子科技大学 实验报告 开 课 单 位 适用年级.专业 机械 课 程 序 号 课 程 代 码 实 验 名 称 <动态显示技术> 动态显示技术实验报告 一.实验目的 1.掌握动态显示技术 ...

  9. 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...

    时间:2019-05-15 12:55:15 作者:admin 计算器实验报告 班级: 07计本(1)班 姓名: 王林 学号: 20706031047 指导老师: 韩静 一. 需求分析 (1)制作一个 ...

  10. c语言的报告一,C语言实验报告(一).doc

    C语言实验报告(一) C语言实验报告(一) 一.实验目的 掌握C语言中,基本的输入输出函数的使用方法. 掌握printf中转义字符'\t','\n'的用法. 掌握赋值语句的用法. 掌握算术表达式.赋值 ...

最新文章

  1. Scala进阶之路-面向对象编程之类的成员详解
  2. 中国云计算市场加速发展 今年有望突破3000亿
  3. 【DevOps+LIVE】直播复盘 – DevOps能力成长模型2018首发
  4. 2013年28周信息安全汇总(7.7 - 7.13)
  5. CSS选择器详解(转)
  6. dlna和miracast可以共存吗_关于无线显示技术,AirPlay,DLNA,Miracast,WiDi 等有何异同?...
  7. 稻盛和夫自传读书笔记
  8. linked list C++实现
  9. 单片机Fault故障常见应对办法
  10. 利用Oh-My-Zsh打造你的超级终端
  11. 完全免费的小程序制作教程
  12. FIO 存储性能压测
  13. 浅浅瞅瞅RSA-PSS 算法
  14. 数据分析八大模型:详解PEST模型
  15. 4_MySQL_聚合函数和条件查询
  16. Android必备:签名整理
  17. 汽车零部件企业工厂数字化改造5大核心价值
  18. C# - 使用自定义控件实现名单修改的比较功能
  19. 国家何时整治程序员的高薪现象
  20. HTML5期末大作业:生活类购物商城网站设计——生活类购物商城模板(2页)学生商店网页作品

热门文章

  1. (二)电子器件、电子技术和电子电路
  2. TOPSIS法(小白必看文章包含详细源代码及注释)
  3. 超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(三)
  4. 关于swf转fla 软件的间题
  5. 星环科技TDH基于Overlay网络架构为数据安全保驾护航
  6. 手机屏幕驱动板1080x1920分辨率HDMI红米note3 note4 note4x屏幕Fondar自制投影 光固化
  7. 时光倒流软件测试简历,时光倒流 28款数据恢复软件大比拼
  8. 启动gis管理器显示无法启动服务器,mapgis狗不能启动,提示是服务器启动失败,是怎么回事?...
  9. blackberry 9630CDMA写号教程
  10. 黑莓手机BlackBerry Servicebook(简称SB)应用详解指南