8051程式記憶體
8050是一個8位元的單晶片,它有獨立最大64K的程式記憶體,當然,市售的805X族系晶片,程式記憶體大半在4K,8K,16K為主,和個人電腦以G為單位的記憶體相比,8051的記憶體算是很小了。
8051程式記憶體
8050是一個8位元的單晶片,它有獨立最大64K的程式記憶體,當然,市售的805X族系晶片,程式記憶體大半在4K,8K,16K為主,和個人電腦以G為單位的記憶體相比,8051的記憶體算是很小了。
在串列埠輸出資料
能夠在串列埠輸出文字,其實是很重要的一步,印象中當年微軟的DOS作業系統,就有一個DEBUG程式,讓使用者可以看到,目前記憶體的內容為何。現在8051單晶片系統,作者嘗試作類似的努力,讓使用者可以看到8051系統內的記憶體內容為何。得知記憶體內容,對8051的學習,將帶來很大的幫助。
串列埠簡介和設定
串列埠一般簡稱RS232或UART介面,通常用於單晶片的資料傳輸之用。RS232規格至少是和8051一樣古老,因為技術上簡單,容易使用,即使時至今日,在單晶片的領域仍很重要。
SDCC C51函式的輸入參數
目前已可以在一個專案中,同時包括C和組合語言兩個源碼,進一步,希望能將C語言的輸入參數,可以用組合語言的方式來表現或傳遞,或者倒過來,可以利用組合語言,來呼叫C函式,並且將輸入參數,傳送到C函式之中。
SDCC 函式的輸入參數
目前已可以在一個專案中,同時包括C和組合語言兩個源碼,還想進一步,希望能將C語言的輸入參數,可以用組合語言的方式來表現或傳遞,或者倒過來,可以利用組合語言,來呼叫C函式,必且將必要的參數,傳到C函式之中。
SDCC C51的聯結功能
作者在開始學習SDCC C51時,是由sdas8051 assembler入手,SDCC這類自由軟體最大的缺點之一,是能找得到的參考資料很少,作者自認英文不差,嘗試在網路搜尋,也沒找到多少可用的文章,碰到問題只能K它們家的使用手冊(也很簡單),自己寫程式嘗試錯誤(TRY AND ERROR) 總之,一切靠自己,是典型的LIY(LEARN IT YOURSELF)。
C51的首次出現
對於熟悉組合語言的工程師,第一次寫C51的程式,心中其實是有些不安的。比如組合語言有虛擬指令,像是 .ORG,可以用來告訴編譯器,程式碼要放在位址0,C語言沒有類似的虛擬指令,程式碼要放在何處,就是由C51編譯器決定。
由簡入繁
本篇先由一個簡單的組合語言程式起始,程式只有短短不到10行,不過這是一個完整的原始程式檔,編譯下載後可以點亮硬體平台的LED,下一篇另一個程式是第一個程式的改良版,程式開始讓LED閃動,像是單晶片的心臟開始跳動;兩個程式作者刻意維持最簡單的風格.作者也曾是電腦初學者,深知初學者的痛苦,記憶中作者的第一份程式長度約略100行上下,花了大約2個小時輸入和檢查,終於到了見真章的一刻,程式進入編譯階段,說時遲那時快,編譯後整個螢幕出現數拾行的錯誤訊息,當下的失望即使經過多年,仍然歷歷在目.