可以做淘宝推广的网站吗,个人网站模板html免费,asp做素材网站,池州建设机械网站昨天刚在W10上安装CH340驱动#xff0c;又下载到板子上LCD1602定时器时钟程序#xff0c;为了调试#xff0c;调用了一个LED观察控制蜂鸣器按秒响的变量#xff0c;几经调试才发觉该开发板用的是有源蜂鸣器#xff0c;不用IO取反操作#xff0c;直接控制IO的高低电平即可…昨天刚在W10上安装CH340驱动又下载到板子上LCD1602定时器时钟程序为了调试调用了一个LED观察控制蜂鸣器按秒响的变量几经调试才发觉该开发板用的是有源蜂鸣器不用IO取反操作直接控制IO的高低电平即可之前论述了用51单片机定时器做时钟不准产生的原因是由于采用了阻塞式延时引起的其实使用定时器做时钟比时钟芯片精度高一个数量级今经下载到板子上通过一天的观察的确走时很准确同电脑上时钟做对比不过应注意的是电脑时钟开自动同步功能会产生几十秒的误差但是从早上到晚上十几个小时每小时核对都是准确的电脑自动同步造成的差异不算。
开发板上程序调试完成后遂产生编写占空比按秒渐亮与渐暗的念头因为论坛上有提问不少遂编写了如下呼吸灯程序按秒渐亮按秒渐灭对这段呼吸灯程序每句都加以详细论述一应国庆发文二为初学铺路请看程序
void fanbo()
{//占空比按秒渐亮与渐灭static unsigned char t0;static bit k1;ledk?(Jst?0:1):(Jst?0:1);if(t50)t0;if(Js0)k!k;
}
占空比之前有篇博文也写比较详细今天再次详细论述作为前篇补充。实现占空比要素一是频率范围即多少时间内占空比从0到100或从100到0这里由于定时器已经开启并设定了20毫秒因此1秒的范围就是50即定时器计数50次为1秒这样就确定了第一个参数二要素是生成占空比的变量对比如当比值大于或小于时是1还是0的比例多少就是占空比比如当两个变量进行对比当一个变量小于另一个变量时值为0否则为1这样就能实现占空比的调节这样讲好似很空洞的样子没关系我们把值代入代码进行分析就很具体了如上程序种的Js和t两个变量就是用来对比并实现占空比输出的设当Js0且t0时三目运算符输出1赋值给LED20毫秒时间内当t变化1到50时都不会小与Js因此一直输出1要说明的是fanbo()函数调用是在主函数主循环内由于主函数主循环运行时间是微秒级别的因此t的自增比Js的20毫秒要快一个数量级因此当t从0到50是不停变化的在t无数个变化周期内占空比都是一样的只有当Js发生变化时占空比才发生变化当Js从0到50变化过程种占空比就实现了100到0的对比变化当Js50时则t都小于Js从而实现了一直输出0的占空比分析到这里或许有人要问那相同的占空比不是有很多个的确如此相同的占空比脉冲确实有很多个如占空比为7的有很多个且频率很高送给LED然由于其占空比不变因此LED亮度也不变从而实现了对LED亮度的占空比调节看起来就是渐亮和渐暗的表现当然本荔枝对占空比脉冲的频率是不加控制的其频率会随着程序不同而不同如主循环内程序占用时间多则调用函数的时间就长频率就低请注意当调用函数的频率低于20毫秒时按理推导是会发生问题的。由于5M大小的限制只能录制4秒左右的呼吸灯运行也就看个大概实物运行效果。 上面程序声明了静态变量两个t是实现占空比的对比变量k是切换渐亮与渐暗的布尔变量按秒转换不同三目运算式来实现这里必须使用静态变量勿谓言之不予。Js是定时器公共计数变量在我博客中常见中断设置与中断计数简练代码中我的定时器中断代码不多写多余的代码就是Js计数和定时器赋值只有这样才能保证计数准确用于时钟。博文仓促间仅凭思路一挥而就是有描述不到之处讨论不妨或可在讨论中不断完善。