电位器控制舵机 1.题目要求为了使ADC的知识能配合其他模块实现不同功能,这里我们打算通过扭动电位器(滑动变阻器)来控制舵机桨的位置,如果我们顺时针扭一圈电位器,那么舵机桨也会跟着从一端旋转到另一端。2.main.c测试代码#include<reg52.h>#include<function.h>//详见第六章第8讲 混合例程 2022年02月02日 154 点赞 0 评论 105062 浏览
实践操作 上一讲的代码中,我们只需重点关注“UART_E2Write();”和“UART_E2Read();”,其他代码都与前几讲的“液晶屏与串口”的代码思路一样。1.写函数分析首先先分析“UART_E2Write();”。判断字符串的前部分是否为“E2Write:”然后读取出要在EEPROM哪个地址开始写入数 混合例程 2022年01月13日 68 点赞 0 评论 108552 浏览
代码参考 前面的篇章我们都是在普及知识,真正使用好定时器还是需要重新拟定新的书写方案的,我们参考了宋老师的书写方式,在他的代码基础上我们进行小修改成就实用的工程代码。1.代码解析voidConfigTimer0(unsignedintms){unsignedlongtmp;//临时变量tmp=11059200/ 定时器 2022年04月26日 237 点赞 0 评论 107435 浏览
输入捕获 1.捕获高电平时间我们利用定时器0的计数功能实现捕获外部引脚的高电平时间。定时器在不同用法里有不同称呼,比如我们这次是想得知某段过程持续了多长时间,用定时器的计数方式的话就叫做计数器。我们这次选用的外部引脚还是P1.6,初始时先让该引脚输出低电平。 定时器 2022年03月30日 122 点赞 0 评论 101867 浏览
数据类型强制转换 1.实用性改善为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。 定时器 2022年04月05日 56 点赞 0 评论 76688 浏览
定时器&数码管扫描显示 1.定时器中断实现间隔切换在第六章第4讲的测试代码中提到过数码管微闪烁问题,这是由于三八译码器的IO端口切换的间隔时间不均匀导致,这部分的问题宋老师已经在《手把手教你学51单片机》文档6.4.2节有详细解释,并在6.5.2节里解决了这个问题。 定时器 2022年02月27日 58 点赞 0 评论 114840 浏览
呼吸灯 1.双定时器呼吸灯实现呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到99的循环自加,这样周期就是10ms。 定时器 2022年01月05日 70 点赞 0 评论 87506 浏览
指向数组的指针 在串口章节和液晶屏章节的部分代码中总是看到“*str!='\0'”和“*str++”却一时难以理解意思,本节我们将简要讲解这两部分代码的含义,但前提需要大家有对指针方面的知识基础,建议先了解《手把手教你学51单片机》文档12.1节知识内容先。 1602液晶屏 2022年01月02日 129 点赞 0 评论 109777 浏览
温度传感器代码解析Ⅱ 1.小于0度的转换我们知道当测量的实际温度为0度以下时,temp没转换时的情况为下图所示我们已经知道高5位为1表示的是负数,那么-0.5度的时候为什么是1111111111111000。负数的计算涉及到补码的知识。首先0xFFF8,除去高5位那就是11111111000反码为00000000111而补 红外遥控与温度传感器 2022年05月24日 189 点赞 0 评论 124417 浏览
结束语 我们的教程到此就划上了一个完美的句号了,不过对于初学者来说,从串口的内容到后面的知识都是需要慢慢消化掌握的,不可能通过看我们几篇教程就能领悟所有的知识的,尤其是指针和内存之间的关系。程序的执行顺序也是我们需要完全掌握的,特别在子函数特别多的时候, 完结 2022年04月19日 87 点赞 0 评论 116127 浏览