黄金会员
主题
帖子
积分5551
阅读权限40
注册时间2011-2-24
最后登录1970-1-1
在线时间 小时
|
首先申明,本人兴致与水平严重不对等,特别是ARM和C,以前热衷于C51扣汇编指令,近期因扩展玩域开始接触C和ARM,以下所记权当本人爬行路上的刻符,愿与小白共勉,高手看来或许十分可笑,敬请PASS为谢。
1.拆机IC功能初识,打各引脚
识别地线,电源脚,LCD的型号、控制IO分配,串口脚分配,SPI/I2C理走线,按键接法
2.初读主控PDF,知晓烧录方法
短路那两个侧面跳针上电,就是进BOOTLOAD,原厂FLASHMAGIC就可以烧HEX了,第一次因为锁了芯片需要用全片擦,之后就勾下面的那个,按需要擦
3.建个最简工程方算起步
建工程,编译不报错;补充配置IO控制LED,懒得接就用LCD的背光(P0.16),进阶扩展到配置好UART,这样就可以人机对话调试、输出各种可疑信息,因为这个阶段你可能对PDF还有很多理解偏差;
4.控制LCD才有成就感
很容易找到原厂PDF,另一方面也说明屏算是大厂货HYG1926442C,看手册兼容KS0108,只有几条指令,在理清IO分配、IO控制后非常容易就点亮了
5.让SPI字库对LCD说话
继续配好SPI,以32字节为一组写到LCD上,有点经验的很容易就来事了。字库是左上左下右上右下的结构,可能是为前面的ASC16字库共用写模板。一个FOR就可以历遍SPI中存的字模
到这儿,已经入门了,至于其它模块,慢慢去探索吧,下面说的是BT玩法,不需要的也请PASS
至此,你应该知道芯片有16K RAM,与ROM统一编址,就是说可以用来跑程序,特别是经历N次的断电、短路P0.14,上电的过程,是不是觉得玩它是一件痛苦的折磨,接下来就是让这些变得EASY,我把16K分配成0x40000000--0x40001000 的4K用作RAM,0x40001000--0x40004000的12K用作ROM,KEIL 4.60有此功能选项。
写个小程序烧到ROM也就是传统的 0x000000000处,完成以下功能
上电读串口如果连续50个0xa9则跳分支(权且叫ISP) 否则及超时从FLASH最后12K加载到0x40001000,跳过去(BX)运行
ISP把上位机串口来的命令(BIN长度)、数据就是BIN写到0x40001000,这儿上位机有个选项,决定是否写到FLASH(W25X40),然后0x40001000,跳过去(BX)运行
说完了,真的就这么简单,不用再断电、短路、上电就可以看到程序结果,如果你有更高要求,还可以设置KEIL编译后触发上位机的发送动作,你只需要按一下板上的RST(需加,I2C块1脚短路到地)甚至都不用按,新修改的程序就可以跑起来而且还比FLASHMAGIC块很多很多.........最关键还是CPU 0磨损,FLASH 100K的写寿命估计没有人能写翻,况且调试是不写FLASH的,只在你需要相对稳定板子功能、脱机运行的时候才烧之。
12K ROM /4K RAM,确实啥也控制不了,不过在我们学习中的一个个模块,应该是足够了,而且还可能把固态数据表放FLASH
以上所述,都已经实现
哈哈!瞬间对不能RAM代码调试的51无爱了, ade ! 我的51 !
|
评分
-
查看全部评分
|