独立键盘的练习实验
来源:互联网 发布:睿拓香港知乎 编辑:程序博客网 时间:2024/04/25 15:19
#include<reg52.h>
//数码管显示0-59的计数器"
//数码管前三位显示
//一个跑表,从000到999之间以1%秒速度运行,
//当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。
#include<intrins.h>
sbit beep=P2^3;
sbit s2=P3^4;//to
sbit s3=P3^5;
sbit s4=P3^6;
sbit s5=P3^7;
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar bai,uchar shi,uchar ge)
{
P0=0xfe;
wela=1;
wela=0;
P0=table[bai];
dula=1;
dula=0;
delay(5);
P0=0xfd;
wela=1;
wela=0;
P0=table[shi];
dula=1;
dula=0;
delay(5);
P0=0xfb;
wela=1;
wela=0;
P0=table[ge];
dula=1;
dula=0;
delay(5);
}
void main()
{
uint num,val;
uchar a,b,c,flag=0,stop=0;
wela=0;
dula=0;
while(1)
{
if(stop!=1)
num++;
if(num==1000)
num=0;
if(s2==0)
{
delay(5);
if(s2==0)
{
if(flag==0)
val=num;
a=val/100;
b=val%100/10;
c=val%10;
display(a,b,c);
flag=1;
}
}
else
{
flag=0;
a=num/100;
b=num%100/10;
c=num%10;
display(a,b,c);
}
delay(5);
display(a,b,c);
delay(5);
if(num==200)
beep=0;
if(num==300)
beep=1;
display(a,b,c);
delay(5);
if(s3==0)
{
delay(5);
if(s3==0)
{
stop=1;
display(a,b,c);
}
}
display(a,b,c);
delay(5);
if(s4==0)
{
delay(5);
if(s4==0)
{
stop=0;
display(a,b,c);
}
}
if(s5==0)
{
num=0;
display(0,0,0);
}
}
}
- 独立键盘的练习实验
- 独立键盘实验报告
- 独立键盘的检测
- 单片机的独立键盘
- 51单片机的独立键盘
- 独立键盘
- 4个独立键盘的同时使用
- [基本实验] 调用独立的javascript代码
- 独立按键与定时器的使用练习
- lab1的实验练习答案
- 51单片机独立键盘
- 独立键盘检测
- 用独立键盘实现数码管计数的启动与停止
- 【实验四】独立看门狗实验
- 独立看门狗实验
- 独立看门狗实验
- 电脑键盘指法的正确练习步骤
- 基于独立Zookeeper集群的Hbase 安装配置实验
- 用户控件之类的东西,主要用户控件访问页面
- 为什么在执行模拟器后总产生temp.DefaultColorPhone的文件夹
- 黑客教程系列-简明批处理第二章
- 【原创】fast wcsnicmp 算法实现
- 自动过账MRKO生成IDOC
- 独立键盘的练习实验
- bsearch and qsort
- Struts2 action 输出 JSON
- oracle Flashback详解
- Session 相关信息
- && vs || 与 if vs elseif vs else 效率比较
- JFreeChart_前言
- 如何在 ASP.NET 应用程序中实现模拟
- 传智播客—Android(三) 数据存储之二 SharedPreferences