标题:
修改程序,能不能加中断器、计时器、定时器(三选二)
[打印本页]
作者:
hzz823
时间:
2018-5-27 14:39
标题:
修改程序,能不能加中断器、计时器、定时器(三选二)
数码管显示闪烁也解决一下
新建 Microsoft Word 文档.docx
2018-5-27 14:39 上传
点击文件名下载附件
14.74 KB, 下载次数: 8
作者:
wulin
时间:
2018-5-27 14:39
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit led0=P2^2;
sbit buzzer=P2^3;
sbit dula=P2^6; //声明段选线选通端
sbit wela=P2^7; //声明位选线选通端
sbit clear=P3^4;
uchar key,shi,ge,count;
uchar code tab[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
0x76,0x79,0x38,0x3f};
uchar k=0;
/*延时子函数,xms为形参*/
/*void delay(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}*/
/*矩阵键盘扫描子程序*/
void matrixkeyscan()
{
static bit sign=0; //按键自锁标志
static uint count=0; //消抖计数变量
uchar num=0; //临时变量
P3=0xf0; //赋值P3 1111 0000
if(P3!=0xf0) //检测有按键按下
{
count++; //消抖计数
if((count>=500)&&(sign==0))
{
sign=1; //按键自锁标志置1
num=P3; //保存P3值xxxx 0000,x为0或1
num|=0x0f; //保存num按位或0x0f值xxxx 1111
P3=num; //赋值P3 xxxx 1111
num=P3; //保存P3值xxxx xxxx
switch(num)
{
case 0xee: key=16; break;
case 0xde: key=15; break;
case 0xbe: key=14; break;
case 0x7e: key=13; break;
case 0xed: key=12; break;
case 0xdd: key=11; break;
case 0xbd: key=10; break;
case 0x7d: key= 9; break;
case 0xeb: key= 8; break;
case 0xdb: key= 7; break;
case 0xbb: key= 6; break;
case 0x7b: key= 5; break;
case 0xe7: key= 4; break;
case 0xd7: key= 3; break;
case 0xb7: key= 2; break;
case 0x77: key= 1; break;
}
k=1;
}
}
else //键抬起
{
sign=0; //按键自锁标志清0
count=0; //消抖计数清0
}
}
void alarm()
{
static uint i=0;
if(k==1)
{
buzzer=0;
led0=0;
i++;
if(i==1000)
{
i=0;
k=0;
buzzer=1;
led0=1;
}
// buzzer=~buzzer;
// led0=~led0;
// delay(30);
}
}
void display(uchar num)
{
static uchar i=0;
P0=0x00;//消隐
dula=1;
dula=0;
if(i==0)
{
P0=0xfe;
wela=1;
wela=0;
P0=tab[num/10];
dula=1;
dula=0;
i=1;
}
else
{
P0=0xfd;
wela=1;
wela=0;
P0=tab[num%10];
dula=1;
dula=0;
i=0;
}
}
void main()
{
P0=0x00;
while(1)
{
matrixkeyscan();
alarm();
display(key);
}
}
作者:
angmall
时间:
2018-5-27 21:28
楼主未描述清楚,
1、你想做什么?达成什么目标?
2、你现在是如何做的?
3、做完成后应该出什么?
4、结果现在出现了什么?
发一下 原理图
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1