单片机

数组与移位

1.数组运用实现上一节的功能其实还有更简洁的方法去书写,那就是引用数组,用数组存取灯的八种状态值。定义含有8个元素的数组如下:unsignedcharLEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};每个元素轮流赋值给P0后延时即可。

超声波模块

1.超声波模块型号超声波模块是一种常用的测距工具,一般用在避障小车,水位监控系统中,本教程使用的模块型号为HC-SR04,外观形状大体如下模块除了两个电源引脚外,还有TRIG,ECHO引脚,这两个引脚分别接我们开发板的P2.0和P2.1。工作原理就是起初先给这两个引脚都拉低,

串口&液晶屏Ⅱ

1.题目要求在上一讲代码测试中,电脑端发送过来的数据单片机这边需要用数组存取起来,再把这些数据通过液晶屏显示出来,不过我们也可以把接收到的数据直接写进液晶屏的RAM中让它实时显示。比如在电脑端那边发送“DAN”(DAN后面有一个空格),液晶屏就从第一格开始显示“DAN”,

串口通信入门

在讲解本章的内容之前请大家先反复阅读《手把手教你学51单片机》文档的第11章内容,很多概念文档都已详细讲解有。1.波特率串口通信就是单片机与电脑端,单片机与单片机,单片机与模块器件之间互发信息进行通信,比如单片机发送一个“1”的字符给电脑端,电脑端的窗口就会接收到“1”。

第一阶段综合例程(下)

1.上一讲的代码#include<reg52.h>sbitADDR2=P1^2;sbitADDR1=P1^1;sbitADDR0=P1^0;sbitENLED=P1^4;sbitADDR3=P1^3;sbitBEEP=P1^6;sbitKEY13=P2^4;sbitKEY14=P2^5;sbitKEY

高位不显示0

在上一讲代码基础上,根据常识,变量没有到达10时,数码管1和数码管2应该是不需要点亮的,也就是高位不显示0。1.代码参考笔者参考了宋老师的代码,他的做法就是额外开辟出一个数组用来做缓存,P0去取这个数组里的值即可,初始化的时候如下unsignedcharLedBuff[6]={0xFF,

代码文件和测试

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

进一步理解中断函数

1.另一个外部中断前面两讲都是围绕外部中断0(P3.2的功能)来讲解,这里我们也还有一个外部中断1(P3.3的功能)。P3.3要想实现上一讲的功能只需杜邦线接下面的IO端口即可代码就是把“EX0”改为“EX1”,“IT0”改为“IT1”。interrupt后面的0要改为2,

流水灯的优化解说

1.题目为了更好地体现上一讲优化好的不支持连按代码的优势,我们来一道题目:用上7盏灯,左边6盏不停地流水,最右边1盏实现按键切换灯的打开和关闭,且按键动作不能干扰到流水灯的流速状态。实验现象状态模拟如下11111011//按键没按下11110111//按键没按下11101110//按键按下后抬起110

输入捕获

1.捕获高电平时间我们利用定时器0的计数功能实现捕获外部引脚的高电平时间。定时器在不同用法里有不同称呼,比如我们这次是想得知某段过程持续了多长时间,用定时器的计数方式的话就叫做计数器。我们这次选用的外部引脚还是P1.6,初始时先让该引脚输出低电平。