打造自己的专属鼠标——鼠标DIY教程(二)
作者:论坛管理员|发布时间:2014-12-02 12:01:00
[摘要]本期依然会带着大家搞搞代码,重要的不是说看懂,看懂是什么概念?就是要知道每个函数的作用等等,但是对于我们刚刚学习或者转移到另一个语言上的人来说,明显这是做不到的,我们一开始要的是理解。举个例子来说,
本期依然会带着大家搞搞代码,重要的不是说看懂,看懂是什么概念?就是要知道每个函数的作用等等,但是对于我们刚刚学习或者转移到另一个语言上的人来说,明显这是做不到的,我们一开始要的是理解。举个例子来说,我没学过普通话,那我在一个纯普通话的环境怎么生存?长篇大论听不懂的一概忽略,照抄。然后尝试问“你好、吃饭、再见...”怎么说,有了只字片语,慢慢我们就可以组织句子了。
总结一下上期,抛开硬件方面的准备,我们首先是要知道怎么写18f14k50的简单固件,首先我们要下载CCS 编译器和Proteus这两个软件,然后熟悉一下操作,复制一下我的例子让LED亮起来。
上一次我们做了一个最最简单的点亮Led的例子, 现在我先来解释一下那短短的几行代码的作用。 带#号的#xxxx 在C语言中是预编译命令
#include <18F14k50.h> // ---------包含18f14k50的头文件,相当于“驱动”
#fuses HS,NOFCMEN,NOBROWNOUT,NOWDT,BORV30,NOPUT,NOCPD,STVREN,
NOXINST,NOWRT,NOWRTD,NOWRTC,WDT32768,NOIESO,NOEBTR,NOEBTRB,NO MCLR,NOPROTECT,NOCPB,NOWRTB,CPUDIV1,USBDIV1,PLLEN,NOHFOFST,NOLVP
//------------------#fuses 即设置所谓单片机的熔丝位,我们化繁为简,它意思就是设置单片机运行的参数,具体参数作用可以参考18f14k50的PDF。
#use delay(clock=48000000) //------------------告诉编译器, 18f14k50将跑在48mhz下
//以上3行是18f14k50的最简启动参数,
void main(void) //主函数------------------单片机启动之后,第一件事就是跳到这个函数的入口,一切都从主函数开始。
{
output_high(PIN_C0); // 正如字面,将PIN_C0设置为输出,并且设置高电平。
} //------------------------------------括号表明了函数的范围, 一定要注意配对,因为while,if,for都可以用{}来声明作用范围。
2、循环, 一切都要循环
上面这个例子,整个主程序就是点亮了RC0的led, 之后, 单片机就会因为没事可做进入预定的待机状态。打个比方,比如设计了一个报时间的程序,第一次你问:“现在几点。”
单片机很快给出答案,但是当你第二次问的时候,单片机沉默了。因为那个模式只执行了一次。所以,我们要把程序循环起来。把我们上次写的主函数按下面的例子来改一下。
void main(void)
{
while(1) // 具体请google while()的用法,这里是无限循环的意思
{
output_high(PIN_C0); // 输出高
delay_ms(1000); //延迟1000毫秒=1秒
output_low(PIN_C0); // 输出低
delay_ms(1000); // 延迟1秒,那么就是以2秒为周期亮灭循环
}
}
再按上一期的步骤编译一下,再在Proteus中运行仿真,怎么样,Led一闪一闪的了吧。
[责任编辑:'']