利用单片机的数码管模拟时钟的显示时间

2019-08-15来源: eefocus关键字:单片机  数码管  模拟时钟  显示时间

#include

 

#define SEGPORT P0

sbit seg_select = P2^1;        

sbit bit_select = P2^0;          

 

unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};               

unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 

unsigned char TempData[8];

 

unsigned char shi = 20, fen = 54, miao = 55;

 

void display()

{

  static unsigned char i = 0;

  SEGPORT = 0x0;

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = 0xff;

  bit_select = 1;

  bit_select = 0;

  SEGPORT = TempData[i];

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = weima[i];

  bit_select = 1;

  bit_select = 0;

  

i++;

  if(8 == i)

{

i = 0;

    }  

}

 

void time0_init(void)

{

  EA = 1;                              //打开总中断

  TMOD |= 0x01;                        //设置定时器工作方式

  TH0 = (65536 - 20000) / 256;

  TL0 = (65536 - 20000) % 256;        //设置定时器初值

  ET0 = 1;                           //打开定时器中断

  TR0 = 1;

 

}

 

void timer0_isr() interrupt 1

{

  static unsigned char i = 0;

          TH0 = (65536 - 20000) / 256;

  TL0 = (65536 - 20000) % 256;    //设置定时器初值,

  i++;

  

if(50 == i)

{

i = 0;

miao++;

if(60 == miao)

{

 

miao = 0;

fen++;

  

if(60 == fen)

{

fen = 0;

shi++;

  

if(24 == shi)

{

shi = 0;

  

}

}

}

}

TempData[0] = duanma[shi / 10];

TempData[1] = duanma[shi % 10];

TempData[2] = 0x40;

TempData[3] = duanma[fen / 10];

TempData[4] = duanma[fen % 10];

TempData[5] = 0x40;

TempData[6] = duanma[miao / 10];

TempData[7] = duanma[miao % 10];

}

 

void time1_init(void)

{

          EA = 1;

  TMOD |= 0x10;

  TH1 = (65536 - 20000) / 256;

  TL1 = (65536 - 20000) % 256;

  ET1 = 1;

  TR1 = 1;

 

}

 

void time1_isr() interrupt 3

{

          TH1 = (65536 - 1000) / 256;

  TL1 = (65536 - 1000) % 256;     

  display();

}               

 

void main()

{

time0_init();

time1_init();

while(1)

{

   

         }

   

}


关键字:单片机  数码管  模拟时钟  显示时间

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

上一篇:单片机之利用按键来使数码管上两位示数增加
下一篇:共阴极数码管的显示刷新

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

推荐阅读

51单片机 软件模拟IIC

char suba, unsigned char *str, unsigned char len){unsigned char i;iic_start(); //启动总线iic_send_byte(sla); //发送器件地址if(0 == ack){return ERR;}iic_send_byte(suba); //发送器件子地址if(0 == ack){return ERR;}for(i = 0; i < len; i++){iic_send_byte(*str); //发送数据delay_us(1); //必须延时等待芯片内部自动处理数据完毕if(0 == ack){return ERR;}str++;}iic_stop
发表于 2019-08-24

51单片机 串口发送数据(只是发送)

51单片机 串口发送数据(只是发送)用于调试。#include <reg51.h> #define uchar unsigned char #define uint unsigned int #define XTAL 11059200 // CUP 晶振频率#define baudrate 9600 // 通信波特率  /*************************************************函数:uart_init功能:初始化串口出口:void入口:void
发表于 2019-08-24

51单片机 LCD1602显示

引脚图#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define out P0sbit RS=P2^7;sbit RW=P2^6;sbit E=P2^5; void lcd_initial(void); //LCD初始化函数void check_busy(void);    //检查是否忙碌函数void write_command(uchar com); //写命令函数void write_data(uchar dat);   //写数
发表于 2019-08-24
51单片机 LCD1602显示

51单片机 nrf24l01收发

引脚图引脚1:GND,接地端;引脚2:VCC,1.9V~3.6V引脚3:CE, NRF24L01模式控制端引脚4:CSN,片选信号引脚5:SCK,SPI时钟输入端引脚6:MOSI,SPI数据输入端引脚7:MISO,SPI数据输出端引脚8:IRQ,中断输出端,低电平使能,即中断输出低电平对于电源不要超过3.6V,否则可能损坏芯片对于端口引脚,可以耐压5V,即可以接TTL端口发送端#include <reg51.h> #define uchar unsigned char#define TX_ADR_WIDTH   5  // 5字节宽度的发送/接收地址#define
发表于 2019-08-24
51单片机 nrf24l01收发

51单片机 矩阵键盘

  uchar code KEY_TABLE[] ={    0x77,0xB7,0xD7,0xE7 0x7B,0xBB,0xDB,0xEB 0x7D,0xBD,0xDD,0xED 0x7E,0xBE,0xDE,0xEE};//高四位是列,低四位是行 uchar code TABLE[] ={    '1', '2', '3', '4', '5', '6', '7', '8', '9',    '
发表于 2019-08-24
51单片机 矩阵键盘

STM32单片机(二)-ST_LINK V2连接与代码下载

学一下,这里就不说了。注重你能把代码,烧录进单片机。代码后面再讲。教学视频,参考正点原子官网的资料。链接:https://pan.baidu.com/s/1fR1qffMPnATw_qtSC6mKww   提取码:ge81 4、配置然后点击Settings。在跳出的对话框中进行如下选择,可以看到SW Device信息框中出现目标芯片的信息。点击确定。通过add和remove,选择你板子的flash 下载 ,也可以调试了 下载成功
发表于 2019-08-23
STM32单片机(二)-ST_LINK V2连接与代码下载

小广播

何立民专栏

单片机及嵌入式宝典

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

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