定时器工作模式2 1.工作模式2的使用这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。我们想实现间隔51ms的流水灯实验该怎么做, 定时器 2022年01月11日 241 点赞 0 评论 127681 浏览
静态变量 1.staticstatic一般不用在主函数中,大多数在中断函数和封装好的子函数里运用,它的作用是保证在子函数或中断函数中定义的变量每次调用完之后都可以保持调用完时候的值,《手把手教你学51单片机》文档7.2节有这个知识点的讲解,不过我们还是用代码来解释这个static的作用吧。 独立按键 2022年05月24日 167 点赞 0 评论 85736 浏览
舵机与按键 1.按键控制舵机桨为了再次领悟舵机的运用,我们使用按键控制舵机桨在我们想要的位置上停留。K8负责控制舵机桨往一个方向不停旋转,K16则控制相反方向旋转。按键模式为支持连按。然后数码管显示高电平持续的时间,如果数码管显示5,则高电平在20ms周期里持续的时间为0.5ms, 舵机与超声波模块 2022年04月18日 74 点赞 0 评论 107823 浏览
温度传感器代码独立文件 创建好“ds18b20.c”和“ds18b20.h”文件,把下面代码添加进各自的文件。1.ds18b20.c代码我们在宋老师的代码基础上添加了温度转换函数,原理在上一讲已经讲解清楚了。#include<reg52.h>#include<ds18b20.h>#include<intrins.h>unsi 红外遥控与温度传感器 2022年04月01日 142 点赞 0 评论 81847 浏览
新按键程序 1.支持连按的书写对上一讲的知识我们再补充一下支持连按的代码以此加深理解。实验现象就是按着按键不放,那么“key=1;”出现的频率就会比不支持连按代码的时候多,所以就会有左右不断流水的现象,按键的功能代码大家自己去分析了。#include<reg52.h>#include<function.h>#de 多文件编程 2022年03月10日 168 点赞 0 评论 98806 浏览
数组与移位 1.数组运用实现上一节的功能其实还有更简洁的方法去书写,那就是引用数组,用数组存取灯的八种状态值。定义含有8个元素的数组如下:unsignedcharLEDSET[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};每个元素轮流赋值给P0后延时即可。 LED及入门 2022年03月17日 255 点赞 0 评论 122670 浏览
实践操作 上一讲的代码中,我们只需重点关注“UART_E2Write();”和“UART_E2Read();”,其他代码都与前几讲的“液晶屏与串口”的代码思路一样。1.写函数分析首先先分析“UART_E2Write();”。判断字符串的前部分是否为“E2Write:”然后读取出要在EEPROM哪个地址开始写入数 混合例程 2022年01月13日 68 点赞 0 评论 108552 浏览
多文件编写 为了与主流的编程素养接轨,我们本章讲解如何书写简洁并且高效率的代码以及首次运用多文件编程。多文件的作用是方便编写大程序时更加的模块化,那么至于原理,头文件包含关系等这些知识还需读者自己再多多补补C语言知识了。1.多文件的优势运用多文件编程是为了使我们教程无需每次都贴出相同功能的代码, 多文件编程 2022年05月27日 224 点赞 0 评论 105874 浏览
代码参考 前面的篇章我们都是在普及知识,真正使用好定时器还是需要重新拟定新的书写方案的,我们参考了宋老师的书写方式,在他的代码基础上我们进行小修改成就实用的工程代码。1.代码解析voidConfigTimer0(unsignedintms){unsignedlongtmp;//临时变量tmp=11059200/ 定时器 2022年04月26日 237 点赞 0 评论 107435 浏览
再次熟悉串口 串口是非常常用的一个调试工具,我们都必须熟练使用串口的各个功能。1.题目要求和解决方案我们要做的是,电脑端发送字符串过来给单片机,然后单片机这边接收完之后要回复给电脑端,回复内容为“接收完成!”。单片机这边把接收到的数据存放在定义好的全局变量数组里面, 混合例程 2022年04月12日 56 点赞 0 评论 106770 浏览