STC 韌體程式切換

2022-05-04 21:00:08 字數 2831 閱讀 9507

由於相鄰中斷入口位址的間隔區間僅僅有 8 個位元組,一般情況下無法儲存完整的中斷服務程式,因此在中斷響應的位址區域存放一條無條件轉移指令,指向真正存放中斷服務程式的空間去執行。

eeprom一般放置在flash最後面,以上面0.5k為例,eeprom 起始位址為fe00~ffff

對非空區域寫入值,需要先擦除再寫,擦除flash以0.5k為單元,也就是0x200

#ifndef __eeprom_h__

#define __eeprom_h__

void eeprom_readbuffer(int addr, char *buf, int length);

void eeprom_writebuffer(int addr, char *buf, int length);

void iaperase(int addr);

char iapread(int addr);

#endif

#include "stc8h.h"

#include "intrins.h"

void iapidle()

char iapread(int addr)

void iaperase(int addr)

void eeprom_readbuffer(int addr, char *buf, int length)

/*----------------------------

傳送串列埠資料

----------------------------*/

void senddata(byte dat)

else

sbuf = acc; //寫資料到uart資料暫存器

while (ti == 0); //等待前面的資料傳送完成

ti = 0;

}

中斷向量表範圍為0000h-0200h

int changeinterruptvector(uint16_t offset)

offset >>= 8;

iaperase(0x0000);

// bootloader **跳轉位址

hex2bin新增hex2bin.exe "#l.hex",如下圖所示:

經過以上操作,編譯時就會自動產生bin檔案

提取碼:yv4x

最後新增bootloader的bin檔案,勾選插入

點選合併

eeprom大小設定為64k

1.keil-51微控制器實現自定義bootloader,用於程式更新 研究

2.stc51微控制器實現iap遠端公升級過程分享

STC微控制器按鍵掃瞄程式

最近在做乙個電子秤相關專案,使用stc系列微控制器作為主控晶元,專案第一階段直接使用iap15w4k58s4驅動兩個矩陣鍵盤,一切除錯順利,在專案即將結束時老闆要求使用另一塊微控制器驅動矩陣鍵盤,讀取鍵值後通過串列埠傳回之前的iap主控 理由是為了節省從矩陣鍵盤到主控板之間的長排線的成本,16p 1...

主程式,整定的stc8a的程式。初步。

測試脈衝數,並且傳送到電腦串列埠,利用stc8a晶元的串列埠3,定時器3產生波特率,利用pwm增強,pwm的p21介面產生pwm脈衝,有四個按鍵,模式選擇,確定鍵。模式選擇。模式1是設定pwm的占空比,其中pwm的週期設定固定,500hz頻率,通過設定t1h的反轉點,實現pwm,將反轉點的值設定為變...

STC微控制器控制PCA9554A程式

對pca9554a操作時要特別注意的是在主函式寫資料之前,一定要先用函式 pca9554a config 0x00 寫0x00,否則收不到資料 include include sbit sda p2 0 sbit scl p2 1 sbit beep p2 3 void delay unsigned...