震撼!!!超强教程!!! 打造自己的专属鼠标——鼠标DIY教程(四)

标签:
单片机鼠标diy编程器it |
分类: 鼠标DIY教程 |
本套教程作者为外设天下论坛
声明:文章是版权所有,未经许可,请不要转载。
之前3期,简单讲解了单片机的程序编写以及如何使用ADNS-3080,
这期我们来规划一下,怎么把18f14k50和ADNS-3080凑在一起。
五、合体!18f14k50与ADNS-3080
http://pldzgq.blu.livefilestore.com/y1p8hRaLKezgLC_ZzXDOcXG5-GEOh0FCLP9GRwWOS8rSxbP91o8sKecVP4OaYz6f_9YnR7ShRSjDjwaK3IRzvSTyjycSGYDLWYZ/T41.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(四)" />
上图忽略了它们各自的工作电路,只指示出它们应该通过哪些脚连在一起。其中:连接A3080 2、3、4脚的18f4k50的脚是固定的,因为只有这几个脚是SPI的功能端口,其余的可以灵活处理。
http://public.blu.livefilestore.com/y1plRX2035YEI_VC7I65_EcwP-r5Wrw3FDoHbbMMTfmG0AtcPLtFSoNZQ3sRL-7nE23ErXCAHvhd-cY-IV9gTcb8A/T42.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(四)" />
单片机的按键输入是有一些要注意的地方的,我们不能直接就把一个开关一端连到单片机的输入脚,一端接地,这样是不能正常工作的。开关的打开和闭合必须要有一个明确的高或者低电压,如下图:
http://public.blu.livefilestore.com/y1pQ8EL6cMd-qHjjeFpWQbP4h4KbZIo_qlCljJetxsfS4nGihb-98OYF91nzzXafJZ1GVUvMlAOjH7UzQomChQWzQ/T44.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(四)" />
接下来,我们先来做一个人机互动的例子。
#include <18F14k50.h>
#fuses
HS,NOFCMEN,NOBROWNOUT,NOWDT,BORV30,NOPUT,NOCPD,STVREN,
NOXINST,NOWRT,NOWRTD,NOWRTC,WDT32768,NOIESO,NOEBTR,NOEBTRB,
NOMCLR,NOPROTECT,NOCPB,NOWRTB,CPUDIV1,USBDIV1,PLLEN,NOHFOFST,
NOLVP
#use
delay(clock=48000000)
#use
rtos(timer=0,minor_cycle=10ms)
#task(rate=20ms,
max=10ms)
void LED();
void LED()
{
if(input(PIN_C1)==0){
if(input(PIN_C1)==1){
}
void main(void)
{
rtos_run();
}
编译出Hex文件,并在Proteus的单片机中载入。
Proteus中作如下修改,开关名字为switch
可以在元件库中搜索到,电源可以在右边工具条中的激励源中找到,放置好后双击那个符号,把电压设为5v
http://public.blu.livefilestore.com/y1pg3dxluuRGJwtgTicONYujy_7HTLd6eD6yOM4PoOklWTJ24Lfq1eT1JqBewd_chMjSsGcDopADPV8f8aIVx9-fg/T46.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(四)" />
按下图连接,
http://public.blu.livefilestore.com/y1pg3dxluuRGJxD2Z6rW2BFSZMjKpOpdXgzAADcLYM4i--3BH6JfWzexow8N-JGH6s-Zj1SR_jtxRdszh8MG3hG-A/T45.jpg?psid=1打造自己的专属鼠标——鼠标DIY教程(四)" />
开始仿真运行,每当点那个开关按下去的时候(仿真的时候可以互动),灯就会亮起!
这里的程序由于是仿真的,没有加入按键的去抖动。(debouncing ,google这个关键词会有很多相关的知识,时间所限,我先不扯远)