单片机

代码文件和测试

创建好“infrared.c”和“infrared.h”文件。1.infrared.c的代码#include<reg52.h>#include<infrared.h>unsignedcharirflag=0;//红外接收标志,收到一帧正确数据后置1unsignedcharircode[4];//红外代

定时器工作模式

1.两种“试管”这种“试管”有65535个刻度的型号,也有255个刻度的型号,不过我们的导管水流流速是永远不变的。如果我们用的是大试管(65535个刻度),那么溢出时间我们可以控制的长一些,也就是定时时间可以多一点。我们要是想定时36个单位刻度的时间,

函数传参调用

本讲在上一讲的代码基础上讲解新的编程知识:函数参数传递调用!1.推陈出新上一讲的函数封装“delay();”是一个固定的功能,只能做延时1秒的作用,大多数情况下我们希望一个函数用相同的函数名通过修改一个值可以实现不一样的功能,所以就产生了函数带参调用的编程手法。

第一阶段综合例程(上)

1.其他按键的使用我们之前都是让P2.3输出低电平来让K1,K2,K3,K4作为独立按键,那我们要想用K13,K14,K15,K16做独立按键时只要P2.0输出低电平就可以了。下面是简化的原理图2.美女与男人作为本章的最后一个题目,我们结合所有学过的知识做一个综合例程,实现美女与男人的游戏的功能代码。

定时器&数码管扫描显示

1.定时器中断实现间隔切换在第六章第4讲的测试代码中提到过数码管微闪烁问题,这是由于三八译码器的IO端口切换的间隔时间不均匀导致,这部分的问题宋老师已经在《手把手教你学51单片机》文档6.4.2节有详细解释,并在6.5.2节里解决了这个问题。

再次优化不支持连按的代码

1.还需消抖可以看到我们在第6讲和第7讲的按键不支持连按代码中,死循环都有“delay_ms(2);”,因为大多数时候主循环都要做很多事,所以我们认为这2ms的延时是很多复杂程序要执行所消耗的时间,而正是因为这个延时函数的存在把按键的物理抖动给滤掉了,误导了我们以为这样的不支持连按代码是合格的。

中断函数

1.中断函数概念上一讲里,当赋值IT0为1时,P3.2遇到下降沿,IE0被置1,要想使IE0自动清零,我们引用中断函数就可以了。我们可能已经习惯了都是在main函数里阅读分析代码,其实还有另一种函数需要我们认识的,那就是中断函数。所谓中断函数就是当它满足一定的条件时就会暂停主函数的执行内容,

指向数组的指针

在串口章节和液晶屏章节的部分代码中总是看到“*str!=&#39;\0&#39;”和“*str++”却一时难以理解意思,本节我们将简要讲解这两部分代码的含义,但前提需要大家有对指针方面的知识基础,建议先了解《手把手教你学51单片机》文档12.1节知识内容先。

闪烁的LED

延时是单片机入门必学的应用!1.序上一讲我们已经实现点亮一盏灯,但是很多时候程序的执行都是要死循环的,不能让程序像是停在那里不执行了。所以这一讲在前面的原理图基础上实现让LED2从点亮一段时间到熄灭一段时间再点亮一段时间如此循环下去,实现闪烁LED2的功能。

单独文件封装

1.再遇多文件编程因为定时器经常在后面的教程中使用到,所以我们也把这部分功能代码单独使用文件封装起来。在第六章的教程中已经教过大家多文件创建,这里点到为止。创建好“timer.c”和“timer.h”添加进工程中2.timer.c的代码#include<reg52.h>#include<functio