刚看了下12F675这颗片子,1.75K的flash,还算可以。
有些小容量的片子确实需要汇编的,之前用义隆的8位机就用汇编,不过这玩意一般逻辑简单,任务不复杂的时候用用不错,但是标题上写的是“操作系统架构”我的天,打算用汇编来写操作系统??这工作量不亚于给你一座山让你盖起一座楼,山上有矿,有木头,有煤,能烧砖炼铁……理论上能盖出来吧?能,而且只有绝世高手才能做到,因为必须懂得化工、建筑、冶炼、电气等等,但是何苦呢?
退一步说,12F675那个1.75k的flash能装得下操作系统?哪怕51的tiny也得几k吧?要我说汇编就学学原理练习练习就可以了,写程序要不是空间真的很挤的话还是用C吧。
再说说你要做的这个东西,大概看了一下,说说我的看法,不喜勿喷
1、上电开机长亮档。输入3-9V电压3-9V,电源要处理好
2, 短按开关换档(极亮档100%(850LM)—高亮档50%(450LM)—中亮档20%(170LM)—低亮档5%(45LM)—节能档1%(8LM)),档位有**功能。开机时打开上次关机档位。这里描述的是档位切换的顺序吧?没看到关机功能?这灯会一直亮下去?另外这个亮度应该跟灯珠有关吧?还有,这个片子没有DA,是想用PWM控制么?LED驱动是需要恒流的,这属于模电的知识了。**功能倒是可以,因为看了下片内有EEPROM
4, 开机检测电池种类(可使用1*18650,2*16340,2*CR123电池),判断电池电量,根据不同电量分别执行A B C;根据电池来执行不同逻辑是好想法,测量电压也能实现,因为片子内有ADC,不过模拟电路要处理好。但是开机时能确定电池使处于满电状态?不然的话3V的16340和3V的CR123你如何区分?
5, 温度保护,开机极亮档1分钟后慢慢降到高亮档,高亮档2分钟后开始检测温度,当温度超过75度后再慢慢降档,降到40%亮度后停止降档,当温度低于60度时,亮度慢慢上升,升到50%后停止。重新换档恢复亮度,重新计算时间。温度测量怎么实现?要与电压测量共用一个ADC?时间如何分配要考虑考虑了
6, 低电后不再检测电量,只有低亮档和节能档。重新上电恢复电量检测。
7, 电池防反接功能。这个可以用整流桥吧?要效率的话MOS管?
好了,祝你成功吧 |