一、bank0和bank1
SH79F3283的从数据手册或者f3283的头文件里能看到,一些寄存器背后有备注在“bank1”,一定要注意,如果要对这些寄存器进行设置,一定要像以下配置。
如果不切换的话一些寄存器的地址是重叠的,到赋值的时候就会出现莫名其妙的错误。包括P5的所有脚都是在bank1的,配置的时候一定要留意。
二、时钟
手册上并没写的太清楚外部晶振究竟能搞到一个什么范围,一会儿说12M一会儿又16M,其实外部最多12M,内部可以达到16M。
一般51都是一个机器周期=12个震荡周期,这款是1:1,不过需要注意的一点是CLKCON这个寄存器默认将时钟12分频。
使用的时候一定要记得给它设置成不分频,不然速度太慢了
三、ADC采样和串口中断
当你配置完ADC打开中断和总中断之后,一定要等待至少10us的时间再写下:ADCON|=0X01;
否则ADC模块会出现问题。
串口中断的RI和TI任意一个为1时,都不能触发串口中断。
我用了个芯片将232转485了,每次发送完成后一定要把TI这个标志清零再接收,不然根本收不到数据。
四、RAM
不得不说这个RAM实在是太小了,内部就256字节,外部撑死1k,我用的时候真的要很小心,生怕ram满了导致中断保持现场对的时候不正常。
最后我发现:
实际上你只要加一个关键字"xdata"就可以直接把变量定义在外部ram了,例如"xdata int i=0;"
至于你想验证我定义完之后是不是能正常给这个变量赋值,很简单,你插上这个东西的仿真器,跑一个最简单的i++;语句,看看在watch窗口这个i有没有增加就是了。
五、烧录时的代码选项
1、关于时钟配置:
中颖SH79F3283时钟选择并不是通过某个寄存器选择的,而是要通过下载软件来配置的,在代码选项OP_OSC这个来选,如果不选择等你把程序烧进去之后会发现你的外部晶振甚至没有起振。以ISP51为例:
2、中颖默认代码选项中开门狗是开的,OP_WDT一定要选择关闭。
整理者:上海微可实业有限公司
由飞天小鲸鱼和LI2590266418文章收集整理而来,侵权必删
上海微可实业有限公司
电话:18221985986
QQ/微信:634121371
淘宝网店 : wksy.taobao.com (中颖单片机)
联系人:程先生