⑴ 怎样用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文件。就可以修改了!