一、bank0和bank1
SH79F3283的從數(shù)據(jù)手冊(cè)或者f3283的頭文件里能看到,一些寄存器背后有備注在“bank1”,一定要注意,如果要對(duì)這些寄存器進(jìn)行設(shè)置,一定要像以下配置。
如果不切換的話一些寄存器的地址是重疊的,到賦值的時(shí)候就會(huì)出現(xiàn)莫名其妙的錯(cuò)誤。包括P5的所有腳都是在bank1的,配置的時(shí)候一定要留意。
二、時(shí)鐘
手冊(cè)上并沒寫的太清楚外部晶振究竟能搞到一個(gè)什么范圍,一會(huì)兒說12M一會(huì)兒又16M,其實(shí)外部最多12M,內(nèi)部可以達(dá)到16M。
一般51都是一個(gè)機(jī)器周期=12個(gè)震蕩周期,這款是1:1,不過需要注意的一點(diǎn)是CLKCON這個(gè)寄存器默認(rèn)將時(shí)鐘12分頻。
使用的時(shí)候一定要記得給它設(shè)置成不分頻,不然速度太慢了
三、ADC采樣和串口中斷
當(dāng)你配置完ADC打開中斷和總中斷之后,一定要等待至少10us的時(shí)間再寫下:ADCON|=0X01;
否則ADC模塊會(huì)出現(xiàn)問題。
串口中斷的RI和TI任意一個(gè)為1時(shí),都不能觸發(fā)串口中斷。
我用了個(gè)芯片將232轉(zhuǎn)485了,每次發(fā)送完成后一定要把TI這個(gè)標(biāo)志清零再接收,不然根本收不到數(shù)據(jù)。
四、RAM
不得不說這個(gè)RAM實(shí)在是太小了,內(nèi)部就256字節(jié),外部撐死1k,我用的時(shí)候真的要很小心,生怕ram滿了導(dǎo)致中斷保持現(xiàn)場(chǎng)對(duì)的時(shí)候不正常。
最后我發(fā)現(xiàn):
實(shí)際上你只要加一個(gè)關(guān)鍵字"xdata"就可以直接把變量定義在外部ram了,例如"xdata int i=0;"
至于你想驗(yàn)證我定義完之后是不是能正常給這個(gè)變量賦值,很簡(jiǎn)單,你插上這個(gè)東西的仿真器,跑一個(gè)最簡(jiǎn)單的i++;語句,看看在watch窗口這個(gè)i有沒有增加就是了。
五、燒錄時(shí)的代碼選項(xiàng)
1、關(guān)于時(shí)鐘配置:
中穎SH79F3283時(shí)鐘選擇并不是通過某個(gè)寄存器選擇的,而是要通過下載軟件來配置的,在代碼選項(xiàng)OP_OSC這個(gè)來選,如果不選擇等你把程序燒進(jìn)去之后會(huì)發(fā)現(xiàn)你的外部晶振甚至沒有起振。以ISP51為例:
2、中穎默認(rèn)代碼選項(xiàng)中開門狗是開的,OP_WDT一定要選擇關(guān)閉。
整理者:上海微可實(shí)業(yè)有限公司
由飛天小鯨魚和LI2590266418文章收集整理而來,侵權(quán)必刪
上海微可實(shí)業(yè)有限公司
電話:18221985986
QQ/微信:634121371
淘寶網(wǎng)店 : wksy.taobao.com (中穎單片機(jī))
聯(lián)系人:程先生