资源简介
AT89C51的矩阵键盘、跑马灯和呼吸灯设计.rar
代码片段和文件信息
#include “reg52.h“ //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit d1=P0^0; //16个LED灯:D1-D16
sbit d2=P0^1;
sbit d3=P0^2;
sbit d4=P0^3;
sbit d5=P0^4;
sbit d6=P0^5;
sbit d7=P0^6;
sbit d8=P0^7;
sbit d9=P2^0;
sbit d10=P2^1;
sbit d11=P2^2;
sbit d12=P2^3;
sbit d13=P2^4;
sbit d14=P2^5;
sbit d15=P2^6;
sbit d16=P2^7;
sbit P32=P3^2; //P3.2引脚是外部中断INT0的信号
sbit xintiaodeng=P3^3; //P3.3引脚作为心跳灯的控制信号
int a[]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};//顺序流水灯数组
int b[]={0x7f0xbf0xdf0xef0xf70xfb0xfd0xfe};//倒序流水灯数组
int c[]={0xfe0xfc0xf80xf00xe00xc00x800x000x800xc00xe00xf00xf80xfc0xfe0xff}; //顺序逐盏点亮逐盏灭掉数组
int d[]={0x7f0x3f0x1f0x0f0x070x030x010x000x010x030x070x0f0x1f0x3f0x7f0xff}; //倒序逐盏点亮逐盏灭掉数组
u8 KeyValue; //用来存放读取到矩阵键盘的键值
u8 k; //定义循环变量k
void delay(u16 i) // delay延时函数 i=1时,大约延时10us
{
while(i--);
}
void KeyDown(void) //该函数用于检测是否有按键按下并读取键值
{
char a=0;
P1=0x0f; //高四位为0,低四位为1,当按键被按下后,会有某个低四位变为0
if(P1!=0x0f)//读取按键是否按下
{
delay(100);//延时10ms进行消抖
if(P1!=0x0f)//再次检测键盘是否按下
{
//测试列
P1=0X0F;
switch(P1) //按键被按下后,会有某个低四位变为0
{
case(0X07): KeyValue=0;break; //P1.3=0,即第一列有某个按键被按下
case(0X0b): KeyValue=1;break; //P1.2=0,即第二列有某个按键被按下
case(0X0d): KeyValue=2;break; //P1.3=0,即第三列有某个按键被按下
case(0X0e): KeyValue=3;break; //P1.4=0,即第四列有某个按键被按下
}
//测试行
P1=0XF0;
switch(P1)
{
case(0X70): KeyValue=KeyValue;break; //P1.7=0,即第一行有某个按键被按下
case(0Xb0): KeyValue=KeyValue+4;break; //……每行相差4,因此为+4
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(P1!=0xf0)) //检测按键松手检测
{
delay(100);
a++;
}
}
}
}
void zoumadeng2(void) //D1-D8,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P0=a[k];
delay(30000);
}
P0=0XFF;
}
void zoumadeng3(void) //D8-D1,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P0=b[k];
delay(30000);
}
P0=0XFF;
}
void zoumadeng4(void) //D9-D16,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P2=a[k];
delay(30000);
}
P2=0XFF;
}
void zoumadeng5(void) //D16-D9,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P2=b[k];
delay(30000);
}
P2=0XFF;
}
void zoumadeng6(void) //D1-D16,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P0=a[k];
delay(30000);
}
P0=0xff;
for(k=0;k<8;k++)
{
P2=a[k];
delay(30000);
P2=0xff;
}
}
void zoumadeng7(void) ////D16-D1,单点循环一次,长按无限循环
{
for(k=0;k<8;k++)
{
P2=b[k];
delay(30000);
}
P2=0xff;
for(k=0;k<8;k++)
{
P0=b[k];
delay(30000);
}
P0=0xff;
}
void zoumadeng8(void) ////D1-D8顺序逐盏点亮逐盏灭掉数组单点循环一次,长按无限循环
{
for(k=0;k<16;k++)
{
P0=c[k];
delay(30000);
}
}
void zoumadeng9(void) ////D8-D1倒序逐盏点亮逐盏灭掉数组单点循环一次,长按无限循环
{
for(k=0;k<16;k++)
{
P0=d[k];
delay(30000);
}
}
void zoumadeng10(void) ////D9-D16顺序逐盏点亮逐盏灭掉数组单点循环一次,长按无限循环
{
for(k=0;k<16;k++)
{
P2=c[k];
delay(3000
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23462 2019-11-15 14:01 Backup Of new51.pdsbak
文件 22759 2019-11-16 20:15 Last Loaded new51.pdsbak
文件 18641 2019-11-16 20:14 new51
文件 8586 2019-11-16 20:13 new51.c
文件 4754 2019-11-16 20:14 new51.hex
文件 27 2019-11-16 20:14 new51.lnp
文件 18504 2019-11-16 20:14 new51.LST
文件 22893 2019-11-16 20:14 new51.M51
文件 22056 2019-11-16 20:14 new51.OBJ
文件 22784 2019-11-16 20:21 new51.pdsprj
文件 3152 2019-11-16 20:32 new51.pdsprj.LAPTOP-4TU8EL4B.win10.workspace
文件 337 2019-11-16 20:14 new51.plg
....... 55217 2019-11-16 20:14 new51.uvopt
....... 13227 2019-11-15 14:38 new51.uvproj
....... 55217 2019-11-16 20:13 new51_uvopt.bak
....... 0 2019-11-15 14:05 new51_uvproj.bak
----------- --------- ---------- ----- ----
291616 16
- 上一篇:Hyperion-2.3.1.zip
- 下一篇:信息隐藏技术及其攻击方法
相关资源
- 微博自动评论助手.crx
- Axure高保真原型:移动客户端的设计与
- 200套PPT模版_带有索引.txt
- 飞狐加速器E版.rar
- CNNIC数字证书工具1.2和rootsupd.exe.zip
- rar(9)
- 课程设计.doc
- 20161031133804181.rar
- Vectorcontrolinductionmotor.rar
- bp.rar
- bianma.rar
- CS_recovery_algorithms_OMP_SP_IHT.zip
- 学生选课系统.rar
- PTHCJIEYA密碼.txt
- GodOfHacker-master.zip
- 中华石杉.txt
- ANSYS19.2破解版.zip
- WindowsServer2008R2(X64)MSDN镜像简体中文
- SAP视频教程地址.docx
- 帝国cmspaypal付款插件.rar
- 全国气象站stations.zip
- sklearn说明.txt
- pb.11.5.2506.rar
- 百度网盘地址.txt
- maxwell最全资料附Maxwell2019最新款.txt
- 小甲鱼课件视频全套.txt
- DJKK音乐器.rar
- 获取腾讯真实视频地址.zip
- gcc-g++.txt
- 相关内容地址.txt
评论
共有 条评论