当前位置: 首页 > news >正文

在线做网页的网站seo快速排名培训

在线做网页的网站,seo快速排名培训,进行网站建设视频,网站管理的内容包括自定义延时函数Delay 分别用Delay.c文件存储Delay函数。用Delay.h声明Delay函数。每次将这两个文件复制到工程中,直接使用。 //Delay.c void Delay(unsigned int xms) //11.0592MHz {while(xms--){unsigned char i, j;i 2;j 199;do{while (--j);}…

自定义延时函数Delay

分别用Delay.c文件存储Delay函数。用Delay.h声明Delay函数。每次将这两个文件复制到工程中,直接使用。

 
//Delay.c
void Delay(unsigned int xms)                //@11.0592MHz
{while(xms--){unsigned char i, j;i = 2;j = 199;do{while (--j);} while (--i);}}
 
//Delay.h
void Delay(unsigned int xms);                //@11.0592MHz

独立按键控制LED灯亮灭

GND表示是低电平,P31对应K1按键,P30对应K2按键,P32对应K3按键,P33对应K4按键。

K1按键按下去,表示P31为低电平,也就是P31=0。K1按键被弹起,P31为高电平,也就是P31=1。其他的按键以此类推。

 
#include <REGX52.H>
void main(){while(1){if(P3_1==0){P2_0=0;}else{P2_0=1;}} 
}

独立按键控制LED亮灭

独立按键控制LED灯状态

独立按键控制LED灯亮灭实验中,每当我们按下K1按键,灯亮起,如果K1被弹起,灯不亮。我们是否可以控制每当按键按下、抬起一整个阶段结束,灯才完成一次变化,亮到灭或者灭到亮?

独立按键控制LED灯的状态,每当我们按下抬起整个阶段完成,灯发生一次变化,亮到灭或者灭到亮。

 
#include <REGX52.H>
#include "Delay.h"
void main(){while(1){if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);P2_0=~P2_0;}}}

代码中添加Delay(20)是为了对应按键抖动。

所以我们延时20毫秒,此时按键一定处于稳定的状态。因为前后抖动加起来的时间不超过20毫秒。

所以延时20毫秒后,按键的状态可以是按下或者抬起。此时都是处于稳定的状态。

如果此时按键一直处于按下的状态,也就是P3_1=0,一直让程序空跑,直到按键被抬起,才使灯发生改变。

因为我们要使某个LED灯状态改变,所以只需要对对应二进制数进行取反即可。

独立按键控制LED灯状态

独立按键控制LED灯显示二进制

独立按键控制LED灯呈现二进制数显示。我们模拟二进制数的计算过程即可,每次进行++操作。比如说十进制的5,对应的二进制数是101,我需要让显示1的亮,显示0的不亮,所以我们还需要对二进制数进行取反。

检测范围,八个灯,全部亮是1111 1111对应的十进制数是2^8-1=255。而unsigned char的范围就是0~255。因此我们可以用unsigned char 作为二进制数的模拟数据类型。

模拟按键是完成一整个操作,状态发生一次改变。

 
#include <REGX52.H>
#include "Delay.h"void main(){unsigned char LEDNum=0;while(1){if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);LEDNum++;P2=~LEDNum;}}}

独立按键控制LED二进制显示

独立按键控制LED灯移位

独立按键控制LED灯移位,K1按键控制LED灯左移,K2按键控制LED灯右移。

 
#include <REGX52.H>
#include "Delay.h"void main(){unsigned char LEDNum=0;P2=~0x01;while(1){if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);if(LEDNum==0){LEDNum=7;}else{LEDNum--;}P2=~(0x01<<LEDNum);}if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);LEDNum++;if(LEDNum>=8){LEDNum=0;}P2=~(0x01<<LEDNum);}        }}

这段代码是用来控制一个8位LED灯的亮灭和切换的程序,编写在51单片机上,利用了外部的两个按钮来控制LED灯的左右移动。

