单片机C语言-程序结构

发布者:blq0681最新更新时间:2017-01-18 来源: eefocus关键字:单片机  C语言  程序结构 手机看文章 扫描二维码
随时随地手机看文章

先来简单说说C语言的标识符和关键字。 标识符是用来标识源顺序中某个对象的名字的, C语言是大小字敏感的一种高级语言, 假设我们要定义一个定时器1, 标识符由字符串, 数字和下划线等组成, 留意的是第一个字符必须是字母或下划线, 如“1Timer”是错误的, 编译时便会有错误提示。 所以普通不要以下划线开头命名标识符。 含义明晰, 这样有助于阅读理解顺序。 在C51编译器中, 只支持标识符的前32位为有效标识, 普通情况下也足够用了。 在顺序编写中不允许标识符与关键字相同。 在KEILuVision2中的关键字除了有ANSIC标准的32个关键字外还依据51单片机的特点扩展了相关的关键字(比如for, while等标准的还有sbit, interrupt等扩展的, 详细列表可以在网上查到)。 其真实KEILuVision2的文本编辑器中编写C顺序, 零碎可以把保留字以不同颜色显示, 缺省颜色为天蓝色。 分无符号字符类型unsignedchar和有符号字符类型signedchar, 所可以表达的数值范围是0~255。 “0”表示负数, “1”表示负数, 负数用补码表示。 所能表示的数值范围是-128~+127。   ?菏牟孤胗朐胂嗤?负二进制数的补码等于它的相对值按位取反后加1。 用于寄存一个双字节数据。 signedint表示的数值范围是-32768~+32767, 字节中最高位表示数据的符号, “0”表示负数, “1”表示负数。 unsignedint表示的数值范围是0~65535。   float浮点型在十进制中具有7位有效数字, 是符合IEEE-754标准的单精度浮点型数据, 占用四个字节。 因浮点数的结构较复杂在以后再做详细的讨论。 在这个变量中寄存的指向另一个数据的地址。 对不同的处理器长度也不尽相同, 指针变量也具有类型, 在以后专门探讨。   bit位标量是C51编译器的一种扩充数据类型, 但不能定义位指针, 也不能定义位数组。 不是0就是1, 类似一些高级语言中的Boolean类型中的True和False。 值域为0~255。 应用它可以访问51单片机外部的一切特殊功能寄存器。 在后面的语句中我们用以用P1=255(对P1端口的一切引脚置高电平)之类的语句来操作特殊功能寄存器。   sfr16占用两个内存单元, sfr16和sfr一样用于操作特殊功能寄存器, 所不同的是它用于操作占两个字节的寄存器,   sbit是C51中的一种扩充数据类型, 应用它可以访问芯片外部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。 如先前我们定义了sfrP1=0x90;, 因P1端口的寄存器是可位寻址的, 所以我们可以定义sbitP1_1=P1^1;, 异样我们可以用P1. 1的地址去写, 通常这些可以直接运用零碎提供的预处理文件(如reg51. h, h), 直接援用可以省去一点时间, #####include//预处理文件外面定义了特殊寄存器的称号, 如P1口定义为P1  对应硬件电路图如下:  顺序中的把戏数据可以自以去定义, 因这里我们的LED要AT89C51的P1引脚为低电平才会点亮, 所以我们要向P1口的各引脚写数据0, P1口的八个引脚刚好对应P1口特殊寄存器的八个二进位, 如向P1口定数据0xFE, 最C语言低位D0为0, 如此类推, 大家不难算出自己想要做的效果了。 大家编译烧写看看, 显示的速度您可以依据需求调整延时a的值, 不要超过变量类型的值域就行了。 也没关系, 还记得Keil的I/O口仿真功能吗?看看这里就知道该怎样办了。 所以P1可以直接运用不会出错啦。 接上去顺序直接跳转到main函数执行, do-while循环保证单片机不时循环工作。   下面我们把顺序换一种方式写, 以加深对寄存器的理解。

关键字:单片机  C语言  程序结构 引用地址:单片机C语言-程序结构

上一篇:单片机后缀说明
下一篇:VB6单片机编程中的汉字处理

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

