PHPWIND
HELLOCQ
UID:17497
/*********************** avr自动键* by bg4uvr* 2007.06.08**********************//*本来写这个程序是打算用在tiny13芯片上的。但实际在写的过程中,只在8515芯片上进行了调试和测试,因为实在懒得焊一个tiny板了。本设计的主导的思想在于尽量使电路的电源消耗低些,即使正常工作的状态下,电流消耗也在0.2ma以下(当然,这不包括你外接led和驱动光耦的电源消耗,如果只驱动三极管的基极,那这个数值还是和实际很接近的。)另外可以写好掉电功能,功耗将会更低。使用tiny13的原因还在于,电路结构可以相当的简单了。至少省去了外接eeprom、晶振、复位电路。实验中,8515使用了1m的内部rc振荡器。在使用tiny的时候,你可以使用1.2m,甚至128khz的内部振荡器。夸张一些,你可以把128k进行256分频,用500hz的晶振频率来玩。不过500hz的情况,目前只是个想法,未经实际验证。掉电后,电源消耗在0.2ua以下。如果使用了tiny13芯片,那么你通写掉电程序,就可以使用任何一个按键或者点划键来重新开机了,爽吧?由于没有使用tiny13芯片测试,所以现在的电源管理部分,可能完全不适合tiny13芯片。所以如果真的用在tiny13上,这部分需要大量的改写。另外由于tiny13芯片的程序存储容量只有1kb,所以程序在尽量保留功能的情况下,缩减的代码。功能上取消了驱动无源蜂鸣器的程序。自动呼叫程序虽然保留了,但自行设置呼号的功能,代码量实在太大,无法放进去,也取消了。同样的原因,因无蜂鸣器。所以设置wpm时,输出没有关闭。所以实际使用的时候,注意把发射机功率调到最小,再进行wpm设置。由于本人不会cw,所以对wpm的范围设多少合适,也拿不准,于是把它放在前面的宏定义中了。大家可以自己设置自己需要的范围和步进。cw码表的算法,是本人原创的。如果不幸正好和你的算法相同或相近,那属于英雄所见了,哈哈~ 这种码表的结构,尽量节省了代码空间。也正是因为使用了这样的码表结构,才使得不到800字节的自动键程序,可以具有自动呼叫的功能。本程序版权没有,您可以把其中的函数放在任何你想用的地方而不必取得我的同意。send_char和send_string是个很好的函数,我想它可以用在cw报温度、cw报电压、cw报驻波之类的应用上吧。本程序只起一个抛砖引玉的作用。哪位朋友如果参考此代码,做出更好的自动键控制器,是我所希望看见的。同时如果愿意,也希望能赠送我一块板 :dbg4uvr 2007.06.09
UID:1565
UID:18612
UID:20697
UID:13805
漏说的一个取消蜂鸣器的另一个重要原因,就是这样可以省出来一个io脚,留出reset脚,就不必非要高压编程器编程了(普通常见的便宜通用编程器,能高压编程这个芯片的,很少),isp即可——哪怕用74ls245自己做的也行~
UID:20166
UID:44040
UID:40190
UID:53834