随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率。

Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是目前较流行的51系列单片机的开发工具。

一、C51语言程序设计的基本技巧

首先,C51语言程序设计要尽可能采用结构化的设计方法。可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可使程序的可读性、移植性增强。

C51语言的主程序结构:

#include

main0{while(1);}

这是最小的C程序,包括头部文件和程序主体。头部文件为引用的外部资源文件,包括硬件信息和外部模块提供的可使用的函数和变量的说明。

语句定义后,就可以在C语言程序中像汇编一样使用这些硬件设备。

在C5l中常用项目来管理,项目一般分为C文件块和头部文件块,常把不同的功能写在不同的C文件中,依靠项目的管理,最后把所有文件连接起来,这样就可以得到烧录的HEX文件或BIN文件。没有在头部文件中列出的文件,可以算是该C文件的内部函数和变量,外部C不能使用。另外,在程序设计过程中要充分利用C51语言的预处理命令。

对于一些常用的常数,如TRUE、FAlSE、PI,以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义(#de-fine)或集中起来放在一个头文件中进行定义,再采用文件包含命令(#in-elude)将其加入到程序中,这样当需要修改某个参量时,只需修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都进行修改,有利于文件的维护和更新。

举例:利用宏定义和条件编译,源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。程序如下:

#define  flag 1#ifdef  flag==l#define fose 6Mdelay=10;#elif    flag==0#define fose 8Mdelay=12;#else#define  fosc 12Mdelay=20;#endiFMain0{ for(I=O;l

如何用c语言对51单片机进行编程,C语言在51单片机编程中的应用技巧相关推荐

  1. 简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序

    <(最新整理)基于51单片机的电子钟C语言程序>由会员分享,可在线阅读,更多相关<(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)>请在人人文库网上搜索. 1.完整) ...

  2. 51单片机 | 数字电路与C语言基础 | 51单片机最小系统

    文章目录 一.数字电路基础 1.电平特性 2.二进制与十六进制 2.1 二进制 2.2 十六进制 3.二进制的逻辑运算 二.C语言基础语法 三.51单片机最小系统 1. 51 单片机最小系统构成 1. ...

  3. 单片机 中断秒表 c语言程序,51单片机c语言的秒表设计.doc

    51单片机c语言的秒表设计.doc 课程设计报告 基于AT89C51单片机的秒表设计 院 系 电子信息工程学院 专 业 电子信息工程 1 姓 名 摘 要 本设计是设计一个单片机控制的多功能秒表系统. ...

  4. 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序

    基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...

  5. 单片机c语言怎么把p0口换p1口,关于51单片机P0口的结构及上拉问题

    1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候, ...

  6. 51单片机8255扩展c语言,51单片机8255A扩展IO口

    <51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...

  7. 51单片机c语言秒表,C51单片机秒表计时(C语言).doc

    C51单片机秒表计时(C语言).doc 南开大学滨海学院C51嵌入式软件设计(C语言) 题目计时秒表 l 功能描述本设计实现在99秒内的秒表计时,一个按键实现开始.暂停.复位.l 原理概述P1接四位七 ...

  8. 51单片机波形发生器51c语言,51单片机实现波形发生器.doc

    word完美格式 精心整理 学习帮手 摘要 这个系统是基于AT89C51单片机的波形信号发生器.使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832).运放电路(OP07) ...

  9. 51单片机好学嘛?学完51单片机学什么?

    大家好,我是无际单片机编程的徐导,很多想学单片机又担心自己学不会的兄弟们,都想问这个问题:51单片机好学嘛? 作为一个资深的老工程师,我还是要客观地回答一下这个问题. 关于的"0基础15天学 ...

  10. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

最新文章

  1. java字符串分割性能_String字符串性能优化的几种方案
  2. java string()函数_转载java String.split()函数的用法详解
  3. zTree v2.6 - v3.0 文件对比
  4. Linux就该这么学第0章 咱们先来谈谈学习方法和红帽系统。
  5. SVM 训练--在训练集上acc为94% 在测试集上为70%
  6. bootstrap获取弹框数据_execl基础-分类汇总与数据有效性验证
  7. lg手机历史机型_lg手机大全【详细介绍】
  8. c语言二级考试报名费,c语言二级考试(计算机二级c语言报名)
  9. 期权定价模型之经典--BS模型
  10. 2019牛客暑期多校训练营(第八场) Explorer (线段树分治+区间离散化)
  11. (完稿)跟大表哥学常识一,15张思维导图
  12. 《极限竞速地平线4》Teredo不合格解决
  13. RST 和 Markdown
  14. VulnHub - Pluck靶机
  15. WIN10__针对SMB的那啥
  16. 情人节程序员用HTML网页表白【粉色生日祝福网页】TML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  17. win7虚拟机配置DNS服务器,Win7下VMware虚拟机共享上网图解详细设置
  18. 计算机cpu为什么有版本之分,CPU怎么看性能好坏 最新CPU天梯图2016年9月-11月版本(台式机)...
  19. (Python)卫星RPC有理多项式模型读取与正反投影坐标计算原理与实现
  20. cf新手最多的服务器,从最初的42个服务器到现在仅剩4个,是什么让你离开了穿越火线?...

热门文章

  1. ABB紧凑式组架并联电容器组QBank
  2. Python实现GeoHash算法
  3. HTML5七夕情人节表白网页(抖音3D立方体图像库) HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 css爱心表白
  4. zabbix通过pg_monz模板监控postgresql数据库
  5. ubuntu权限不够(进入后身份并不是root而是自己的默认登录名的情况)
  6. ChatGPT到底是什么
  7. conda创建pytorch1.4环境 及遇到的错误
  8. xlrd是python自带的库_xlrd库报错
  9. 哈夫曼树--数据结构
  10. Manjaro安装配置与美化--折腾日记