单片机

定时器工作模式2

1.工作模式2的使用这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。我们想实现间隔51ms的流水灯实验该怎么做,

静态变量

1.staticstatic一般不用在主函数中,大多数在中断函数和封装好的子函数里运用,它的作用是保证在子函数或中断函数中定义的变量每次调用完之后都可以保持调用完时候的值,《手把手教你学51单片机》文档7.2节有这个知识点的讲解,不过我们还是用代码来解释这个static的作用吧。

舵机与按键

1.按键控制舵机桨为了再次领悟舵机的运用,我们使用按键控制舵机桨在我们想要的位置上停留。K8负责控制舵机桨往一个方向不停旋转,K16则控制相反方向旋转。按键模式为支持连按。然后数码管显示高电平持续的时间,如果数码管显示5,则高电平在20ms周期里持续的时间为0.5ms,

温度传感器代码独立文件

创建好“ds18b20.c”和“ds18b20.h”文件,把下面代码添加进各自的文件。1.ds18b20.c代码我们在宋老师的代码基础上添加了温度转换函数,原理在上一讲已经讲解清楚了。#include<reg52.h>#include<ds18b20.h>#include<intrins.h>unsi

新按键程序

1.支持连按的书写对上一讲的知识我们再补充一下支持连按的代码以此加深理解。实验现象就是按着按键不放,那么“key=1;”出现的频率就会比不支持连按代码的时候多,所以就会有左右不断流水的现象,按键的功能代码大家自己去分析了。#include<reg52.h>#include<function.h>#de

数组与移位

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

实践操作

上一讲的代码中,我们只需重点关注“UART_E2Write();”和“UART_E2Read();”,其他代码都与前几讲的“液晶屏与串口”的代码思路一样。1.写函数分析首先先分析“UART_E2Write();”。判断字符串的前部分是否为“E2Write:”然后读取出要在EEPROM哪个地址开始写入数

多文件编写

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

代码参考

前面的篇章我们都是在普及知识,真正使用好定时器还是需要重新拟定新的书写方案的,我们参考了宋老师的书写方式,在他的代码基础上我们进行小修改成就实用的工程代码。1.代码解析voidConfigTimer0(unsignedintms){unsignedlongtmp;//临时变量tmp=11059200/

再次熟悉串口

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