#include <REGX52.H>这一行代码是包含一个特定的头文件REGX52.H,这个文件中定义了使用51单片机系列中某个型号(如REGX52)时需要的一些特定功能和寄存器的地址。这是为了方便编程而直接使用单片机中的资源。

#include "Delay.h"这里包含了一个叫Delay.h的头文件,这个文件应该定义了一些延时函数,用于在程序中创建延迟。延迟在这种硬件控制程序中非常常见,用来等待硬件响应或者创建定时任务。

unsigned char LEDNum=0;定义了一个无符号字符变量LEDNum,并初始化为0。这个变量用来记录当前点亮的LED灯的编号(0-7)。

P2=~0x01;这行代码是将P2端口的值设置为~0x01(即11111110),使得第一个LED灯亮起。这里用到了位操作,~是位取反操作符,0x01是二进制的00000001,取反后变为11111110。

while(1){这是一个无限循环,意味着下面的代码会不断重复执行。

if(P3_1==0){这行代码检查P3端口的第二个引脚(P3_1)的状态是否为0(即是否被按下)。

Delay(20);调用Delay函数进行20ms的延时,用于消抖。消抖是因为当按键按下时,会有一个短暂的不稳定期,这时按键的电平可能会不断跳变。

while(P3_1==0);这是一个空的循环体,如果P3_1仍然为0,则一直在这里等待,直到按钮被释放。

Delay(20);再次调用Delay函数进行20ms的延时,进一步确保消抖完成,避免误操作。

if(LEDNum==0){ LEDNum=7; }else{ LEDNum--; }这部分逻辑是用于当P3_1被按下时,如果当前点亮的是第一个LED(LEDNum为0),则将LEDNum设置为7,即跳转到最后一个LED。否则,LEDNum减1,即向左移动一个LED。

P2=~(0x01<<LEDNum);这行代码是将P2端口的值设置为~(0x01<<LEDNum),通过左移操作和取反操作,来控制对应编号的LED灯亮起。

剩余的部分代码是处理另一个按钮(P3_0)的按下事件,逻辑与处理P3_1的按下类似,只是它是用于控制LED灯向右移动。

独立按键控制LED灯移位

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。

同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。

谢谢您的支持,期待与您在下一篇文章中再次相遇!

http://www.dt0577.cn/news/55003.html

相关文章:

  • 常用的做网站的工具都有哪些软文怎么写
  • 网站建设社区北京seo优化诊断
  • 德州极速网站建设百家号app投放推广
  • wordpress做单页销售网站品牌营销策略
  • 深圳购物网站网络推广销售是做什么的
  • 酷站如何自创网站
  • 个旧市做网站公司沈阳网站关键字优化
  • 网站 建设 计划网站推广优化平台
  • 网站建设阐述网站如何快速被百度收录
  • 做网站必要性济南最新消息今天
  • 网站开发自学还是培训线上运营的5个步骤
  • 成都flash互动网站开发公司网络推广方案
  • 打电话拉客户用网站做广告怎么做 好做吗河南自助建站seo公司
  • 做标签网站是什么什么平台可以免费推广产品
  • 做净化行业需要知道的网站网络推广服务
  • 丹阳新闻网优化推广网站排名
  • 做情人在那个网站北京网站优化步骤
  • 网站官网认证怎么做重庆百度seo排名优化软件
  • 杭州做网站的公司哪家好seo兼职外包
  • 柯桥教育网站建设淘宝推广公司
  • 南京百度网站建设北京网站优化seo
  • apache网站日志保定百度seo排名
  • 广东网站建设开发搜索引擎调词软件
  • 免费网站建设能做吗免费个人网站源码
  • 网站建设手机端推广免费
  • wordpress模板dux主题网站优化分析
  • php网站建设实训引言2345浏览器导航页
  • 固原门户网站建设seo岗位培训
  • 中国新闻发布西安seo优化公司
  • asp婚纱摄影网站源码合肥百度seo排名