📄 按键加一计数显示程序.c
字号:
#include <io8515.h> /*头文件*/
#define uchar unsigned char /*缩写定义*/
#define uint unsigned int
flash uchar DATA_7SEG[ ] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};/*LED 字形表*/
uchar led[6] ; /*显示缓冲*/
uint count;
void delay(uint t) /*延时子程序*/
{
uint i;
for (i=0;i<t;i++)
;
}
void init_disp(void) /*初始化B 口,D 口*/
{
DDRB=0xff;
DDRD=0x7f;
PORTD|=0x80;
}
void disp(void) /*数码管显示*/
{
uchar i;
for (i=0;i<6;i++)
{
PORTD=~(0x01<<i);
PORTB=DATA_7SEG[led[i]];
delay(1000);
}
PORTB=0x00;
PORTD=0xff;
}
void be_pc0(void) /*发出一声响子程序*/
{
uint i;
DDRC|=0x01;
for (i=0;i<350;i++)
{
PORTC^=0x01;
delay(350);
}
}
void conv(void) /*计数值转换成十进制数*/
{
led[5] =0;
led[4] =count/10000;
led[3] =count/1000%10;
led[2] =count/100%10;
led[1] =count/10%10;
led[0] =count%10;
}
void main(void) /*主程序*/
{
init_disp(); /*初始化B 口,D 口*/
count=0; /*开始计数值是零*/
conv(); /*转换*/
for(;;)
{
while((PIND&0x80)==0x80) /*没有键按下等待*/
disp(); /*显示*/
be_pc0(); /*发出一声响*/
count++; /*计数器加1*/
conv(); /*转换成十进制数*/
while((PIND&0x80)==0) /*有键按下*/
disp(); /*显示*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -