微控制器程式做批註,謝謝

時間 2025-07-05 15:00:08

1樓:自我程式設計

看你**片段。

write_com();應該是寫入命令。

0x80 0x90 0x88 0x98 對應的是命令值 這個晶元文件裡找。

write_dat();應該是寫資料 寫入的資料是tab1[16] tab2[16] tab3[16] tab4[16] 這四個陣列裡的資料,每個陣列裡有16個位元組的資料,write_dat每次寫入1個位元組,迴圈16次寫入完1個陣列。

delay(1);延遲函式。

endisplay就是個標識用的變數。

所以上面**大概意思應該就是。

當f不等於7和8時 按照指定命令格式寫入tab1 tab2 tab3 tab4裡的資料,並將標識變數endisplay置0

當f等於7或8 並且 endisplay等於0時 寫入命令0x01 endisplay置1; 寫入命令0x80 並寫入資料 2個位元組 分別a_shi/10+0x30、a_shi%10+0x30

當f等於7或8 並且 endisplay不等於0時 寫入命令0x80 並寫入資料 2個位元組 分別a_shi/10+0x30、a_shi%10+0x30

這裡0x30應悉閉敬該是 『0』這個字元的ascii碼 一般 數字態清+0x30 用於把0~9整型數字轉換成對應的字元。

所以a_shi應該是乙個2位數字。

a_shi/10:取a_shi的十位。

a_shi%10:取a_shi的個位。

所以。a_shi/10+0x30:取a_shi的十位 並轉換成對應的數字字元。

a_shi%10+0x30:取a_shi的個位 並轉換成睜慎對應的數字字元。

2樓:網友

/一般人恐怕無法這個問題,我這裡正好有這個程式,所以稍加註釋。

if(f!=7&&f!=8)

write_com(0x80);/lcd寫第一行位址。

for(i=0;i<16;i++)

write_dat(tab1[i]);顯示「"時間溫度顯示 」

write_com(0x90);/第畢鉛二行陪慶位址。

for(i=0;i<16;i++)

write_dat(tab2[i]);顯示「公曆:20」

write_com(0x88);/第三行地蘆數握址。

for(i=0;i<14;i++)

delay(1);

write_com(0x98);/第四行位址。

for(i=0;i<12;i++)

write_dat(tab4[i]);顯示「室內溫度:」

endisplay=0;

elseif(endisplay==0)

write_com(0x01);/關顯示。

endisplay=1;

write_com(0x80);

write_dat(a_shi/10+0x30);/顯示年的十位數。

write_dat(a_shi%10+0x30);/顯示年的個位數。

微控制器程式錯誤,51微控制器c語言程式錯誤

後面兩個錯誤是沒有宣告函式,最簡單的方法就是把main函式調到程式的最後,你看看還有沒有錯誤,我們 hhh.c 113 error c211 call not to a function這個呼叫函式名不存在 hhh.c 114 error c211 call not to a function這個呼...

51微控制器c語言程式注釋標註,51微控制器C語言程式注釋標註

四喜丸子 按鍵掃瞄顯示程式,這有什麼難的?自己每一句照著分析分析不就行了。微控制器c語言程式設計,中間幾段程式注釋不會寫,一些步驟看不懂,望講解 20 考試翻版 微控制器的東西要看晶元的資料手冊,裡面有很多講解,其實微控制器裡特定的位址代表了微控制器特定的功能,你賦特定的值就會啟動或關閉功能,微控制...

問下微控制器怎麼呼叫子程式,微控制器中怎麼應用呼叫子程式呢?

大頭魚儉儉 org 0000h ljmp start org 000bh ljmp int t0 start setb ea setb et0 mov tmod,01h mov th0,3ch 定時50ms mov tl0,0b0h setb tr0 mov r2,20 迴圈20次1s sjmp i...