[51]数码管作时钟
来源:互联网 发布:python实验元组与列表 编辑:程序博客网 时间:2024/05/29 13:05
#include<reg52.h>
unsigned int led[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //p0端0到f,0x7f为点
unsigned int ledx[]= {0x00,0x0e,0x0d,0x0b,0x07,0xff} ; //p2端都亮,到都灭
void delay(unsigned int xms) //延时函数 //延时程序
{
unsigned int x,y;
for(x=xms; x>0; x--)
for(y=110; y>0; y--);
}
sbit add = P3^4; //加按键
sbit minus = P3^5; //减按键
int a=0,b=0,c=0,d=0; //对应位数
int num=0; //计时变量
unsigned int wait=4; //定义等待时间
unsigned int youdian=0; //小数点显示判断
void main(void)
{
TMOD=0x01; //工作方式
TH0=(65536-45872)/256; // 赋值
TL0=(65536-45872)%256; //赋值
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //自动定时器0
while(1)
{
P2=ledx[1];
P0=led[a];
delay(wait);
P2=ledx[2];
P0=led[b];
delay(wait);
P2=ledx[3];
P0=led[c];
delay(wait);
P2=ledx[4];
P0=led[d];
delay(wait);
if(youdian==1)
{
P0=0x7f;
P2=0x0d;
delay(wait);
}
if(d==-1)
{
c--;
d=9;
}
if(c==-1)
{
b--;
c=6;
}
if(b==-1)
{
a--;
b=9;
}
if(a==-1)
{
a=5;
b=9;
c=5;
d=9;
}
if(d==10)
{
c++;
d=0;
}
if(c==6)
{
b++;
c=0;
}
if(b==10)
{
a++;
b=0;
}
if(a==6)
{
a=0;
}
}
}
void T0_timer() interrupt 1
{
TH0=(65536-45872)/256; // 赋值
TL0=(65536-45872)%256; //赋值
num++;
if(minus==0)
{
d--;
num=0;
while(!minus)
{
num=0;
P2=ledx[1];
P0=led[a];
delay(wait);
P2=ledx[2];
P0=led[b];
delay(wait);
P2=ledx[3];
P0=led[c];
delay(wait);
P2=ledx[4];
P0=led[d];
delay(wait);
}
}
else if(add==0)
{
d++;
num=0;
while(!add)
{
num=0;
P2=ledx[1];
P0=led[a];
delay(wait);
P2=ledx[2];
P0=led[b];
delay(wait);
P2=ledx[3];
P0=led[c];
delay(wait);
P2=ledx[4];
P0=led[d];
delay(wait);
}
}
else if(num==20)
{
d++;
num=0;
if(youdian==0)youdian=1;
else if(youdian==1)youdian=0;
}
}
0 0
- [51]数码管作时钟
- 单片机数码管时钟显示
- 数码管显示时钟
- DS1302时钟数码管显示
- 数码管显示时钟
- 51C程序(数码管计算器和时钟)
- 51单片机 时钟程序设计 数码管可闪烁显示数值
- 时钟一:51单片机用替换的方法在数码管上显示时钟
- 时钟数码管GL5642AH调试心得
- 利用数码管显示的时钟
- [51]数码管
- 51---数码管
- 3、时钟数码管显示--可调时
- 第一个项目 四位数码管时钟
- nexys3正式开始练手-数码管时钟显示
- 基于数码管的简单时钟系统
- 【单片机】数码管时钟掉点保存
- C51单片机实现六位数码管时钟
- 一个学习网站
- 《leetCode》:House Robber III
- lex语言词法分析
- lightoj 1232 - Coin Change (II) 完全背包
- 自定义View的时候onMeasure()理解
- [51]数码管作时钟
- 当在edittext点击输入弹出输入法,底部菜单就被挤到输入法上面
- pin controller driver代码分析
- 安卓Animator动画详解!
- SignalR在线聊天
- 遇到printf输出问题
- 使用 Spring 进行单元测试
- 把Java程序打包成jar文件包并执行
- select, iocp, epoll,kqueue及各种I/O复用机制