一、实验目的
2、学会用C语言进行矩阵按键应用程序的设计。
石笼护坡
二、实验内容
1、独立按键:对四个独立按键编写程序:当按k1时,8个LED同时100ms闪烁;当按k2时,8个LED从左到右流水灯显示;当按k3时,8个LED从右到左流水灯显示;当按k4时,8各LED同时从两侧向中间逐步点亮,之后再从中间向两侧逐渐熄灭;
2、矩阵按键:采用键盘扫描方式,顺序按下矩阵键盘后,在一个数码管上顺序显示0~F,采用静态显示即可。
3、提高部分(独立按键、定时器、数码管动态扫描):编写程序,实现下面的功能。
用数码管的两位显示一个十进制数,变化范围为00~59,开始时显示00,每按一次k1,数值加1;每按一次k2,数值减1;每按一次k3,数值归零;按下k4,利用定时器功能使数值开始自动每秒加1;再按一次k4,数值停止自动加1,保持显示原数。
三、实验步骤
1、硬件连接
(1)使用MicroUSB数据线,将实验开发板与微型计算
机连接起来;
(2)在实验开发板上,用数据线将相应接口连接起来;
2、程序烧入软件的使用
使用普中ISP软件将HEX文件下载至单片机芯片内。
查看结果是否正确。
四、实验结果——源代码
1. #include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define LED P2
sbit key1=P3^1;
sbit key2=P3^0;
sbit key3=P3^2;
sbit key4=P3^3;
const char tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
u8 code begMid[]={0x7e, 0xbd,0xdb,0xe7, 0xdb, 0xbd, 0x7e};
void Delay(u16 i)
{ while(i--);}
void KeyDown()
{
u8 i;
if(key2==0)
{
Delay(1000);
if(key2==0)
{
for(i=0;i<8;i++)
{
LED=tab[i];
Delay(50000);
}
while(!key2);
}
n2200 LED=0xff;
}
else if(key1==0)
{
Delay(1000);
视讯系统
if(key1==0)
{
for(i=0;i<3;i++)
{
LED=0x00;
Delay(10000);
LED=0xff;
Delay(10000);
}
}
}
碳化稻壳
}
void Int0Init()
{IT0=1;EX0=1;EA=1;}
自制纳米胶带教程void Int1Init(){IT1=1;EX1=1;EA=1;}
void main()
{
Int0Init();
Int1Init();
while(1)
{
KeyDown();
}
}
void Int0() interrupt 0
{
u8 i;
if(key3==0)
{
Delay(1000);
if(key3==0)vvint
{
for(i=7;i>=0;i--)