定时器概念 1.生活的例子通过上一章大家已经有了对中断知识的了解,像外部中断这种需要物理动作才能触发中断函数执行,但很多情况下我们需要的是中断函数在适当时刻可以自动得去执行,所以就需要定时器来辅助了。定时器是单片机内部的一个硬件资源。用生活常见现象举例:定时器相当于一个闹钟, 定时器 2022年05月12日 252 点赞 0 评论 105544 浏览
进一步理解中断函数 1.另一个外部中断前面两讲都是围绕外部中断0(P3.2的功能)来讲解,这里我们也还有一个外部中断1(P3.3的功能)。P3.3要想实现上一讲的功能只需杜邦线接下面的IO端口即可代码就是把“EX0”改为“EX1”,“IT0”改为“IT1”。interrupt后面的0要改为2, 外部中断 2022年04月09日 148 点赞 0 评论 119573 浏览
支持连按与全局变量 1.支持连按的思路支持连按的代码就是在“不支持连按”代码的思路上把“if(KEY4==1)”改为“if(KEY4==0)”,这样的话按键不松手程序就能一直进入“if(KEY4==0)”的大括号里面。然后我们定义一个变量times,如果一直按着不放, 独立按键 2022年05月31日 117 点赞 0 评论 105500 浏览
无源蜂鸣器鸣叫 1.输出方波图解我们现在要给单片机IO端口输出4khz的方波。现在我们算出方波的周期:1/(4*1000)s=0.00025s=0.25ms高电平时间:(0.25/2)ms=0.125ms低电平时间:(0.25/2)ms=0.125ms2.驱动代码因为我们只写过最低延时1ms的函数, 蜂鸣器 2022年01月01日 156 点赞 0 评论 120260 浏览
数据类型强制转换 1.实用性改善为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。 定时器 2022年04月05日 56 点赞 0 评论 76688 浏览
IIC&EEPROM合成文件 1.浅释E2Write函数宋老师的例程lesson14_3和lesson14_4里的“E2Write(unsignedchar*buf,unsignedcharaddr,unsignedcharlen)”书写内容是不一样的,lesson14_4的E2Write函数比lesson14_3的E2Write IIC通信 2022年03月03日 188 点赞 0 评论 85521 浏览
按键&蜂鸣器&数码管 在上一讲的代码中我们可以不用写“sbitGND=P2^3;”,像宋老师那样直接在开头“P2=0xF7;”仅让P2.3输出0其他输出1即可,这样P2.7就有被拉低的条件了。1.趁热打铁沿袭上一讲的功能,我们新学的按键知识需要结合所学过的无源蜂鸣器硬件一起捣鼓玩玩。 独立按键 2022年05月30日 135 点赞 0 评论 88059 浏览
延时1秒 1.准确延时学会了上一讲的软件调试教学,我们现在用软件调试出延时很接近1毫秒的代码:for(j=115;j>0;j--);如果要延时1秒,那是不是循环1000次这条语句呢?for(i=0;i<1000;i++){for(j=115;j>0;j--);}可是这段代码在软件调试中发现循环1000次这个1毫 LED及入门 2022年03月10日 270 点赞 0 评论 123774 浏览
串口&液晶屏Ⅱ 1.题目要求在上一讲代码测试中,电脑端发送过来的数据单片机这边需要用数组存取起来,再把这些数据通过液晶屏显示出来,不过我们也可以把接收到的数据直接写进液晶屏的RAM中让它实时显示。比如在电脑端那边发送“DAN”(DAN后面有一个空格),液晶屏就从第一格开始显示“DAN”, 混合例程 2022年04月15日 152 点赞 0 评论 79404 浏览
带返回值的函数 1.返回值之前我们封装的函数都是void类型无返回值的函数。随着学习的深入,我们需要把C语言的精髓学到家。前面几讲在“function.c”中没有提及过按键的函数封装,大家也知道我们在第五章用到的按键功能函数都需要定义全局变量,这种过多的使用全局变量是编程的大忌。 多文件编程 2022年03月29日 54 点赞 0 评论 119064 浏览