51单片机多功能LED点阵显示数字时钟

1. 在16X16LED点阵可以显示文字和图形;
2. 可以水平滚动显示hh:mm:nn;
3. 可以通过Key1和Key2调整时间
4.
5.

数字时钟
这段程序是在PRTUES上完全好使
你可以根据 程序自己在PROTUES上画图

#include<reg51.h>
#define uint unsigned int
char code tab[]=;
char code table[]=;
sbit duan=P2^5;
sbit wei=P2^6;
sbit button1=P1^0;
sbit button2=P1^1;
sbit button3=P1^2;
sbit button4=P1^3;
sbit button5=P1^4;
sbit button6=P1^5;
sbit button7=P1^6;
sbit button8=P1^7;
void delay(uint z);
void start();
void display();
static char a,b,c,d,k,e,f,g,h;
static char num1,num2,num3,num4;
void main()
{ start();
while(1)

if(button2==0)
if(button3==0)
if(button4==0)
{ delay(10);
if(button4==0)
}}
while(button4==0)
}
if(button5==0)
{ delay(10);
if(button5==0)
}
while(button5==0)
}
if(button6==0)
{ delay(10);
if(button6==0)
}
while(button6==0)
}
if(button7==0)
{delay(10);
if(button7==0)
{num3--;
if(num3<0)
}
while(button7==0)
}
if(button8==0)
{delay(10);
if(button8==0)

while(button8==0)
}
display();
} }

void start()
{ EA=1;
TMOD=0x01;ET0=1;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;}

void delay(uint z )
{ uint x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);}

void timer1() interrupt 1
{ TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
k++;
if(k==2) //总忘k把清零
{k=0;num1++;
if(num1==100)
{num1=0;num2++;
if(num2==60){num2=0;num3++;
if(num3==60){num3=0;num4++;
if(num4==24)}
}} }}

void display()
{a=num1/10;b=num1%10;c=num2/10;d=num2%10;
e=num3/10;f=num3%10;g=num4/10;h=num4%10;
wei=1;P0=0x80;wei=0;
duan=1;P0=tab[b];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x40;wei=0;
duan=1;P0=tab[a];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x20;wei=0;
duan=1;P0=tab[d];duan=0;
duan=1;P0=table[d];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x10;wei=0;
duan=1;P0=tab[c];duan=0;delay(1);
P0=0x00;

wei=1;P0=0x08;wei=0;
duan=1;P0=table[f];duan=0;delay(1);
duan=1;P0=tab[f];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x04;wei=0;
duan=1;P0=tab[e];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x02;wei=0;
duan=1;P0=tab[h];duan=0;
duan=1;P0=table[h];duan=0;delay(1);
P0=0x00;
wei=1;P0=0x01;wei=0;
duan=1;P0=tab[g];duan=0;delay(1);
P0=0x00;

}
温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机多功能LED点阵显示数字时钟
数字时钟 这段程序是在PRTUES上完全好使 你可以根据 程序自己在PROTUES上画图 include<reg51.h> define uint unsigned int char code tab[]=;char code table[]=;sbit duan=P2^5;sbit wei=P2^6;sbit button1=P1^0;sbit button2=P1^1;sbit button3=P1^2;sbit button4=P1^3;sbit button5=...

急求一个用51单片机编的可按键调时的数字时钟程序,数码管显示,C语言...
lcd_wcmd(0x38);\/\/设置LCD为16X2显示,5X7点阵,八位数据借口delay(1);lcd_wcmd(0x0c);\/\/LCD开显示及光标设置(光标不闪烁,不显示"-")delay(1);lcd_wcmd(0x06);\/\/LCD显示光标移动设置(光标地址指针加1,整屏显示不移动)delay(1);lcd_wcmd(0x01);\/\/清除LCD的显示内容delay(1);}\/\/闰年的计算bit lea...

求教一个51单片机程序。。(LCD电子时钟)
1.使用文字型LCD显示器显示当前时间。2.显示格式为“时时:分分:妙秒”。3.用4个功能键操作来设置当前时间。功能键K1-K4功能如下:①K1:进入设置现在的时间。②K2:设置小时。③K3:设置分钟。④K4:确认完成设置。4. 程序执行后工作指示灯LED闪烁,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。可以帮忙...

用51单片机以及8*8点阵显示英文字母或者数字(最好是全部数字和字母都说...
8*8点阵是动态扫描的 静态显示也是动态扫描的结果。比如说下面这个程序:include <AT89X52.H> include "74HC595.H"unsigned char code a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code b[]={0x00,0x7F,0x40,0x40,0x40,0x00,0x00,0x00};\/*"L",0*\/ void mai...

51单片机开发板功能介绍
51单片机开发板具备多种功能,旨在提供全面的实践和学习体验。首先,它配置了8个LED灯,可用于基础IO操作实践,也可作为其他程序中的指示灯。两个四联8段数码管用于显示温度、欢迎信息和时间,展现数字和字符显示的能力。高亮8*8点阵可以用于数字、字母和小游戏的开发,如经典的贪吃蛇游戏。开发板还配备了...

51单片机开发板的功能介绍
1、8个LED灯,可以练习基本单片机IO操作,在其他程序中可以做指示灯使用。2、2个四联8段数码管,显示温度数据,HELLO欢迎词、时钟等。3、高亮8*8点阵,如练习数字,字母,图片显示,或者小游戏的开发如贪吃蛇等。4、4个独立按键,可以配置为中断键盘,为程序的按键扫描节省更多的时间。5、8个AD按键,...

用单片机设计一个数字时钟
用单片机设计一个数字时钟要求:以24个小时为一个周期,显示时分秒。有校时功能,可以分别对时分秒进行单独校时,使其校正到标准时间。计时过程具有报时功能,当时间到达整点前5秒进行... 用单片机设计一个数字时钟 要求:以24个小时为一个周期,显示时分秒。有校时功能,可以分别对时分秒进行单独校时,使其校正到标准...

如何制作LED数字电子钟
去购一块 “数字时钟 集成电路IC”,再搞一块 LED显示屏 模块,配套的 电源变压器 ,自己组装啦。也可直接买一个全套的散件,回来简单的焊吧焊吧就可用啦。

写了一个C51的LED点阵屏的函数。高手们帮忙看看啊。出了点小问题,我...
include"distable.h"改为#include〈distable.h〉 把distable头文件里面的内容发来看看。可能问题出在distable

单片机点阵显示问题
0};\/*定义运行状态*\/uchar data STATE = 0;\/*STATE = 0;秒表*\/\/*STATE = 4,或者7,时钟运行*\/\/* STATE = 6,时钟时调整 *\/bit bdata SND = 0; \/* 秒表START(开始) *\/bit bdata RST = 0; \/*秒表RESET(复位)*\/\/*数码管显示编码“0”-“9”,...

相似回答