21课:单片机串行口介绍,串口通信 串行口是单片机与外界进行信息交换的工具。8051单片机的通信方式有两种:并行通信:数据的各位同时发送或接收。串行通信:数据一位一位次序发送或接收。参看下图:串行通信的方式:异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式... 2017-11-16 单片机教程单片机串行口串口
单片机循环语句,for循环语句 for语句是我们今后编程的一个常用的语句,这个语句必须得学会其用法,他不仅仅可以用来做延时,还可以用来做一些循环运算。for语句的一般形式如下:for(表达式1;表达式2;表达式3)(需要执行的语句);其执行过程是:表达式1首先执行且只执行一次;然后执行表达式2,通常都是一个用于判定条件的表达式,如果表达式2条件成立,就执行(需要执行的语句);然后再执行表达式3;再判断表达式2,再执行表达式3... 2017-09-21 for循环语句单片机
单片机循环语句,while循环语句 在我们单片机C语言编程的时候,每个程序我们都会固定的加一句while(1),这条语句就可以起到死循环的作用。对于while语句来说,他的一般形式是:While(表达式){循环体语句;}在C语言里,通常表达式符合条件,我们叫做真,不符合条件,叫做假。比如前边i<30000,当i等于0的时候,那这个条件成立,就是真,如果i大于30000的时候,... 2017-09-21 while循环语句单片机
89C52来做定时记数器程序,51定时程序 89C52来做定时记数器程序,51定时程序关键字:单片机c语言定时程序,89c52,定时程序使用89C52来做定时记数器/***************************************************************功能:实现单片机定时记数器***********************************************************... 2017-07-11 单片机定时程序c语言
PLC的显示和空操作指令说明 显示和空操作指令及其说明见表。表显示和空操作指令及其说明(1)BLD程序显示指令(空)使用该指令(程序显示指令,空指令),既不执行任何功能,也不影响状态位。该指令用于编程器(PG)的图形显示。当在语句表中显示梯形逻辑或FBD程序时,再自动生成。地址是指BLD指令的标识号,由编程器产生,生成数字的范围为0~255。(2... 2017-07-08 PLC空操作指令
12课:单片机逻辑运算类指令 对单片机的累加器A的逻辑操作:CLRA;将A中的值清0,单周期单字节指令,与MOVA,#00H效果相同。CPLA;将A中的值按位取反RLA;将A中的值逻辑左移RLCA;将A中的值加上进位位进行逻辑左移RRA;将A中的值进行逻辑右移RRCA;将A中的值加上进位位进行逻辑右移SWAPA;将A中的值高、低4位交换。例:(A)=73H,则执行CPLA,这样... 2017-07-07 单片机教程逻辑运算类指令逻辑运算
11课:单片机算术运算指令 不带进位位的单片机加法指令ADDA,#DATA;例:ADDA,#10HADDA,direct;例:ADDA,10HADDA,Rn;例:ADDA,R7ADDA,@Ri;例:ADDA,@R0用途:将A中的值与其后面的值相加,最终结果否是回到A中。例:MOVA,#30HADDA,#10H则执行完本条指令后,A中的值为40H。下面的题目自行练习MOV34... 2017-07-07 单片机教程算术运算指令
10课:单片机数据传送类指令 单片机的累加器A与片外RAM之间的数据传递类指令MOVXA,@RiMOVX@Ri,AMOVXA,@DPTRMOVX@DPTR,A说明:1)在51系列单片机中,与外部存储器RAM打交道的只能是A累加器。所有需要传送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们能看出内外部RAM的区别了,内部RAM间能直接进行数据的传递,而外部则不行... 2017-07-07 单片机教程数据传送类指令
8课:单片机寻址方式与指令系统 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051单片机的指令部份。一、概述1、指令的格式我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码... 2017-07-07 单片机教程指令系统单片机
9课:单片机数据传递类指令 说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。进入DOS状态,进入WAVE所在的目录,例D:\WAVE键入MCS51,出现如下画面图1按File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图3)图2在空白处将... 2017-07-07 单片机教程数据传递类指令
51系列单片机关于时序问题 单片机的基本操作周期为机器周期,一个机器周期分为六个状态,每个状态由两个脉冲组成,也就是所谓的两箱(前一个脉冲P1叫相位1,后一个脉冲P2为相位2)。所以一个机器周期共有12个振荡脉冲。因此可以根据时钟频率计算出一个机器周期的时间。例如:系统的时钟是11.0592MHZ,那么用它除以12,得到了每秒执行的机器周期书,然后取反就得到了机器周期的时间。... 2017-06-24 51系列单片机时序
单片机C语言程序设计:用ADC0808控制PWM输出 /*名称:用ADC0808控制PWM输出说明:使用数模转换芯片ADC0808,通过调节可变电阻RV1来调节脉冲宽度,运行程序时,通过虚拟示波器观察占空比的变化。*/#include#defineucharunsignedchar#defineuintunsignedintsbitCLK=P2^4;//时钟信号sbitST=P2^5;... 2017-06-24 单片机C语言ADC0808PWM输出c语言
单片机C语言程序设计:ADC0809数模转换与显示 /*名称:ADC0809数模转换与显示说明:ADC0809采样通道3输入的模拟量,转换后的结果显示在数码管上。*/#include#defineucharunsignedchar#defineuintunsignedint//各数字的数码管段码(共阴)ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x... 2017-06-24 单片机C语言ADC0809数模转换与显示
单片机C语言实现循环移位 大家知道,大家用MCU写程序的时候,只有移位的语句,没有循环移位的语句。那么如何实现循环移位呢,详见下述:循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。 设有数据说明:a=01111011,循环左移2位正确结果:11101101过程:... 2017-06-24 单片机C语言循环移位移位
51单片机1602显示的超声波测距源程序 制作超声波测距仪,是很多学生、单片机爱好者学习单片机动手实践的一个实作项目,这款超声波测距程序,针对目前比较广泛使的HC-SR04超声波模块而设计的,这款1602显示的超声波测距距源程序,单片机是51系列单片机,超声波测距模块先用的是HC-SRO4超声波测距模块,单片机的晶振是12M,接线:模块TRIG接P2.5ECH0接P3.2,当距离超出测量时,范围显示“-”,显示单位是CM。这款程... 2017-06-24 单片机C语言超声波测距源程序超声波测距
6课:单片机并行口结构 上两次我们做过两个实验,都是让P1.0这个管脚使灯亮,我们能设想:既然P1.0能让灯亮,那么其它的管脚可不能呢?看一下图1,它是8031单片机管脚的说明,在P1.0旁边有P1.1,P1.2….P1.7,它们是否都能让灯亮呢?除了以P1开头的外,还有以P0,P2,P3开头的,数一下,一共是32个管脚,前面我们以学过7个管脚,加上这32个这39个了。它们都以P字开头,只是后面的数字不一样,它们... 2017-06-16 单片机并行口结构单片机教程单片机
7课:单片机的特殊功能寄存器 通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计... 2017-06-16 单片机的特殊功能寄存器单片机教程单片机
基于C8051F单片机的镍氢电池组管理系统 文章描述了镍氢电池充放电原理和特性的分析,并根据镍氢电池充放电管理需求,提出了一种基于C8051F单片机对多节镍氢电池串联电池组进行综合监测和管理的方案,通过设计:实现了新型电池管理电路,包括完整的硬件和软件解决方案。随着中国煤炭工业的发展和矿山装备技术的进步,我国对煤矿甲烷安全监控系统,运输监控系统,应急救援系统等使用的后备电源的设备要求越来越高,尤其是其安全特性。作为煤矿用... 2017-06-05 单片机的镍氢电池组管理系统电池组管理系统单片机8051
单片机编写延时函数的简单方法 这也是大家最常在QQ里问我的一个问题,如果从keil里看了c语言的反汇编代码然后根据晶振和指令计算延时的时间这样虽然非常的准确但是相当的麻烦而且容易搞错,我这里介绍一个最简单的方法.可以验证你的延时函数这里用一个例程详细介绍一下。过程参考如下:在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机晶振的选择,因为for循环里指令的执行时间和晶振有直... 2017-05-20 编写延时函数的简单方法单片机教程延时函数
用单片机C语言精确延时(定时)的方法 最近在忙着单片机的项目,偶尔停下来小结了一下最近的收获,还是有不少可贵的收益的。本人在闲暇的时候对单片机C语言下的各类延时程序做了下总结。由于单片机C语言下利用软件延时不容易做到精确的定时,所以很多人在编写延时子程序的时候不能好好的把握延时的具体时间。C语言下,延时程序主要有以下几种:一:voiddelay(unsignedchark){unsignedchari,k;//定义变... 2017-05-20 单片机C语言精确延时单片机延时
单片机汇编延时程序的理解 单片机汇编实现延迟的程序代码:DELAY:MOVR7,#250;D1:MOVR6,#250;D2:DJNZR6,D2;DJNZR7,D1;RET如果用高级语言编程,只需要简单地调用延时函数就可以实现,但是计算机具体是怎么实现的呢?要想知其所以然,还得从汇编开始学起。冒号前面的“DELAY”、“D1”、“D2”为语句行的名字,... 2017-05-20 单片机汇编延时程序的理解单片机教程
5课:单片机延时程序分析 上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。DELAY:MOVR7,#250 ;(6)D1:MOVR6,#250 ;(7)D2:DJNZR6,D2 ;(8)DJNZR7,D1 ;(9) RET ;(... 2017-05-20 单片机延时程序分析单片机教程
单片机电子钟电路图,用单片机89C2051串行通信74HC164制作发光电子钟 关键字:89C2051,74HC164,电子钟电路图用单片机89C2051串行通信74HC164制作发光电子钟作者:元增民1.串行通信原理 单片机总共32个I/O口,若直接控制LED数码管,最多只能控制4位。利用单片机同步串行通信功能和串并转换器的串人串出功能,只要用单片机2个口线,就可以控制多位LED数码管。这里结合多位LED数码管的控制介绍单片机同步串行输出通信。 同步串行... 2017-05-09 单片机电子钟电路图发光电子钟电路图制作89C205174HC164
详解单片机的“灵魂”—数据存储器的使用 我们可以说程序存储器的里面存放的是单片机的灵魂,它就是工作程序。小的可能只有1KB(最多只能装1024条8位数据,因为实际指令还有许多2字节、3字节指令,所以它还装不下1024条指令)大的也有128KB的。这些8位数据要么在工厂里做摸子光刻进去,要么一次性的烧写进去,要么……用编程器这个特殊工具把调试成功的机器码装载进去,或者像AVR单片机那样自己花几块钱做一条下载线,把电脑里这些东西灌进去(或... 2017-04-28 数据存储器的使用数据存储器单片机
单片机数字滤波的算法 单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件... 2017-04-28 单片机数字滤波的算法数字滤波单片机算法单片机