| 欢迎光临MCUWAY! 本站网名:单片机之路 永久域名:www.mcuway.com |
|
|
PIC系列单片机入门并不难(7) 本文由单片机之路(www.mcuway.com)推荐 这回再说一个程序转向的语句,goto指令,学过basic和c等语言的对它不陌生。 我们还是通过例子来说明goto的使用方法。 movlw 0F9H '常数进W 当程序自上而下运行到goto语句时,不再继续运行它底下的语句,而是让程序强行转向到标号为myWAVE的语句上,并继续运行.这样一来的结果,程序会永远在标号myWAVE的这一句 bsf GPIO,GP1到goto之间循环, 打转转.客观运行的结果是GP1管脚电平不停地一会儿高,一会儿低,就输出了方波信号. 要计算方波的频率,我们必须知道单片机每运行一条指令需要多少时间.这个时间的单位不以通常的秒、 毫秒或微秒作为单位,而是以”机器周期”为单位.以后凡是我们讨论单片机内部的时间问题都要以机器周期作为时间单位.至于一个机器周期究竟是多少微妙或毫秒,取决于单片机的品牌和振荡频率大小,等一会儿我们再用公式计算我们PIC12CE512在4MHz震荡频率下的机器周期是多少个微妙。 我们先看看程序中GP1脚的高电平、低电平都是用了多少个机器周期. PIC单片机所有指令都是单机器周期的指令,例外的情况是goto语句要用2个机器周期,还有一个call指令用的时间也不完全是一个机器周期(待后续),其他品牌的某些单片机可不是这样,一条指令往往要用几个周期…… 从bsf到bcf有8个指令,都是单周期指令,所以GP1高电平时间长度是8个机器周期;从bcf到bsf有7条指令,其中6条是单周期指令,1条双周期指令(goto).所以GP1低电平时间长度也是8个机器周期。这样,我们输出方波的周期长度就是16个机器周期. 本文由单片机之路(www.mcuway.com)整理推荐. Pic品牌的机器周期 = 4/振荡频率 (公式) 所以,在我们的例子当中,1个机器周期=4/4MHz= 1 uS 也就是说,我们的例子中,执行一条指令仅需要1微秒的时间. 这样,我们输出的方波周期就是16微秒, 频率是 f=1/16=0.0625兆赫=62.5KHz 如果这个方波的频率比较低,你再接一个扬声器到GP1脚上你就可以听到声音了,频率降低到几赫兹的时候,接一个led灯,就会不停的闪烁. 当然,频率太低你用的nop指令的数目会很多,程序虽简单但是臃肿,这没有关系,我们主要是在学习程序, 弄清楚道理是目的。要想使得程序不臃肿我们有的是办法,这就必须再学习新的指令. 如果此前讲的你基本都弄明白了,那你现在已经抓住单片机入门的门把手了,还需轻轻的推开. |
|
|
|
|
|
|
|
学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com |