|
这是我的按键部分
void key_int0() interrupt 0
{
uchar keytemp;
uint total_freq;//总频率
EA=0;
TR0=0;
delay(10);
if(key==0) //判断按键是否按下
{
keytemp=P3&0xf0;//获取P3口高四位的值
switch(keytemp) //根据按键次数选择波形
{
case 0xe0:
waveform++;
if(waveform>2)waveform=0;
break;
case 0xd0:
wavefreq[waveform]++; // 频率按单位增加
if(wavefreq[waveform]>10)wavefreq[waveform]=1;
break;
case 0xb0: // 频率按单位递减
wavefreq[waveform]--;
if(wavefreq[waveform]<1)wavefreq[waveform]=10;
break;
}
THtemp=waveTH[waveform*10+(wavefreq[waveform]-1)];
//方括号中选取第几个数后,并把该值赋给T_temp
TLtemp=waveTL[waveform*10+(wavefreq[waveform]-1)];
total_freq=wavefreq[waveform]*freq_unit[waveform];//求输出频率(个数*单位)
lcd_hang2[5]=total_freq%10+0x30;//在液晶中显示个位,(0x30在液晶显示中表示数字0)
total_freq/=10; lcd_hang2[4]=total_freq%10+0x30; //显示十位
total_freq/=10; lcd_hang2[3]=total_freq%10+0x30; //显示百位
total_freq/=10; lcd_hang2[2]=total_freq%10+0x30; //显示千位
disp_lcd(0x80,&lcd_hang1[waveform*16]);//在第一行显示
disp_lcd(0xc0,lcd_hang2);//在第二行显示
}
EA=1;TR0=1;//开启总中断与定时器
}
|
|