按键猜想 当然按键的功能不是像前两讲的代码这么单调,前两讲的代码是认识到程序中寄存器位的值是可以受外部电路影响而改变的。这一讲我们要做的就是根据前两讲的知识不断探索按键的一些规律和原理。1.状态图可能我们理想中的按键过程图如下那我们不妨在这种猜想下用代码测试看看是什么效果。 独立按键 2022年02月03日 135 点赞 0 评论 112467 浏览
中断的实验现象 1.卡顿的流水灯我们用一个实验现象来再一次理解中断函数。在主函数里我们使八盏灯不停地左右快速流水,此时若是被外部因素触发了中断函数的执行,我们就在中断函数里实现蜂鸣器响一下,看看此时主函数里的流水灯是什么现象。代码下载进去,我们随意按K4,观察流水灯。 外部中断 2022年02月01日 183 点赞 0 评论 87394 浏览
第一阶段的总结 我们的第一阶段的单片机学习在这里就成为一个过渡了!我们虽然没有运用很多的C语言知识,都是用简单的基础知识反复运用加深印象。说到底,单片机终归还是偏重于软件多一点,怎样巧妙的编程还需要我们不停积累。所以在这里笔者建议初学者先放缓学单片机的步伐, 独立按键 2022年03月06日 207 点赞 0 评论 76739 浏览
微调定时精确时间 1.定时器&蜂鸣器一般定时器中断函数里的内容最好是能够快速地去执行完,比如只执行几条简单的语句,这样与主函数配合才会使程序更加高效。前期教学里,我们只使用定时器中断负责某个IO引脚间隔跳变或者使一个变量间隔自加1的简单语句。比如我们现在要实现间隔50ms左右的时间让流水灯左右循环移动的同时, 定时器 2022年02月04日 173 点赞 0 评论 88999 浏览
数码管&LED 1.同时点亮猜想在本章第一节里说过要想点亮数码管,那么我们第一章学过的LED小灯就没有机会点亮了,硬件上的确是这样。不过我们软件上还是可以实现让一个数码管和一盏LED小灯同时点亮的,大家还记得我们之前举过一个这样的例子吗?#include<reg52.h>sbitLED2=P0^0;sbitADDR2 数码管 2022年03月10日 221 点赞 0 评论 132315 浏览
串口printf系列函数 1.printf系列的函数实现懂得了单片机通过串口传输数据给电脑端窗口查看,那么,有时我们需要发送字符串,有时需要发送一个变量的数值是多少,以及还要发送回车换行这三种情况。所以我们把这三个功能函数封装起来,方便后续的串口使用。首先笔者写的“voidprintf_str(u8*str)”函数就是专门用来 串口通信 2022年04月30日 136 点赞 0 评论 117460 浏览
新按键程序 1.支持连按的书写对上一讲的知识我们再补充一下支持连按的代码以此加深理解。实验现象就是按着按键不放,那么“key=1;”出现的频率就会比不支持连按代码的时候多,所以就会有左右不断流水的现象,按键的功能代码大家自己去分析了。#include<reg52.h>#include<function.h>#de 多文件编程 2022年03月10日 168 点赞 0 评论 98806 浏览
温度传感器代码解析Ⅱ 1.小于0度的转换我们知道当测量的实际温度为0度以下时,temp没转换时的情况为下图所示我们已经知道高5位为1表示的是负数,那么-0.5度的时候为什么是1111111111111000。负数的计算涉及到补码的知识。首先0xFFF8,除去高5位那就是11111111000反码为00000000111而补 红外遥控与温度传感器 2022年05月24日 189 点赞 0 评论 124417 浏览
流水灯的优化解说 1.题目为了更好地体现上一讲优化好的不支持连按代码的优势,我们来一道题目:用上7盏灯,左边6盏不停地流水,最右边1盏实现按键切换灯的打开和关闭,且按键动作不能干扰到流水灯的流速状态。实验现象状态模拟如下11111011//按键没按下11110111//按键没按下11101110//按键按下后抬起110 独立按键 2022年04月05日 96 点赞 0 评论 111375 浏览
定时器工作模式2 1.工作模式2的使用这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。我们想实现间隔51ms的流水灯实验该怎么做, 定时器 2022年01月11日 241 点赞 0 评论 127680 浏览