#include <avr/>
#define uchar unsigned char
#define uint unsigned int
#define BIT(x) (1<<(x))
uchar table[]="0123456789";
uchar table1[]="Voltage input:";
uchar table2[]="";
uint a,b,c,num,temp,temp1,temp2,temp3,n0,n1,n2;
void delay(uchar z)//ÑÓʱº¯Êý
{
uchar x,y;
for(x=z;x>0;x--)
for(y=1100;y>0;y--);
}
void write_com(uchar com)
{
PORTC&=~BIT(2);
//PORTC&=~BIT(3);
PORTA=com;
PORTC|=BIT(4);
delay(5);
PORTC&=~BIT(4);
delay(5);
}
void write_dat(uchar dat)
{
PORTC|=BIT(2);
//PORTC&=~BIT(3);
PORTA=dat;
PORTC|=BIT(4);
delay(5);
PORTC&=~BIT(4);
delay(5);
}
void init_1602()
{
PORTC&=~(1<<3);
write_com(0x38);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x80);
}
uchar key_press() //¼ì²â¼üÅÌÊÇ·ñ±»°´ÏÂ
{
uchar i;
DDRD=0XFF;
PORTD=0XF0;
DDRD=0X0F;
i=PIND;
if(i==0XF0)
{
DDRD=0XFF;
return 0;
}
else
{
DDRD=0XFF;
return 1;
}
}
void key_scan() //¼üÅÌɨÃ躯Êý
{
uchar key,i=0X7F,j;
// delay(5);
if(key_press())
{
do
{
DDRD=0X0F; //ÉèÖÃD¿Ú¸ßËÄλÊäÈ룬µÍËÄλÊä³ö
i=(i<<1|i>>7);
PORTD=i; //°ÑiµÄÖµ¸³¸øD¿Ú
key=PIND; //¶Á³öD¿ÚµÄÊý¾Ý
j=key&0XF0;
}while(j==0XF0);
while(key_press()); //Ë
按键设置电压显示 来自淘豆网m.daumloan.com转载请标明出处.