📄 keypwm.c.100828172714
字号:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};
uchar const LED_W[8] = {0,1,2,3,4,5,6,7};
uchar key_valu=0,l=0;
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
void show(uchar j,uchar k)
{
PORTA = table[j]; // i 值的 个位数
PORTC = LED_W[k]; //点亮第一位数码管
delay(2);
}
uchar key_press()
{
uchar j;
DDRD|=0X1c;
PORTD|=0X1c;
DDRD&=0Xe3;
j=PIND;
j=j&0X1c;//00001111
if(j==0X1c)
{
return 0;
}
else
{
return 1;
}
}
uchar key_scan()
{
uchar key;
delay(10);
if(key_press())
{
key=PIND;
key&=0X1c;
switch(key)
{
case 0X18:
OCR1B=31;
key_valu=5;
break;
case 0X0c:
OCR1B=62;
key_valu=10;
break;
case 0X14:
OCR1B=93;
key_valu=15;
break;
// default:
// key_valu=0;
}
while(key_press());
}
else
{
key=16;
}
return key_valu;
}
void main()
{
uchar i=0;
DDRA=0xff;
DDRB=0XFF;
DDRD|=0X30;
TCCR1A=0X63;
TCCR1B=0X13;
OCR1A=1249;
OCR1B=31;
while(1)
{
i=key_press();
if(i)
{
l=key_scan();
//show(l/10,1);
//show(l%10,0);
}
//show(l/10,7);
show(16,7);
show(l%10,6);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -