|
按键后 不对!!!!!!
不按键显示是对的。
不按键显示 51.6910hz
按键A 显示set synth
51.6910 并且光标在5下面
按下数字按键 可以修改各位的数值
按D 可以保存修改
按E 不保存所做的修改
C 光标向左 F光标向右
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
?Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2012-5-1
Author : NeVaDa
Company : 微软用户
Comments:
Chip type : ATmega162
Program type : Application
AVR Core Clock frequency: 11.059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega162.h>
#include "LCD1602X.C"
/*
EE DE BE 7E 0 1 2 3
ED DD BD 7D 4 5 6 7
EB DB BB 7B 8 9 A B
E7 D7 B7 77 C D E F
A按键:进入设置综合器状态下
C按键:光标向左
D按键:保存修改数值并确认退出
E按键:不保存并确认退出
F按键:光标向右
*/
unsigned char synth[10]="51.6910hz";
#pragma used+
void SYNTH_PROC(void) //按键-综合器 的功能函数
{
unsigned char idx,TMP[10]="51.6910";
unsigned char EXIT=0x00;
idx=0;
CLR_SCREEN();
displayROM(0x00,"SET SYNTH");
for(idx=0;idx<9;idx++)
{TMP[idx]=synth[idx];}
displayRAM(0x41,TMP);
idx=0;
lcd_pos(0x41+idx);
ICON_CTRL(0x0E); //显示光标
while(EXIT!=0xAA)
{
while(!FLAG); //表示有按键被按下了
FLAG=0;
switch (KEYX) //根据按键的键值执行不同的程序
{
case 0x0D:
{
TMP[6]-=0x30;
TMP[5]-=0x30;
TMP[4]-=0x30;
TMP[3]-=0x30;
TMP[2]='.';
TMP[1]-=0x30;
TMP[0]-=0x30;
ICON_CTRL(0x0C); //隐藏光标
EXIT=0xAA;
break;
}
case 0x0E:
{
EXIT=0xAA;
break;
}
case 0x0F:
{
idx=idx+1;
if(idx==3){idx=4;}
if(idx==8){idx=1;}
lcd_pos(0x41+idx);
break;
}
case 0x0C:
{
idx=idx-1;
if(idx==3){idx=2;}
if(idx==0){idx=7;}
lcd_pos(0x41+idx);
break;
}
default:
{
if(KEYX<10)
{
TMP[idx]=KEYX+0x30;
displayB(0x41+idx,TMP[idx]);
lcd_pos(0x41+idx);
}
}
}
}
CLR_SCREEN();
}
#pragma used-
main()
{
displayRAM(0x80,synth);
while (1)
{
// Place your code here
if(FLAG)
{
FLAG=0;
switch(KEYX)
{
case 0x0A:
{
SYNTH_PROC();
break;
}
default:break;
}
}
};
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|