单片机

无源蜂鸣器鸣叫

1.输出方波图解我们现在要给单片机IO端口输出4khz的方波。现在我们算出方波的周期:1/(4*1000)s=0.00025s=0.25ms高电平时间:(0.25/2)ms=0.125ms低电平时间:(0.25/2)ms=0.125ms2.驱动代码因为我们只写过最低延时1ms的函数,

高位不显示0

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

指向数组的指针

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

多文件编写

为了与主流的编程素养接轨,我们本章讲解如何书写简洁并且高效率的代码以及首次运用多文件编程。多文件的作用是方便编写大程序时更加的模块化,那么至于原理,头文件包含关系等这些知识还需读者自己再多多补补C语言知识了。1.多文件的优势运用多文件编程是为了使我们教程无需每次都贴出相同功能的代码,

延时1秒

1.准确延时学会了上一讲的软件调试教学,我们现在用软件调试出延时很接近1毫秒的代码:for(j=115;j>0;j--);如果要延时1秒,那是不是循环1000次这条语句呢?for(i=0;i<1000;i++){for(j=115;j>0;j--);}可是这段代码在软件调试中发现循环1000次这个1毫

外部中断测脉冲个数

1.外部中断的常用功能外部中断经常用来记录外部脉冲的个数,也就是当我们使用外部中断1时,如果想记录自身单片机的某个引脚的下降沿个数,只需用杜邦线把这个引脚和P3.3连接即可。比如P2.3引脚产生这样的电平无规律跳转,则下降沿的个数为5所以我们就用外部中断1来实现记录K4按键从按下到松手的抖动过程中经历

遥控器控制舵机

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

定时器简单运用

1.细节上一讲里,我们知道TH0和TL0合成的“16位的变量”的初值最小要为0,不能是负数,所以我们要满足:65536-(x/(12/11059200))>=0。解得x<=0.071111秒=71.111毫秒。也就是用定时器的工作模式1最长的定时时间为71毫秒左右而已。

简洁式串口通信

1.串口配置函数上一讲的讲解是让大家对《手把手教你学51单片机》文档的第十一章的第一个例程的辅助理解,我们没有写单片机接收电脑端发送回来的数据字节做处理的代码。因为这些都是IO端口模拟的串口通信,由于51单片机本身集成有串口模块,所以我们使用其硬件资源即可,

实际LED硬件连接

1.三极管认识假如我们的开发板的硬件连接有如下情况,我们需要点亮LED,需要怎么做?先看左图,要想点亮LED,根据本章第一讲知识,只需“+5”与R1是短接状态即可,那么PNP型三极管就是起到被单片机IO端口控制是否允许此处短接的作用,也叫三极管是否导通。