你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> 单片机C语言程序设计:定时器控制数码管动态显示

单片机C语言程序设计:定时器控制数码管动态显示

关键字:单片机 C语言 程序设计 定时器 作者:admin 来源:不详 发布时间:2018-05-18  浏览:14

/*  名称:定时器控制数码管动态

显示

说明:8 个数码管上分两组动

态显示年月日与时分秒,本例的

位显示延时用定时器实现。

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//段码,最后一位是“-”的段码

 

uchar code

DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};

//待显示的数据:09-12-25 与 23-59-58(分两组显示)

uchar code Table_of_Digits[][8]={{0,9,10,1,2,10,2,5},{2,3,10,5,9,10,5,8}};

uchar i,j=0; 

uint t=0; 

//主程序

void main()

{

P3=0x80; 

                           //位码初值

TMOD=0x00;    //计数器 T0 方式 0

TH0=(8192-4000)/32; //4ms 定时

TL0=(8192-4000)%32;

IE=0x82;

                          TR0=1;          //启动 T0 

                         while(1);

 

}

//T0 中断函数控制数码管刷新显示

void DSY_Show() interrupt 1

{

TH0=(8192-4000)/32;  //恢复初值

TL0=(8192-4000)%32;

 

P0=0xff;           //输出位码和段码

P0=DSY_CODE[Table_of_Digits[i][j]];

P3=_crol_(P3,1);

 

j=(j+1)%8;     //数组第 i 行的下一字节索引 

if(++t!=350) return;   //保持刷新一段时间

t=0;

                 i=(i+1)%2;         //数组行 i=0 时显示年月日,i=1 时显示时分秒

 

}

单片机C语言程序设计:定时器控制数码管动态显示
扩展阅读:100 000s 以内的计时程序

 

编辑:admin  最后修改时间:2018-05-18

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4