单片机

模块初始化

1.硬件的初始化学单片机需要往前走,所以我们必须提前熟悉单片机嵌入式的代码书写风格。还记得我们要点亮小灯需要的条件吗首先:sbitLED2=P0^0;sbitADDR2=P1^2;sbitADDR1=P1^1;sbitADDR0=P1^0;sbitENLED=P1^4;sbitADDR3=P1^3;然

IIC&EEPROM合成文件

1.浅释E2Write函数宋老师的例程lesson14_3和lesson14_4里的“E2Write(unsignedchar*buf,unsignedcharaddr,unsignedcharlen)”书写内容是不一样的,lesson14_4的E2Write函数比lesson14_3的E2Write

静态变量

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

中断的实验现象

1.卡顿的流水灯我们用一个实验现象来再一次理解中断函数。在主函数里我们使八盏灯不停地左右快速流水,此时若是被外部因素触发了中断函数的执行,我们就在中断函数里实现蜂鸣器响一下,看看此时主函数里的流水灯是什么现象。代码下载进去,我们随意按K4,观察流水灯。

呼吸灯

1.双定时器呼吸灯实现呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到99的循环自加,这样周期就是10ms。

串口&液晶屏Ⅲ

1.题目要求这次我们使用串口来实现液晶屏功能函数的执行,也就是说我们电脑端发送字符串“LcdFullClear();”给单片机,单片机就让液晶屏执行整屏清除;电脑端发送“LcdShowStr(1,0,"GoodGoodStudy");”给单片机,液晶屏就在第一行显示“GoodGoodStudy”。

按键&蜂鸣器&数码管

在上一讲的代码中我们可以不用写“sbitGND=P2^3;”,像宋老师那样直接在开头“P2=0xF7;”仅让P2.3输出0其他输出1即可,这样P2.7就有被拉低的条件了。1.趁热打铁沿袭上一讲的功能,我们新学的按键知识需要结合所学过的无源蜂鸣器硬件一起捣鼓玩玩。

微调定时精确时间

1.定时器&蜂鸣器一般定时器中断函数里的内容最好是能够快速地去执行完,比如只执行几条简单的语句,这样与主函数配合才会使程序更加高效。前期教学里,我们只使用定时器中断负责某个IO引脚间隔跳变或者使一个变量间隔自加1的简单语句。比如我们现在要实现间隔50ms左右的时间让流水灯左右循环移动的同时,

简洁式串口通信

1.串口配置函数上一讲的讲解是让大家对《手把手教你学51单片机》文档的第十一章的第一个例程的辅助理解,我们没有写单片机接收电脑端发送回来的数据字节做处理的代码。因为这些都是IO端口模拟的串口通信,由于51单片机本身集成有串口模块,所以我们使用其硬件资源即可,

同时显示不同的数字

在上一讲的代码中几个数码管只能同时显示相同的数字和字母,这一讲我们实现同时3个数码管点亮但每个数码管显示的数字都不一样,所以我们做一个用来显示一个变量一秒后自加1的显示效果。例如,此时时间过去了162秒1.取余先定义一个8位的变量Second,