单片机电子时钟和led流水灯的结合(仿真+程序)

2019-12-03来源: 51hei关键字:单片机  电子时钟  led流水灯

这是一个基于定时器的电子时钟,以前总是觉得数码管和LED挺简单的,谁知道组合起来还是有些困难的,但还是一一的解决了程序中的bug,新手也可以借鉴一下,感觉还挺有趣的。如果发现程序中有什么bug可以回帖相互探讨一下。

单片机源程序如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code huayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};                                   //花样1

uchar code huayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe};                                   //花样2

uchar code huayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};           //花样3

uchar code huayang4[]={0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};                                                                                           //花样4

uchar code Segcode[13]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf, 0xC7};

uchar Dispbut[8]={10,10,10,10,10,10,10,10};          

uchar Bitselect[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

uchar Displayer[8]={0x00};

uint i,a,b;

sbit DU=P2^0;

sbit WE=P2^1;

#define          Led_rod_DU    11        

uchar Sec=0,Min=30,Hour=12;

void Display(void)

{

        static uchar Num=0;

        DU=1;

        P0=0xff;

           DU=0;

        

        WE=1;

        P0=Bitselect[Num];

        WE=0;


        DU=1;

        P0=Segcode[Dispbut[Num]];

        DU=0;

        

        Num++;

        if(Num>=8)

                Num=0;

}



void Timer0_int()interrupt 1

{

        TH0=(65536-5000)/256;                                                            

        TL0=(65536-5000)%256;

        Display();

}

void Timer1_int()interrupt 3

{

        static uint Timer1_Count=0;

        TH1=(65536-50000)/256;                                                            

        TL1=(65536-50000)%256;

        Timer1_Count++;

        if(Timer1_Count>=20)

        {

                Timer1_Count=0;

                Sec++;

                if(Sec>59)

                {

                        Sec=0;

                        Min++;

                        if(Min>59)

                        {

                                Min=0;

                                Hour++;

                                if(Hour>23)

                                        Hour=0;

                        }

                }

                Dispbut[0]=Hour/10;

                Dispbut[1]=Hour%10;

                Dispbut[2]=Led_rod_DU;

                Dispbut[3]=Min/10;

                Dispbut[4]=Min%10;

                Dispbut[5]=Led_rod_DU;

                Dispbut[6]=Sec/10;

                Dispbut[7]=Sec%10;        

        }

}

void delay(uint i)

{

  while(i--)

   for(b=0;b<100;b++)

   ;

}


void liushui()

{

  a=0xfe;

  for(i=0;i<8;i++)

  {

    P1=a;

        a=_crol_(a,1);

        delay(200);

  } 

  a=0xfc;

  for(i=0;i<8;i++)

  {

    P1=a;

        a=_crol_(a,1);

        delay(200);

  }                        

  for(i=0;i<14;i++)

  {

    P1=huayang1[i];

        delay(200);

  }

  for(i=0;i<14;i++)

  {

    P1=huayang2[i];

        delay(200);

  }

  for(i=0;i<14;i++)

  {

    P1=huayang3[i];

        delay(200);

  }

  for(i=0;i<14;i++)

  {

    P1=huayang4[i];

        delay(200);

  }

}

……………………



关键字:单片机  电子时钟  led流水灯 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481792.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现
下一篇:AT89C51单片机十字路口交通灯设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

数据的加密传输——单片机上实现TEA加密解密算法
各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性。常用的加密解密算法比如DES、RSA等,受限于单片机的内存和运算速度,实现起来比较困难,但一种叫TEA的加密算法特别适合单片机使用。TEA(Tiny Encryption Algorithm)是一种简单高效的加密算法,以加密解密速度快,实现简单著称。算法很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。目前我只知道QQ一直用的是16轮TEA。我之前做过一个数字的无线对讲机,把语音数据加密后
发表于 2019-12-11
通过PICC编译环境下,对PIC单片机程序进行操作研究
PICC基本上符合ANSI标准,但是不支持函数的递归调用,其主要原因是PIC单片机特殊的堆栈结构。PIC单片机中的堆栈是硬件实现的,其深度已随芯片固定,无法实现需要大量堆栈操作的递归算法;另外在PIC单片机中实现软件堆栈的效率也不是很高。为此,PICC编译器采用一种“静态覆盖”技术,以实现对C语言函数中的局部变量分配固定的地址空间。经这样处理后产生出的机器代码效率很高。当代码量超过4KB后,C语言编译出的代码长度与全部用汇编代码实现的差别已经不是很大(<10%),当然前提是在整个C代码编写过程中需时时注意所编写语句的效率。PICC中的变量类型和标准C语言一样,这里不再重复。为了使编译器产生最高效的机器码,PICC把单片机
发表于 2019-12-11
通过PICC编译环境下,对PIC单片机程序进行操作研究
PIC单片机的IIC接口程序
PIC单片机的IIC接口程序IniTI2CBusMaster;************************************************************TxmtStartBit   bsf    Bus_Busy                       ; on a start condiTIon bus is busy 
发表于 2019-12-11
PIC单片机是什么_PIC单片机介绍
PIC单片机(Peripheral Interface Controller)是一种用来开发的去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力—存储器容量却很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变(1*)。如果是同样的体系结构,时钟频率较高的处理能力会较强。这里用字来解释程序
发表于 2019-12-11
PIC单片机实用教程基础篇
PIC单片机(Peripheral Interface Controller)是一种用来开发的去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。PIC 单片机是一个小的计算机PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力—存储器容量却很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变(1*)。如果是同样的体系结构,时钟频率较高的
发表于 2019-12-11
PIC单片机的程序设计经验分享
PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习1、PIC单片机程序的基本格式先介绍二条伪指令:EQU ——标号赋值伪指令ORG ——地址定义伪指令PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考
发表于 2019-12-11
PIC单片机的程序设计经验分享
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved