单片机KeilC语言应用研究-太原师范学院

KeilC单片机C语言应用研究

系 别 计算机系

专 业 计算机科学与技术

姓 名 刘志远

指导教师 张连生

Keil C单片机C语言应用研究

刘志远 (太原师范学院计算机系200202班 山西·太原 030012)指导老师张连生

【内容提要】 KeilC是目前比较流行的单片机C语言调试和开发软件,多为当下单片机设计者所采用。但是, KeilC和普通的C语言有很大的区别, KeilC支持符合ANSI标准的C程序设计,它完全支持C的标准指令和单片机优化C扩展指令。特别地,针对8051单片机的自身特点它作了一些特殊扩展。KeilC生成的目标代码效率非常高,生成的语句编码紧凑,易理解,在开发单片机软件时,能充分发挥单片机的有限资源,体现其高级语言的优势。

本文详细分析了KeilC语言的来源以及其与汇编语言、Turbo C的区别,重点论述了KeilC的特殊功能寄存器(SFR)、存储类型、指针和中断服务,反映了KeilC作为单片机开发软件的优势和高效率,并探讨了KeilC应用中的一些方法、技巧和注意事项。

【关键字】 单片机 KeilC 程序设计 C 引言:为什么要使用KeilC?

近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,随着单片机开发技术以及微控制技术(以软件代替硬件的高性能控制技术)的日益完善和发展,单片机的应用必定导致传统控制技术发生巨大的变化,也就是说,单片机的应用是对传统控制技术的一场革命,因此,了解单片机的应用技术尤其是开发技术是非常有意义的。

当设计一个小的嵌入式系统时,一般我们都用汇编语言,在很多工程中,这是一个很好的方法,因为代码一般都不超过8K,而且都比较简单,如果硬件工程师要同时设计软件和硬件,经常会采用汇编语言来做程序,而硬件工程师一般不熟系像C一类的高级语言。

与汇编语言相比KeilC它的可读性和可维护性都非常好,它是结构化的程序设计语言,编写效率很高,具有非常好的结构性和模块化,使得程序完全结构化,可移植性好而且更容易阅读和维护,代码的可重用性也比较高,虽然8051芯片的派生门类特别多(达到了上百种之多),但KeilC语言对于它们的硬件资源大部分都可以进行操作。用KeilC编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。尤其重要的是使用KeilC这样的语言,程序员不必十分熟悉处理器的运算过程,也能够编出符合硬件实际的专业水平的程序,这意味着对新的处理器也能很快上手,不必知道处理器的具体内部结构,使得用KeilC编写的程序比汇编程序有更好的可移植性。KeilC语言功能齐全,具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外它也具有强大的图形功能,支持多种显示器和驱动器,而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。而且它的适用范围广,适合多种操作系统,如DOS、Windows、UNIX,也适用于多种机型。

用KeilC编写的程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。KeilC语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;它对不同函数的数据实行覆盖,有效利用片上有限的RAM空间;它提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;它还提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;提供small、compact、large等编译模式,以适应片上存储器的大小;KeilC的中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由KeilC编译器代办;它还提供了常用的标准函数库,以供用户直接使用;头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;它有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;并可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。

与Turbo C相比KeilC可以更有效地利用片上有限的RAM空间,利用其特有的特殊功能寄存器用sfr可以更加有效地对硬件的I/O接口,提供了更有效率的内部RAM可寻址位或特殊功能寄存器中的可寻址位操作,KeilC编译器支持C中大部分的函数但是一些不适用于嵌入式系统应用的库函数则

太原师范学院C语言真题,单片机KeilC语言应用研究-太原师范学院.doc相关推荐

  1. 2013年国家计算机等级考试c语言考试真题,2013年3月计算机等级考试二级C语言真题及答案.doc...

    2013年3月计算机等级考试二级C语言真题及答案 2013年3月计算机等级考试二级C语言真题及答案 一.选择题 (1)下列叙述中正确的是 A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为n ...

  2. 四川c语言二级成绩查询,求历年四川省计算机二级考试c语言真题.

    求历年四川省计算机二级考试c语言真题.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 求历年四川省计算机二级考试c语言真 ...

  3. 2015年c语言等级考试题1 10 2分,全国计算机等级考试二级c语言真题题库1+2015年9月.docx...

    全国计算机等级考试二级 C语言真题题库1 2015年9月 (总分43,做题时间120分帥 一.选择题侮小题1分.共40分) 1-下列叙述中正确的是(). A解决同一个问题的不同算法的时间复杂度一般是不 ...

  4. 安徽省2019c语言二级答案,二级c语言真题及答案

    二级c语言真题pdf是全国历年二级C语言考题的pdf版,对于备考二级的朋友,可以当做平常的训练题来做,有针对性的进行课题训练,从而增加考过的把握,有需要的朋友快来下载学习吧. 考试要求 C语言是一种计 ...

  5. C语言调试语法差错步骤称为,计算机等级考试二级C语言真题辅导.ppt

    计算机等级考试二级C语言真题辅导.ppt 全国计算机等级考试辅导(二级)信息技术学院 张开利全国计算机等级考试大纲内容 笔试考试( 90分钟) 满分 100分 (统一试卷) C语言. Visual B ...

  6. 408计算机考研--数据结构--2020年统考真题(C语言)

    2020年408统考真题(C语言) 一.题目描述 定义三元组(a,b,c)(a.b.c均为正数)的距离D=|a-b|+|b-c|+|c-a|.给定3个非空整数集合S1.S2.S3,按升序分别存储在3个 ...

  7. 默默学计算机题库,2010年专转本计算机真题-打印版+-默默学+-图片版.doc

    2010年专转本计算机真题-打印版+-默默学+-图片版.doc 春节活动策划 酒店春节期间员工关怀活动安排 一.迎新年拔河比赛 活动时间:2月10日上午 活动地点:******** 二.除夕夜活动(2 ...

  8. 2007年9月c语言真题及答案,2007年9月二级C语言笔试真题和答案(已再修改).doc

    2007年9月二级C语言笔试真题和答案(已再修改) 2007年9月二级C语言笔试真题及答案 (考试时间:120分钟,满分100分) 一.选择题((1)-(10)每题2分,(11)-(50)每题1分.共 ...

  9. 2011年9月计算机C语言真题,2011年9月全国计算机二级C语言考试真题及答案.doc

    2011年9月全国计算机二级C语言考试真题及答案 2011年9月全国计算机等级考试二级笔试试卷 ?C语言程序设计 ?(考试时间90分钟,满分100分) 一.选择题((1)-(10).(21)-(40) ...

最新文章

  1. SQLite中使用全文搜索FTS
  2. 使用VGG训练Imagenet
  3. Halcon初学者知识【15】图像的定义域Domain
  4. 终端乱码的终极解决方案
  5. office另存为pdf的加载项_pdf怎么转换成word?打工人必备的丛林法则
  6. C/C++——从ctime使用到随便测一样冒泡排序和堆排序的效率
  7. jQuery-选择器-查找标签
  8. 刚装完系统的简单优化
  9. MySQL不同字段比较大小_mysql 字段定义 对 大小比较的影响
  10. Android空调遥控器代码,空调代码—万能遥控器要如何正确设置空调代码?
  11. 【图像融合】基于脉冲神经网络PCNN实现图像融合附matlab代码
  12. 2020年易语言调用大漠插件来制作游戏脚本教程
  13. 主流开源 BI 产品对比
  14. 【ansible/ansible-tower】
  15. 微信公众平台模拟登录 php,微信公众平台模拟登陆问题
  16. python点击网页_python模拟点击网页按钮实现方法
  17. IP地址后面/24/26/27/28/29/30网关数量分别是多少?如何计算?
  18. 快速部署OpenStack的操作笔记(珍藏版)
  19. 高等数学极限运算法则
  20. linux4.0 RT负载均衡原理

热门文章

  1. 不良征信大盘点 这13种情况一定不要犯!
  2. 全球与中国钻探胶管市场深度研究分析报告
  3. 内网渗透之CFS三层靶机搭建
  4. VLC Media Player for Mac(VLC多媒体视频播放器)
  5. matplotlib 进阶之Artist tutorial(如何操作Atrist和定制)
  6. Spring In Action 4
  7. 【毫米波雷达】雷达频段从24GHz到77GHz,提高分辨率和精度
  8. 日历签到 java_android自定义可签到日历
  9. Windows Terminal 关闭声音/提示音/table提示音
  10. 当了10年程序员,我开窍了