嵌入式C语言位操作的移植与优化 1 用逻辑运算实现位操作请看下面这个子程序:INT8U Card102RdByte(void) {INT8U Temp8U, n = 8;do{ Temp8U <<= 1;if( PIN_CARD_SDA_RD() ) Temp8U |= 0x01;PIN_CARD_CLK_H();PIN_CARD_CLK_L();}while(--n);return Temp8U;}这是通过单片机引脚从88... 2023-06-13 keilC51IARC430嵌入式C语言文章技术应用嵌入式开发
TEA5767收音机模块的C51控制程序 这几天做个案子,用到飞利浦的TEA5767的收音机模块,在网上搜了下相关的内容,发现很多人都在问,可是提供编程指导的很少,可能是高手都不屑回答这些小问题吧,在这里我把我的部分程序及TEA5767的相关资料放上来吧,给需要的人一些参考.(PS:无锡硅动力的SP3767和TEA5767完全兼... 2023-06-13 单片机收音收音控制程序keil
用Keil在C中嵌入汇编 很多用C语言编单片机程序的朋友,有时候会碰上“精确延时”,而用C又要搞清楚它的编译,往往在这个时候就想到了用汇编来编写延时,具体怎么在C中嵌入汇编呢?其实也比较简单,如下图,在C文件中要嵌入汇编的地方用#pragmaasm和#pragmaendasm分隔开来,这样编译时KEIL就知道这中间的一段... 2023-06-13 keil汇编
keilc51红外遥控解码程序 本keilc51程序适用uPC1621/uPC1622及兼容的红外遥控器芯片,占用外部中断0和定时器1,以中断方式解码,节省系统资源,以查询方式检测遥控信号是否有效.解码思路:红外线经一体化接受头解码放到后送到单片机的外部中断0,单片机设置外部中断下降沿触发,T0和T1为16位定时器,T0在... 2023-06-13 keil红外遥控解码程序
KeilC的指针类型 话说,C语言中最精髓的就是指针的操作了。当然,本文不对C语言的指针做详细的描述。Hanny在这里只想小结一下KeilC中的指针类型。在KeilC中,我们会常见到下述的指针定义方式:char*ptr1;charcode*ptr2;chardata*ptr3;charxdata*ptr4;char*dataptr5;charcode*dataptr6;char... 2023-06-13 指针类型keilCkeil
小结一下KeilC与IAR对函数参数及返回值的处理 在C51中,KeilC与IAR在函数参数的传递及返回值的处理上,有着较大的不同。本文主要小结不同,并稍稍发表Hanny个人对这些方式的优缺点的看法。首先,我们对数据类型进行分类。根据数据类型的长度,我们可以将数据简单分为:bit,u8,u16,u32。其中,bit表示位变量;u8主要为char、signedcha... 2023-06-13 keilCkeilIAR对函数参数返回值
关于KeilC的寄存器绝对定位 在KeilC的选项中,C51这一项里有一项叫做“Don'tuseabsoluteregisteraccesses”。我们已经因为这一项出了三次Bug了。那么这一项有什么作用呢?在KeilC默认中,这一项并没有选上,表示KeilC将使用寄存器的绝对定位来优化程序。什么意思呢?我们知道,51中有四组通用寄存器。在寄存器... 2023-06-13 keilCkeil寄存器
利用Keil C51实现T0精确定时 利用89C51设计一个简易日历时钟系统,时钟系统硬件主要由单片机控制的计时电路、复位等辅助电路、按键电路、数码管显示电路、电源系统等组成。日历时钟可以显示年、月、时、分、秒;可以设置年、月、时、分 其中计时控制电路由AT89C51单片机控制;按键电路包含时间设置;时间显... 2023-06-13 keilC51T0精确定时文章课设毕设时钟类
基于proteus的51单片机仿真实例说明(1) 一、单片机系统的开发流程1、搭建硬件电路;2、编写控制程序;3、将程序“装”到单片机里面;4、运行单片机系统,并检查、调试运行结果。二、学习单片机的基本条件以一个计算机系统为例,我们想要使用计算机,首先必须配置计算机的各种组件(CPU、主板、内存、硬盘、声卡、... 2023-06-13 Proteus51单片机keilC51uv3.0文章硬件设计EDA软件
利用Keil Cx51实现T0的精确定时 日历时钟可以显示年、月、时、分、秒;可以设置年、月、时、分。其中计时控制电路由AT89C51单片机控制;按键电路包含时间设置;时间显示屏电路由7个数码管组成;电源系统由小功率整流滤波稳压电路组成,输出直流电压5 V,向主电路及显示电路供电。系统框图如图1所示。在计时过... 2023-06-13 keilCx51T0精确定时课程设计文章课设毕设时钟类
如何实现keil 与 protues联调 首先,你要下载安装这两个软件了。Proteus可以到官方网站(http://www.labcenter.co.uk/)下载试用板(试用版无存盘功能),最新版本是6.5。Keil也可以到它的官方网站(http://www.keil.com/)去下载它的demo板(有2K代码限制),最新的版本是7.20。下载后就可以安装了。第二步,安装完毕,把... 2023-06-13 安装keilProtues联调文章硬件设计EDA软件
keil C51存储区域类型是什么 keil C51存储区域分为程序存储区和数据存储区2大类型。一.程序存储区(Pragram Area):欲将声明的数据存放在程序存储区域,可以使用关键字“code”说明。例 unsigned char code i=10;则表示 i为无符号字符型数据存放区域为程序存储区。二.数据存储区(Data Memory)... 2023-06-13 keilC51存储区域类型文章单片机51单片机
Keil模式设置和编程的事项 因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8类:8051存储类型及存储区域 , 存储模式 , 存储器类型声明 , 变量类型声明 , 位变量与位寻址 ,特殊功能寄存器(SFR) ,C51指针l 函数属性具体说明如下(8031为缺省CPU)。第一节KeilC51扩展关键字C51 V4.0版本有以下扩... 2023-06-13 keil存储指针寄存器文章技术应用嵌入式开发
Keil模式设置及编程事项 因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8类:8051存储类型及存储区域 , 存储模式 , 存储器类型声明 , 变量类型声明 , 位变量与位寻址 ,特殊功能寄存器(SFR) ,C51指针l 函数属性具体说明如下(8031为缺省CPU)。第一节KeilC51扩展关键字C51 V4.0版本有以下扩... 2023-06-13 keil存储指针寄存器文章技术应用嵌入式开发
AT24C01-AT24C256 的Keil C51读写程序 /* 以下为AT24C01~AT24C256的读写程序,各人可根据自己的需要应用。在buf1中填入需要写入的内容,buf2的大小可根据需要定义。addr可根据使用的芯片选择,可从任何位置读写,只要在该芯片的范围内。enumer=ATxxx,根据使用的芯片赋值。各函数中的形式参数不需改变。本程序只要在调用... 2023-06-13 AT24C01-AT24C256keilC51读写程序文章单片机51单片机
单片机keil 常见问题 一、混合编程1、模块内接口:使用如下标志符:#pragma asm汇编语句#pragma endasm注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler SRC File” 和“Assembler SRC File ”两个选项来个实例吧:#i nclud... 2023-06-13 单片机keil常见问题文章其他
Keil MDK下学习STM32注意事项 在MDK下学习使用STM32也快两个礼拜了,基本掌握了STM32在MDK环境下的开发流程和基本硬件程序的书写。其间,遇到了许多问题,其中不少问题花费了我相当多得时间才得以解决,现将这些问题和解决方法列出。其中也有一些是学习过程中我觉得需要记下的注意事项。1、STM32固件库使用外... 2023-06-13 keilMDKSTM32注意事项文章单片机
Keil5 + STM32F2xx_StdPeriph_Lib_V1.1.0 建立工程 这个库版本建立工程的步骤要简单了,今天对比了一下,做了个总结:1.建立目录:建立目录test,并在test下建立子目录test\usr,test\output;2.准备文件:将库文件Libraries\STM32F2xx_StdPeriph_Driver下的inc,src两个目录copy到test目录下;在库文件Project\STM32F2xx_StdPeriph_Ex... 2023-06-13 单片机keil程序代码文章STM32
单片机基础:keil中data,idata,xdata,pdata,code区别 从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型... 2023-06-13 idataxdatapdatakeil文章单片机基础知识
直流电机控制Keil c51源代码 直流电机开环控制Keil c51源代码//-----------------------函数声明,变量定义------------------------#include #include #include//-----------------------定义管脚----------------------------------sbi... 2023-06-13 直流电机keilC51源代码文章单片机51单片机
在keil中使用printf()函数的要点 1.printf 函数是调用putchar函数输入的,而putchar应该是先判断ti是否为1,不为1则等待为1。如果为1则清0,然后送出一 个字符。因此你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。你可以通过改写 putchar函数实现自己的目... 2023-06-13 keilprintf函数要点文章单片机基础知识
Keil 中的报警错误 中断中和中断外都调用了同一个串口打印函数,一直有上述的报警,没在意,今天调试时发现串口打印出了一些乱七八糟的东东,且程序也不知道跑哪里去了,很郁闷。最后查到是上述这个问题导致的,现在解决办法为采用第二种办法,第一种办法据说要耗很多存储空间,以后慢慢体会。说说几个小问... 2023-06-13 keil报警错误51单片机文章单片机其他
在keil编程环境中遇到几种常见警告分析 1. Warning 280:’i’:unreferenced local variable说明 局部变量 i 在函数中未作任何的存取操作解决方法 消除函数中 i变量的宣告2 Warning 206:’Music3’:missing function-prototype说明 Music3( )函数未作宣告 或未作外部宣告 所以无法给其他函... 2023-06-13 keil编程环境警告分析文章单片机其他
KEILC51printf格式化输出特殊用法 KEIL里扩展出了b,h,l来对输入字节宽的设置:(1)b八位(2)h十六位(默认)(3)l三十二位在Keil C51中用printf输出一个单字节变量时要使用%bd,如unsigned char counter;unsigned int sum;printf(“Current count: %bd\n”, counter);//输出8位”十进制有符号... 2023-06-13 keilC51printfC语言文章单片机基础知识
C51优化设计之使用DJNZ循环指令提高执行效率 C51有三种循环语句即while,do-while和for,这三种循环都可以用来处理同一问题,基本上三者可以相互替换.但由于C51是针对51汇编语言的编译器,如果不注意51汇编指令的特点,不同的编程方式可能得到不同的程序性能(执行速度和代码长度).以计算1+2+3+...+9+10为例,下面做一对比... 2023-06-13 高效代码循环语句keilC51DJNZ文章单片机51单片机