标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #include // 声明了void _nop_(void); _nop_(); // 产生一条NOP指令 作用:对于延 ...
分类:
编程语言 时间:
2016-04-14 12:15:29
阅读次数:
265
keil优化等级设置 优化级别说明(仅供参考):则其中的 Code Optimization 栏就是用来设置C51的优化级别。共有9个优化级别(书上这么写的),高优化级别中包含了前面所有的优化级别。现将各个级别说明如下:0级优化:1、 常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其 ...
分类:
其他好文 时间:
2016-04-14 10:38:59
阅读次数:
252
之前总念叨着,TI大法好,于是在学C51的同时,开始研究TI的低功耗单片机MSP430,从G2到F6系列,做过一些简单的项目,完成实验室的一些基本要求还是绰绰有余。半年之后,也就是15年前半年,TI出了其32位超低功耗单片机MSP432,官网上说LAUNCHPAD是限量版的黑色,于是便和队友下了订单 ...
分类:
其他好文 时间:
2016-04-06 21:29:56
阅读次数:
132
一、#include< > #include< > 引用的是编译器的类库路径里面的头文件。 假如你编译器定义的自带头文件引用在 C:\Keil\c51\INC\ 下面,则 #include<stdio.h> 引用的就是 C:\Keil\c51\INC\stdio.h 这个头文件,不管你的项目在什么目 ...
分类:
其他好文 时间:
2016-04-01 23:16:41
阅读次数:
163
2.C51数据类型扩充定义 单片机内部有很多特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般根据寄存器的功能不同赋予不同名称。操作时,需声明,即将地址编号赋给这个名称。(见reg52.h头文件) 3.为什么发光二极管接1kΩ电阻 发光二极管,通过电流I为5mA时即可发光,一般控制在3~ ...
分类:
其他好文 时间:
2016-03-28 13:39:35
阅读次数:
223
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,
分类:
编程语言 时间:
2016-03-07 13:47:26
阅读次数:
187
实物图原理图效果图程序烧录:/*****************************************************************************
*文件名称:main.c
*版本:KeiluVision4
*控制器:STC89C52RC/12M
功能:显示时间到串口
*说明:
1,DS3231实时时钟模块测试程序
2,1T的单片机用不了
3,晶振12M..
分类:
其他好文 时间:
2016-01-23 18:33:01
阅读次数:
1460
keil的官方网站关于printf的参考http://www.keil.com/support/man/docs/c51/c51_printf.htm
分类:
其他好文 时间:
2015-12-09 21:41:21
阅读次数:
206
由于前一段时间一直在做关于stm32f407的相关内容,于是安装的Keil是MDK5,最近一阵子想再看看51单片机以前没有做过的内容,就要再安装一个Keil C51,结果就不可避免的遇到了两个软件必须要修改配置才能兼容的问题。网上我也找了很多的解决办法,这里提供一种看到的相当简单的解决思路。 ...
分类:
其他好文 时间:
2015-12-06 11:17:21
阅读次数:
123
code是KEIL C51 扩展的关键字,用code修饰的变量将会被放到CODE区里。但C语里的const关键字好像也有定义不能改变的变量的功能,这两个关键字有什么区别呢?在帮助手册里查找const,可以找到以下的描述1 Variables declared with the const typ.....
分类:
其他好文 时间:
2015-11-19 09:38:53
阅读次数:
3984