欢迎访问高价收购微信号_长期高价回收微信号

24小时在线收购微信

泪目!24小时在线回收微秒结怎么找?(2021高价回收vx号)

频道:24小时在线收购微信 日期: 浏览:18

前文再续,书接上一回,LED的点亮,把P2.0管脚清0就可以,那么把LED熄灭,也就是把P2.0管脚置1,LED1两边电压都是5V,自然没有电流流过,LED1不亮

泪目!24小时在线回收微秒结怎么找?

软件程序把P2.0置1,即P20=1。当然,作为一个有追求的程序员,程序应该是这样的

泪目!24小时在线回收微秒结怎么找?

那么问题来了,LED亮和灭都学会了,要让LED一亮一灭,程序怎么编呢?So easy,看下面看下面(肚子突然有点饿)

泪目!24小时在线回收微秒结怎么找?

先点亮再熄灭,while(1)负责无限循环,确保一闪一闪亮晶晶,没毛病!下载程序运行。然而。。。十分钟过去了,一小时过去了。。。为什么LED灯一直亮,没有闪烁呢?难道程序错了吗?错是不可能错的,这么简单是不可能错的。

LED灯确实是在闪烁,只不过是以微秒级的时间单位在闪烁,1秒=1000000微秒,理所当然的,肉眼看不出来灯在闪烁,但是细心观察就会发现LED灯比P20=0时暗了一半,因为亮和暗的时间各占一半,也就是说有一半时间是熄灭的,亮度当然少了一半。

看到这个,大家有没有什么想法呢?假如我们把时间分成16,一份亮,十五份灭,亮度是不是就是1/16了呢!如图所示

泪目!24小时在线回收微秒结怎么找?

如果LED灯是白光的,这不就是有了16个等级的亮度,也就是16级灰度,如果分成256级,那就有了256个灰度,如果把800X600个LED灯组成一个显示屏,这不就是一个256灰度的黑白显示屏了吗!再把白色的LED灯替换成三色(RGB颜色)的LED灯,每个颜色分成256亮度等级,又变成了256色的彩色LED显示屏,再继续细分变成24位真彩色,哇塞,发达了,原来彩色显示屏这么简单,赶紧开工厂,发大财,迎娶白富美,从此人生走向巅峰!啪。。。快醒醒,把口水擦一下!

骚年,属于你的白富美(高富帅?)还在上幼儿园,咱先别着急,先把单片机学好。你看,16个等级的亮度就用了16行程序,那要是256级是不是就要256行啊!这程序还能读吗?有没有简单点的方法!这就涉及到延时程序了。比如我要求LED半秒钟亮,半秒钟灭,那么程序就应该是这样的:

LED1=LED_Liang;

延时500毫秒;

LED1=LED_Mie;

延时500毫秒;

假如我不想延时500毫秒了,我要延时100毫秒,或者50毫秒。。。(程序猿有时也是很善变的),怎么办呢?

LED1=LED_Liang;

延时1毫秒(x); //x表示需要延时的豪

//秒数

LED1=LED_Mie;

延时1毫秒(x);

这样就能够快速的延时你所需要的时间了。这个“延时1毫秒(x)”程序怎么写呢?这时候STC的STC-ISP软件闪亮登场!是时候解锁STC-ISP的第一个隐藏姿势了[泪奔]

泪目!24小时在线回收微秒结怎么找?

STC-ISP下载请看第三章,打开软件后,选择软件延时计算器,选择系统频率,用12M晶振的选择12,6M晶振的选择6,定时时长输入1,单位选择毫秒,8051指令选择STC-Y1,STC89系列的选这个,好了,看下面编辑框是不是生成了延时1毫秒的程序呢!如果选择1微秒,程序变成这样

泪目!24小时在线回收微秒结怎么找?

那么,下面我们就可以编写属于自己的延时程序了。首先先新建一个文件,把这两个函数复制进去

泪目!24小时在线回收微秒结怎么找?

然后保存到“源文件”文件夹下,文件名称输入“delay.c”

泪目!24小时在线回收微秒结怎么找?

这是延时1毫秒和1微秒的,如何实现输入时间呢?这就要用到带参数传递的函数了,把Delay1ms()改成Delay_ms(unsigned int ms),函数体里面加一个对ms参数的自减操作,微秒的也同样操作

泪目!24小时在线回收微秒结怎么找?

ms参数每减1,延时1毫秒,直到ms为0时,函数返回,ms用无符号整型,可以输入从0到65535的数字,也就是延时从0~65535毫秒,为什么用无符号数,因为延时输入负数没有意义,虽然定义int型也不会报错,但是延时负100毫秒有意义吗?延时微秒的函数也是同样操作。这里要注意的是“--”符号的位置,在参数前表示先减1,再判断条件,在参数后面,表示先判断条件,再减1,所以只需要记住在前先减1,再后后减1就够用了,“++”也是一样的,这个规则解决不了的语句通通不用,我们不需要写那些高深莫测的语句。调用时填入所需要的整数即可,比如想要延时10毫秒Delay_ms(10)。

好了,delay.c文件写好后添加到工程里,然后就可以编译了。[恐惧],卖糕的!竟然有错误!记住这个错误的句式,表示的是函数没有定义或者没有声明。记不住也没关系,初学者经常都会犯这个的错误,多错几次就能长点心了。

泪目!24小时在线回收微秒结怎么找?

这里是nop()函数没有定义,这个其实是一个空操作,延时最常用的一个操作,它在“intrings.h”头文件,在delay.c文件中包含该头文件即可

泪目!24小时在线回收微秒结怎么找?

编译,通过,好了可以在main函数中延时了

泪目!24小时在线回收微秒结怎么找?

泪目!24小时在线回收微秒结怎么找?

刚刚吃过一次亏,不能这么快就忘了,main函数可跟你delay_ms函数不熟,想要捞过界不要拜码头的吗?先回去写张拜贴过来吧!

OK!那就写吧!先新建一个文件,保存成delay.h文件名,同样保存在源文件文件夹下

泪目!24小时在线回收微秒结怎么找?

这里要注意的有三点,第一点,“#idndef。。。#define。。。#endif”这个是头文件的标准格式,以后每建一个头文件照抄这个格式就行了,简单点来说就是为了避免重复声明。第二,endif后面记得多打几个回车,否则会收到一张黄牌警告。第三,声明的函数记得加分号,通常这些声明函数都是从C原函数直接复制过来的,C文件里的原函数是没有分号的,复制过来容易忘记输分号,编译的时候,你会收到一堆错误。最后,插入“intrings.h”头文件是为了方便使用nop空操作函数,delay.c和delay.h作为常用文件可以复制到其他项目中使用,用到延时的地方通常也会用nop函数,使用前只需插入delay.h头文件就可以了。

好了,main.c文件插入delay.h头文件,编译通过,下载执行,可以看到LED1没秒钟亮灭闪烁一下。大功告成!

泪目!24小时在线回收微秒结怎么找?

不过编译的时候还是产生了一个警告,强迫症患者可能受不了,非要把它去掉,这个其实是delay.c文件里定义了两个函数,delay_ms和delay_us,delay_us没用到,所以编译器警告你不要占着茅坑不拉屎,强迫症患者可以注释掉没用到的函数。也可以不管它。

好了,延时函数有了,LED可以随便你喜欢怎么玩了,喜欢九浅一深还是九深一浅,随你喜欢了

泪目!24小时在线回收微秒结怎么找?

或者

泪目!24小时在线回收微秒结怎么找?

大家可以自设置看看实际运行效果。今天就先讲到这里了。

未完待续。。。