单片机

温度传感器代码独立文件

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

隐形漏洞

1.漏洞代码假如就按上一讲说的书写方式,实现定时50ms间隔的流水灯。#include<reg52.h>#include<function.h>//详见第六章第8讲voidmain(){LED_Init();//初始化LED硬件模块EA=1;//闭合总中断开关TMOD=0x01;//设置定时器0为工作

串口&液晶屏Ⅱ

1.题目要求在上一讲代码测试中,电脑端发送过来的数据单片机这边需要用数组存取起来,再把这些数据通过液晶屏显示出来,不过我们也可以把接收到的数据直接写进液晶屏的RAM中让它实时显示。比如在电脑端那边发送“DAN”(DAN后面有一个空格),液晶屏就从第一格开始显示“DAN”,

第一阶段的总结

我们的第一阶段的单片机学习在这里就成为一个过渡了!我们虽然没有运用很多的C语言知识,都是用简单的基础知识反复运用加深印象。说到底,单片机终归还是偏重于软件多一点,怎样巧妙的编程还需要我们不停积累。所以在这里笔者建议初学者先放缓学单片机的步伐,

数据类型强制转换

1.实用性改善为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。

AD与DA合成文件

这一章节的内容比较简单,大家反复细读学习《手把手教你学51单片机》文档第17章就会了解透彻这部分的知识。1.简要解析概念和代码我们知道PCF8591有4个通道是可以用来读取输入的电压值的。那么宋老师写的“unsignedcharGetADCValue(unsignedcharchn)”就是选择读取其中

第一阶段综合例程(下)

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.还需消抖可以看到我们在第6讲和第7讲的按键不支持连按代码中,死循环都有“delay_ms(2);”,因为大多数时候主循环都要做很多事,所以我们认为这2ms的延时是很多复杂程序要执行所消耗的时间,而正是因为这个延时函数的存在把按键的物理抖动给滤掉了,误导了我们以为这样的不支持连按代码是合格的。

多文件编程首次测试

延时函数虽然很少使用了,但是有时需要测试代码的时候还会派上用场,所以也把它放进“function.c”文件中。1.function.c的代码#include<reg52.h>#include<function.h>u8codeLedChar[16]={0xC0,

最终的function文件

最后这一讲没什么知识点讲解,我们将前面的七讲内容集合成最后完整的function文件,以便后面大家弄乱了这两个文件的内容好过来这里复制粘贴回去。1.function.c最终代码#include<reg52.h>#include<function.h>u8codeLedChar[16]={0xC0,