⑴ 怎樣用3*4矩陣鍵盤,改變51單片機程序里的數據
//考慮易讀,使用3個標志
char flag=0; //修改狀態=1
char f_change=0; //日期修改標志=1,時間修改標志=2,var修改標志=3
char num_on=0; //數字鍵盤
//按鍵:
//11=修改, 10=退出修改
//1=date,2=time,3=var為多功能鍵,必須使用num_on來切換
//按鍵還需有個keydown()判斷鍵是否按下
/*****************************************************/
//判斷鍵是否按下
/*****************************************************/
int keydown(void)
{
}
void proc_key(void)
{
switch(f_change)
{
case 1:funDate(K);break;
case 2:funTime(K);break;
case 3:funVar(K);break;
default:break;
}
}
main()
{
.....
while(1)
{
if(keydown())
{
K=keyscan();
switch(K)
{
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
if(num_on)
{
proc_key();
}
break;
case 1:
case 2:
case 3:
if(num_on)
{
proc_key();break;
}
if(!f_change && flag)
{
f_change=K;
num_on = 1;
}
break;
case 10:f_change=0;flag=0;break; //結束修改
case 11:f_change=0;flag=1;break;
default:break;
}
}
}
}
⑵ 簡述51單片機中的讀-修改–寫操作,並舉例說明。
按照我的理解來說,讀操作:從需要的寄存器中讀出需要的數據。修改操作:這里可以指處理讀到的數據嗎?寫操作:把修改的數據或者其他的數據寫進需要的寄存器中。舉例:(1)控制兩片DS18B20溫度感測器,這時需要讀出兩片感測器的序列號,然後存入存儲器中(某存儲晶元),然後再從該存儲器中讀出來寫入某指令去監測需要的那塊單片機。(2)從時鍾晶元DS1302中讀出年月日數據,寫入自己的函數中,來顯示出來。
⑶ 單片機上載出來的程序怎麼樣修改
D8751H是51內核的單片機。讀出來的程序應該是HEX文件。
如果沒有加密的話可以用偉福編譯器的反編譯功能反編譯成為.asm文件。就可以修改了!