单片机数字滤波方法
1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差 =A,则本次值有效 如果本次值与上次值之差 A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算
[单片机]
单片机PWM程序及仿真波形图
//******************************** //51单片机PWM波形产生程序 //作者:曾宪阳 //网址:http://hi.baidu.com/zxymcu //******************************** #include #define uchar unsigned char #define uint unsigned int uint a,b,c,f; uchar d,e; sbit P1_0=P1^0; void delay_2us(uchar t)//12M t*2+5us { while(--t);
[单片机]
Proteus入门单片机(3)例程分析
74HC573详解: /* 调试环境:Proteus 7.8 AT89S52单片机 8位共阴数码管 功能为:实现数码管1秒~99秒倒计时, 12M晶振 */ #include reg52.h #define uchar unsigned char sbit LED1=P1^1; //连的是LED1 #define MAX_NUM 13 //最大倒计时数1~99可设 #define SEGPORT P0 //定义数码管连接端口 sbit LE_DUAN = P2^0; //定义573锁存使能端口 段锁存 sbit LE_WEI =
[单片机]
浅析PIC单片机的时钟设置
什么时钟? 首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。 内部时钟和外部时钟? PIC单片机有许多型号可以设置成 用外部时钟(如外部接个4MHZ的石英晶振),也可以设置成用内部RC时钟。而且还有许多型号可以选择多种频率的时钟。 如 PICLF1823 内部时钟最高可以到达32MHZ 最低可以达到 31kHz. 这事实上提供了一条降低功耗的新路子。一般的单片机降低功耗常常用的睡眠,而睡眠期间CPU是什么
[单片机]
浅析PIC<font color='red'>单片机</font>的时钟设置
意法半导体STM32F7微控制器增加新产品线,扩展开发生态系统
中国,2016年10月31日 意法半导体STM32F7系列微控制器推出新产品线,并在开发生态系统中增加附件和选件,从而降低了基于ARM Cortex -M7内核的高性能嵌入式设计的门槛。 STM32F7高性能系列的最新产品STM32F722和STM32F723降低了内存占用量,并集成增值功能,包括代码执行保护和简化互联应用开发的高速USB物理层 (PHY) 电路。STM32F732和STM32F733片上集成密码算法运算功能,例如,高效的AES256硬件引擎。为满足不同的用途和需求,例如,需要大量I/O引脚的项目,新产品线为用户提供多种封装可选,从64引脚LQFP到176引脚LQFP或UFBGA,片上闪存容量256KB或
[嵌入式]
意法半导体STM32F7<font color='red'>微控制器</font>增加新产品线,扩展开发生态系统
基于AT89C51CC01单片机的CAN—LIN网关设计
引言 现场总线技术已经广泛的应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线的实际工程应用中占有了较大的份额。伴随着总线技术的发展,LIN(Local Interconnect Network)总线作为一种低成本的串行通信网络,其目标是为现有的现场总线控制网络提供辅助功能,特别是汽车控制网络中的总线应用,因此必然存在一个LIN总线和其它总线的通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机的CAN-LIN网关设计方案。 LIN是一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制,LIN的目标是为现
[应用]
基于μPD78045F单片机的软件UART
引 言 单片机在数据采集与控制、智能仪表中发挥重要的作用。单片机应用系统与后端上位机系统之间通讯进行数据交换,构成功能强大的测控系统是目前发展的趋势。 NEC公司生产的μPD78045F是78K0系列8位单片机功能较强的044F子系列的最高型号。该芯片功能强、可靠性高、速度快、支持节电应用。美中不足的是,该芯片的2个串行I/O口虽然功能强,却只支持同步通讯,没有异步通讯功能。 本文给出在μPD78045F上采用软件模拟方式,使用2个I/O口线和一个8位定时器实现异步串行UART功能的方法。本方法占用资源少,设置和使用简单方便,帧格式可自由改变。 设计思路 每一个UART都应具备如下功能:
[单片机]
基于μPD78045F<font color='red'>单片机</font>的软件UART
采用C8051F单片机实现半导体激光器驱动电源的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
采用C8051F<font color='red'>单片机</font>实现半导体激光器驱动电源的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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