導航:首頁 > 操作系統 > 單片機數據與程序

單片機數據與程序

發布時間:2023-03-22 08:05:43

單片機的數據空間和程序空間

AT89C52的程序空間是8KB是確認無疑的,但指的是存放純二進制的機器碼,就是二進制數。而KeilC編譯的HEX代碼文件並不是純二進制數,是以ASCII碼格式存放的文件,而且其中還有一些編譯信息,如地址、校驗和等。所以,不能看HEX文件的大小來確定下載到單片機內的真正的程序空間大小,也就是說HEX文件的大小並不是真正下載的單片機的程序大小。而下載到單片機的代碼空間大小要看Keilc編譯時給出的代碼數的提示,才是真正要下載到單片機內的代碼空間。舉個例子,下圖是一個程序編譯後的提示,真正的二進制代碼是337個位元組,而HEX文件卻是1KB。這里還有一個誤區,你看到的HEX文件的大小是操作系統給出的大小吧,它是取整KB的,就是說HEX文件不足1KB時,也顯示是1KB。再明確一點說吧,假如編譯後的代碼是750418,用純二進制數(即BIN格式,有些匯編程序的編譯器輸出的就是BIN格式)的代碼保存就是3個位元組,而用HEX格式保存就是6個位元組,因為要用6個ASCII碼來表示。這來算來,HEX文件大小是BIN文件的二倍,加上一些地址信息,是大於二倍的。好,回到你的問題來,你的HEX文件是19KB,你看一下編譯後的代碼大小提示,肯定是不會超過8KB的,否則編譯時肯定會報錯的。

Ⅱ 在單片機里程序存儲器和數據存儲器的區別是什麼

程序存儲器顧名思義就是放程序的存儲器。就是把你寫的程序放到裡面去。就算斷電了但是裡面的數據還在,好比手機裡面存的電話薄,你換塊電池這中間有個斷電的過程但是數據還在。數據存儲器顧名思義就是專門放數據的,哪樣才是數據呢,比如說一個測溫度的設備,溫度時時都在變化我們不可能存某一固定的值進去,這個時候時時變化的溫度數據就是放在數據存儲器裡面的。只要一斷電它就不會保留數據

Ⅲ 51單片機通過串口實現數據的發送與接收程序

串口收發,要有通信協議。也就是什麼時候開始接收,接收到指令後,轉發什麼數據。這個要知道,才可以寫。而且使用不同的51單片機,其內部寄存器配置是不同的。
一般來說,過程如下:
1,配置串口參數、波特率等,開啟串口中斷;
void Init_UART()
{

}
2,中斷函數里寫中斷響應函數,根據接收的指令或者數據,執行相應的動作;
程序一般為:
void UART_ISR() interrupt x using y
{
;串口中斷處理函數
}
x - 單片機的C51中斷號
y - 指定使用的當前工作寄存器組號(0-3 PSW中的RS0,RS1組合)

3,主程序
int main(void)
{
Init_UART();
while(1)
{
;//數據發送函數
}
}

閱讀全文

與單片機數據與程序相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:53
Windows常用c編譯器 瀏覽:771
關於改善國家網路安全的行政命令 瀏覽:825
安卓如何下載網易荒野pc服 瀏覽:646
javainetaddress 瀏覽:95
蘋果4s固件下載完了怎麼解壓 瀏覽:994
命令zpa 瀏覽:277
python編譯器小程序 瀏覽:936
在app上看視頻怎麼光線調暗 瀏覽:532
可以中文解壓的解壓軟體 瀏覽:584
安卓卸載組件應用怎麼安裝 瀏覽:904
使用面向對象編程的方式 瀏覽:331
程序員項目經理的年終總結範文 瀏覽:920
內衣的加密設計用來幹嘛的 瀏覽:424
淮安數據加密 瀏覽:287
魔高一丈指標源碼 瀏覽:974
松下php研究所 瀏覽:162
c回調java 瀏覽:392
夢幻端游長安地圖互通源碼 瀏覽:738
電腦本地文件如何上傳伺服器 瀏覽:305