单片机

数码管&LED

1.同时点亮猜想在本章第一节里说过要想点亮数码管,那么我们第一章学过的LED小灯就没有机会点亮了,硬件上的确是这样。不过我们软件上还是可以实现让一个数码管和一盏LED小灯同时点亮的,大家还记得我们之前举过一个这样的例子吗?#include<reg52.h>sbitLED2=P0^0;sbitADDR2

多个数码管显示

1.余晖效应流水灯如果在流速太快的基础上再加速,那么我们看到的则是一排灯都在亮着,这就叫人眼的余晖效应。同理,我们想让多个数码管同时亮,那么就要让三八译码器的IO0~IO5每个输出引脚轮流快速切换出低电平,需要显示什么数字再由P0的8个IO端口控制。

同时显示不同的数字

在上一讲的代码中几个数码管只能同时显示相同的数字和字母,这一讲我们实现同时3个数码管点亮但每个数码管显示的数字都不一样,所以我们做一个用来显示一个变量一秒后自加1的显示效果。例如,此时时间过去了162秒1.取余先定义一个8位的变量Second,

高位不显示0

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

数码管小数点

1.显示小数点我们可能忽略了数码管上还有一段发光二极管,这个在它的右下角,平时我们点亮这个小点是用来表示数字的小数点。要想让这个小数点即使显示的数字一直变但它还是保持常亮状态有什么办法吗。我们不可能为每一个数字再弄一个带小数点的真值表数组,这样太麻烦了,熟悉C语言知识的话,我们用另一种方法。

分钟秒表

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

按键入门

这一章我们讲解单片机最常用的硬件部分——按键!1.原理图按键分独立按键和矩阵按键,本教程不讲解矩阵按键,4个独立按键已经满足大部分的程序测试。学会了独立按键,矩阵按键可参考宋老师的教程。先看到我们开发板上的K4我们单独拿这个按键来入门,看一下它的原理图现在让单片机的P2.3输出低电平,

按键&蜂鸣器&数码管

在上一讲的代码中我们可以不用写“sbitGND=P2^3;”,像宋老师那样直接在开头“P2=0xF7;”仅让P2.3输出0其他输出1即可,这样P2.7就有被拉低的条件了。1.趁热打铁沿袭上一讲的功能,我们新学的按键知识需要结合所学过的无源蜂鸣器硬件一起捣鼓玩玩。

按键猜想

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

按键用法

1.联系生活按键的常用做法就像生活中的电磁炉那样,按下电磁炉上的“+”键后马上松开,发现电磁炉上的数就增加了。现在我们打算用开发板像按电磁炉上的按键一样,按一下灯被点亮,再按一次灯被熄灭这样的来回切换灯的状态的功能。不过在讲解实际运用之前我们还需来了解按键的抖动!2.实际按键过程我们之前所讲的按键过程