数码管电子时钟(显示时、分、秒)

   日期:2020-05-11     浏览:128    评论:0    
核心提示:Proteus 仿真电路图:C51代码:#includetypedef unsigned char uchar;typedef unsigned int uint;uchar code num[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; // 0~9字码uchar miao=0, fen=0, shi

视频效果:

基于51单片机的数码管时钟设计

Proteus 仿真电路图:

C51代码:

#include<reg51.h>

typedef unsigned char uchar;
typedef unsigned int uint;

uchar code num[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};  // 0~9字码

uchar miao=0, fen=0, shi=0;  //进位标志位

uint i=0;  //计时

uchar miao_L, miao_H, fen_L, fen_H, shi_L, shi_H;  //时、分、秒的个位(xxx_L)和十位(xxx_H) 

void delay(uint x){  //延时函数 
	while(x--);
}

void T0_init(){                     //定时器 0 初始化 
	TMOD = 0x10; //工作方式 1
	TH0 = 0xfc;  //高八位赋初值 65536-1000=64536 = fc18H
	TL0 = 0x18;	 //底八位赋初值
	EA = 1;	     //开总中断
	ET0 = 1;     //开 T0 中断
	TR0 = 1;     //启动 T0
}

void display(){  //显示
	
	P2 = 0x20;  //秒与分间隔线
	P0 = 0xbf;	
	delay(500);
		
	P2 = 0x04;  //分与时间隔线
	P0 = 0xbf;
	delay(500);


	P2 = 0x80;  //数码管位选 1000 0000
	P0 = num[miao_L];  //秒个位
	delay(500);

	P2 = 0x40;	//数码管位选 0100 0000
	P0 = num[miao_H];  //秒十位
	delay(500);

	P2 = 0x10;	//数码管位选 0001 0000
	P0 = num[fen_L];  //分个位
	delay(500);

	P2 = 0x08;	//数码管位选 0000 1000
	P0 = num[fen_H];  //分十位
	delay(500);

	P2 = 0x02;	//数码管位选 0000 0010
	P0 = num[shi_L];  //分个位
	delay(500);
	
	P2 = 0x01;	//数码管位选 0000 0001
	P0 = num[shi_H];  //分十位
	delay(500);

}

void main(){

	T0_init();  //定时器初始化

	while(1){

		display();  //显示 
   }

}

void int1() interrupt 1{  //中断服务函数
 	 
	 i++;

	 if(i == 100){
	 	i = 0;  //满一秒清零
	 	miao++;	//i = 100 为一,秒标志位加 1

		if(miao == 60){
			miao = 0;  //满一分清零
			fen++;

			if(fen == 60){
				fen = 0;  //满一时清零
				shi++;

				if(shi == 24){
					shi = 0;  //24小时制
				}
			}
		}

		miao_L = miao%10;  //秒个位
		miao_H = miao/10;  //秒十位

		fen_L = fen%10;  //分个位
		fen_H = fen/10;  //分十位

		shi_L = shi%10;  //分个位
		shi_H = shi/10;  //分十位

	 }
 }
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服