很高兴论坛能经常举办一些活动,重在参与,本人也针对芯唐单片机做了小开发板来参赛,希望大家喜欢,本作品也得到了几个群好友的帮助,一并感谢!
使用芯唐单片机N79E815和廉价的无字库电话拆机12864液晶做的开发板,目前可以玩的就是万年历时钟+红外遥控带学习功能兼测码,测码分译码显示和波形显示两种界面。
显示方面,这种COG封装的12864液晶是全指令操作,对比度都可以指令操作,无需外置可调电阻来调整,所以我做了开机LOGO,两边向中间合拢,等待几秒,然后消慢慢熄灭。
时钟方面,采用了DS1302芯片,顺便利用1302的RAM存储了部分变量如液晶对比度,后备电池取下后数据会丢失,可调节年月日,农历和星期是自动换算显示的,带基本温度显示,所有字体都是修改过的,目的是为了留出行距,更美观,时钟采用大字符,带有一个闹钟功能,还想要什么自己加吧。
遥控方面,由于红外种类繁多,既要采集数据,还要译码和转换成波形,程序有点复杂。而且网上也没有可借鉴的万能解码程序,自己拿万能遥控器作为参考来写的程序,SAA3010暂时没写出译码方案,由于解码执行方式太多,所以并不是每一种遥控编码类型都能学习的,自己可以试试,学习到的码值会写入单片机单独划分出来的DATA FLASH,断电仍可记忆。
遥控波形显示方面,直接采集每个高低电平的时间,转换成图形宽度来显示,按128列来算,每列代表200us宽度,所以波形上有时候会误区分0.56ms为2列的,正常四舍五入显示为3列,不过并不影响对宽窄脉冲的识别,由于内存和显示屏的限制,最大只能显示100个脉冲(含高低),演示视频里出现的很短的波形是长按遥控接收到的是重复码,因为很多遥控器重复码并不是全码发送哦。
温度显示方面,没有采用昂贵的18B20,而是采用的廉价的NTC热敏电阻,经过单片机ADC采样查表获得温度值,受表大小的限制,只做了-9~69度的常温显示范围。要求高的请无视此功能。
按键方面,采用按键状态锁机制,没有使用延时消抖,每个界面下,各按键执行的功能都不同。全机使用3个按键,完成所有操作,遥控也只学习3个按键即可。
电气性能方面,V11版型22M内置时钟5V状态下开启背光10ma总电流,关闭背光3ma总电流,如果需要宽电压3V~5.5V,可将时钟改为11.0592,再把程序定时器参数改一下即可,缺点是由于12864扫描时间过长,时钟放慢以后会影响操作的灵敏度。
蜂鸣器采用的单片机内部PWM电路产生,音质纯美,如果用定时器做音频振荡器,音质不稳。