单片机

数组与移位

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

呼吸灯

1.双定时器呼吸灯实现呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到99的循环自加,这样周期就是10ms。

分钟秒表

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

再次熟悉串口

串口是非常常用的一个调试工具,我们都必须熟练使用串口的各个功能。1.题目要求和解决方案我们要做的是,电脑端发送字符串过来给单片机,然后单片机这边接收完之后要回复给电脑端,回复内容为“接收完成!”。单片机这边把接收到的数据存放在定义好的全局变量数组里面,

前期准备

1.学习前提单片机是需要与程序打交道的,这个需要您先掌握很基础的C语言知识,即便我们讲解程序的执行过程尽量详细,但对于没有任何C语言知识基础的同学来说这将是举步维艰的。所以您必须掌握以下最基本的知识1.数据类型2.十六进制,十进制,二进制之间的转换3.程序的运行顺序4.if,

按键&蜂鸣器&数码管

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

IIC入门代码讲解

因IIC时序细节的理解不是一两篇文章就能描写清楚的,这里笔者只针对《手把手教你学51单片机》文档第14章内容做补充辅助理解,如果大家想彻底弄明白IIC的所有通信细节过程,那么就需要“好事多磨”了。我们现在先贴出IIC的时序流程图1.起始信号函数我们同样是运用宋老师的代码,

进一步理解中断函数

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

第一阶段综合例程(下)

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

数组&数码管

1.回顾大家还记得我们用数组来存取流水灯的状态值吗,那么数码管也是一样的,我们可以知道数码管能显示出在单片机编程中最常见的数字和字母为0~9,A,b,C,d,E,F这16种状态,那么这一讲我们实现单个数码管从0到F间隔一秒来循环显示。2.单片机内存首先要知道我们写的程序是占用内存的,