标题:
有没有帮我看看怎么做的
[打印本页]
作者:
sdasdsj
时间:
2017-5-13 15:01
标题:
有没有帮我看看怎么做的
有没有帮我看看怎么做的
$`E]EPTQH5EV{TP7ENWU~UH.png
(55.9 KB, 下载次数: 73)
下载附件
2017-5-13 15:00 上传
作者:
sdasdsj
时间:
2017-5-14 22:38
有没有大神给看看
作者:
aiyouv
时间:
2017-5-15 00:47
帮顶!!!!!!!!
作者:
cjjcjj1
时间:
2017-5-15 06:22
提示:
作者被禁止或删除 内容自动屏蔽
作者:
angmall
时间:
2017-5-15 09:23
#include <reg51.h> //此文件中定义了单片机的一些特殊功能寄存器
#define duan P2 //段选
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit s1=P3^2; //定义P32口是s1
sbit s2=P3^7; //定义P37口是s2 开始/暂停/清零 按钮
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
u8 cnt=0, display=0;
u8 status =0; //0: 开始/1:暂停 /2: 清零 按钮
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : keypros1
* 函数功能 : 按键处理函数,判断按键s1是否按下
*******************************************************************************/
void keypros1()
{
if(s1==0) //检测按键s1是否按下
{
delay(1000); //消除抖动 一般大约10ms
if(s1==0) //再次判断按键是否按下
{
if(!status) //检测暂停
cnt++;
if(cnt > 5) //按6次
{
cnt = 0;
display++;
if(display > 9)
{
display=0;
}
}
}
while(!s1); //检测按键是否松开
}
}
/*******************************************************************************
* 函 数 名 : keypros2
* 函数功能 : 按键处理函数,判断按键s2是否按下
*******************************************************************************/
void keypros2()
{
if(s2==0) //检测按键s2是否按下
{
delay(1000); //消除抖动 一般大约10ms
if(s2==0) //再次判断按键是否按下
{
status++;
if(status == 2)
{
display=0;
cnt = 0;
}
if(status > 2)
{
status=0;
}
}
while(!s2); //检测按键是否松开
}
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
keypros1(); //按键处理函数
keypros2(); //按键处理函数
duan=smgduan[display]; //显示
}
}
复制代码
作者:
宫本无三四
时间:
2017-5-15 10:59
数码管不知道你怎么接的,数组那里我随便填了,你自己改上
#include "reg52.h"
#define u16 unsigned int
#define u8 unsigned char
sbit k1=P3^7;
u8 c6=0;
u8 num=0;
u8 code duanma[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
void delay(u16 i)
{
while(i--);
}
void keypress()
{
if(k1==0)
{
delay(1000); //大约10ms
if(k1==0)
{
c6++;
if(c6==6)
{
c6=0;
num++;
if(num==10)num=0;
P2=duanma[num];
}
}
while(!k1);
}
}
void main()
{
k1=1;
P2=duanma[0];
while(1)
{
keypress();
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1