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

网站开发 pdf 文字版推广营销大的公司

网站开发 pdf 文字版,推广营销大的公司,银川建网站那家好,php装修公司网站源码从这篇文章开始,我们不再只研究单一的外设工作,而是将LED、数码管、开关、按键搭配在一起研究,这篇文章主要介绍LED和开关能擦出怎样的火花,同时也介绍一些函数封装的知识。 由于开关有闭合与打开两种状态,LED有左移流…

从这篇文章开始,我们不再只研究单一的外设工作,而是将LED、数码管、开关、按键搭配在一起研究,这篇文章主要介绍LED和开关能擦出怎样的火花,同时也介绍一些函数封装的知识。

由于开关有闭合与打开两种状态,LED有左移流水灯、右移流水灯、全部闪烁、高低位点亮、奇偶位点亮和内外位点亮等状态,它们之间两两组合的情况十分复杂,所以我们首先要介绍一下函数封装的思想以简化代码。

函数封装是将一段代码逻辑封装在一个函数中,以便在需要时可以重复使用。封装函数有以下几个优点:

  1. 提高代码的复用性:将一段常用的代码逻辑封装成函数后,可以在不同的地方进行调用,提高代码的复用性。

  2. 简化代码结构:将一段复杂的代码逻辑封装成函数后,可以通过函数名来调用该逻辑,使代码结构更加清晰简洁。

  3. 提高代码的可维护性:将代码逻辑封装到函数中,可以方便地对该逻辑进行修改和维护,不影响其他部分的代码。

函数封装的基本步骤如下:

  1. 定义函数名:选择一个合适的函数名,一般采用动词开头的命名方式,表示该函数所完成的操作。

  2. 定义函数参数:根据函数的需求,定义合适的参数列表,可以有多个参数,也可以没有参数。

  3. 编写函数体:在函数体中编写具体的代码逻辑,实现函数的功能。

  4. 返回结果:如果函数需要返回结果,使用 return 语句返回结果。

//头文件
#include <reg52.h>
#include<intrins.h>
//宏定义
#define  uchar unsigned char
//变量定义
sbit SW=P3^0;          
uchar temp;
//函数定义 
void  Delay()            
{uchar i, j;for (i=0;i<255;i++)for (j=0;j<255;j++);
}
void leftmove() //执行流水灯左移操作
{P1 = temp;temp = _crol_(temp,1);Delay();Delay();Delay();
}
void rightmove() //执行流水灯右移操作
{P1 = temp;temp = _cror_(temp,1);Delay();Delay();Delay();
}void shine()   //执行LED闪烁
{temp = 0;P1 = temp;Delay();Delay();Delay();temp = 0xff;P1 = temp;Delay();Delay();Delay();
}
void highorlow()   //执行高低位切换
{temp = 0x0f;P1 = temp;Delay();Delay();Delay();temp = 0xf0;P1 = temp;Delay();Delay();Delay();
}
void oddoreven()   //执行奇偶位切换
{temp = 0x55;P1 = temp;Delay();Delay();Delay();temp = 0xaa;P1 = temp;Delay();Delay();Delay();
}
void inorout()   //执行内外位切换
{temp = 0x3c;P1 = temp;Delay();Delay();Delay();temp = 0xc3;P1 = temp;Delay();Delay();Delay();
}
void main()
{P1 = 0xff;		 //上电全灭temp = 0xfe;	 //共阳极接法//temp  = 0x01;	 //采用取反操作,初值比较好设置while(1){//P1 = ~temp;{//按键判断if(SW==1){leftmove(); //需要执行什么操作封装成函数即可//shine();//oddoreven();}else{rightmove();//highorlow();//inorout();}}			}
} 

需要注意左右移动流水灯的初值在while(1)循环外,其他模式的初值都在相应的封装函数中。这是因为流水灯的temp值无法直接指定,而是在每次判断SW数值时,由库函数赋予。大家在编写代码时要注意这点。

电路如图所示,和之前的流水灯电路相比在右侧多加了一个控制开关:

 

开关控制LED点亮模式

另外笔者在学习过程中,觉得老师发的这一段代码很有意思,是一个能够自动调整的奇偶位流水灯,在函数封装里用一行顺序流水灯代码调整了奇偶位置,发出来和大家一起学习。

#include<reg52.h>
#include<intrins.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit sw=P3^0;
uint fl=0;
uchar tmp;
void delay(ui t)
{ui i,j;for(i=0;i<t;i++){for(j=0;j<225*225;j++){}}
}
void get_lf()
{if(tmp==0x80)tmp=0x01;else tmp=tmp<<1;delay(3);
}
void get_rt()
{if(tmp==0x01)tmp=0x80;else tmp=tmp>>1;delay(3);
}
void odd()
{if(fl==1)get_rt();if(tmp==0x40)tmp=0x01;else tmp=tmp<<2;delay(3);
}
void eve()
{if(fl==0)get_rt();if(tmp==0x80)tmp=0x02;else tmp=tmp<<2;delay(3);
}
void main()
{P1=0xff; tmp=0x01;while(1){P1=~tmp;if(sw==1){	odd();fl=0;}else {eve();fl=1;}}
}

开关控制LED点亮的内容就介绍到这里,谢谢大家。

http://www.yidumall.com/news/106184.html

相关文章:

  • 网站型跟商城型整合营销的案例
  • 雄安移动网络电视京东seo搜索优化
  • 教师做课题可以参考什么网站各大搜索引擎提交入口
  • 便宜的做网站知识付费网站搭建
  • 云南网站推广深圳龙岗区疫情最新消息
  • 静态网站用什么做app拉新推广项目
  • 网站建设服务器和空间费chatgpt网站
  • 文登市住房和城乡建设局网站清博舆情系统
  • 网站公司谁家好常州免费网站建站模板
  • 小程序源码怎么用百度seo最成功的优化
  • 中国建设银行纪念币预约网站下载百度app最新版并安装
  • 电商网站建设课设广西seo经理
  • 网站建设代理怎么做网络优化软件
  • 犀牛云做网站怎么做企业网站怎么推广
  • 赤峰seo百度seo培训
  • 温江做网站公司长沙网络公司最新消息
  • 做网站郑州汉狮怎样制作网页新手自学入门
  • 南充网站建设服务商网络营销运营策划
  • 知科网站百度seo优化培训
  • 哪些做网站的公司比较好成都seo招聘
  • 单片机培训整站快速排名优化
  • 适合做手机主页的网站排名优化关键词公司
  • 30岁学设计师晚不晚windows10优化大师
  • 网站和系统的区别市场推广怎么写
  • 石家庄网站建设今天改网名广告联盟平台排名
  • 联通营业厅做网站维护上海外贸网站seo
  • 哪个网站免费建站最好软文的目的是什么
  • 做外汇新闻网站排名公式
  • ppt做视频模板下载网站有哪些百度地图官网2022最新版下载
  • 重庆网站建设首选卓光南宁seo怎么做优化团队