单片机

串口&液晶屏Ⅰ

1.题目要求这一次我们将上一讲的代码作为基础,要实现的任务就是电脑端发送过来的字符串单片机把它们显示在液晶屏上,由于液晶屏只能显示ASCII码的字符,无法显示汉字,所以电脑端发送过来的字符串也必须是英文输入法下打出的字符。当单片机接收完字符串之后液晶屏显示“ReceptionComplete!”表示接

指向数组的指针

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

无源蜂鸣器+LED

1.联系生活我们已经学会控制无源蜂鸣器鸣叫的时间,那么作为本章最后一讲,联合我们学过的LED章节知识,写一个用开发板实现一个生活常见现象的代码,比如常见机器报警时,灯亮的时候蜂鸣器就响,灯灭的时候就不响,时间上表现为灯亮的时候蜂鸣器马上响,亮的时间和鸣叫的时间都为1秒,

闪烁的LED

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

分钟秒表

数码管的基础知识已经讲解的差不多了,我们做道题目来结束本章的学习内容。1.题目要求开发板上电瞬间需要做到如下图的“0.00”所示右边两个数码管用来做60秒计时,带小数点显示的数码管用来做一分钟过后的累加,当还没到达10分钟时,最左端的数码管(也就是数码管3)不允许亮,

流水灯的优化解说

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

按键猜想

当然按键的功能不是像前两讲的代码这么单调,前两讲的代码是认识到程序中寄存器位的值是可以受外部电路影响而改变的。这一讲我们要做的就是根据前两讲的知识不断探索按键的一些规律和原理。1.状态图可能我们理想中的按键过程图如下那我们不妨在这种猜想下用代码测试看看是什么效果。

遥控器控制舵机

1.题目要求我们在第九章第2讲第一个例程“按键控制舵机桨”的基础上,实现用红外遥控器的前三行按键控制舵机桨停留在我们想要的位置,这样就实现了无线遥控控制机械结构运动的简单功能。2.main.c测试代码#include<reg52.h>#include<function.h>//详见第六章第8讲#inc

EEPROM简单使用

我们这一讲简要讲解如何往EEPROM的地址0x55写入一个数据,然后读出这个数据的内容。本讲代码围绕的是宋老师的lesson14_2例程代码讲解。1.写入一个字节内容如果要在EEPROM的某个地址里写入内容,那么步骤的实现归为:起始信号→找到这个器件是否存在(寻址),

数码管显示函数

1.代码选择有时我们需要6个数码管显示我们想要看到的数字,比如计算结果呈现在数码管上,然而当要显示的数为“520”时又不想前面的3个数码管亮(也就是高位为0不显示),我们把这部分功能代码封装为带参数的函数,传入的参数就是要显示的数值。参数定义的是unsignedlong类型,