//*******时间程序**************//

//*******2010-7-14 00:31:39 *******//

//******* Z X C ******************//

//*******晶体振荡器 12.000MHZ 共阳数码管***//

//*******头文件*********************//

#include

#define uchar unsigned char

#define uint unsigned int

sbit H_KEY=P1^0; //时调整键

sbit M_KEY=P1^1; //分调整键

sbit S_KEY=P1^2; //秒调整键

void sec_tiao(); //秒调整函数

void min_tiao(); //分调整函数

void hou_tiao(); //时调整函数

//********数码管显示与数组关系******//

char DATA_sled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

/* 0 1 2 3 4 5 6 7 8 9 */

uchar hour=21, min=00, sec=00; //时间初始化

uchar deda=0;

void delay(uchar count); //延时模块

void zhh(); //走时模块

void disp(); //十进制转换模块

/***采用定时器0中断,50MS更新一次***/

void init_timer()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

IE=0x82;

TR0=1;

}

//**************************//

void T0_srv(void) interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

deda++;

}

/*************************

函 数 名:hou_tiao

功 能:时调整

说 明:

入口参数:无

返 回 值:无 ************/

//*******秒调整模块 S***********//

void sec_tiao()

{

while(!S_KEY) disp(); //等待秒调整键松开

deda=0;sec++; //毫秒清零、秒加1

if(sec==60) sec=0; //如果秒等于60,秒变0

}

//*******分调整模块 M***********//

void min_tiao()

{

while(!M_KEY) disp(); //等待分调整键松开

sec=0;min++; //秒清零、分加1

if(min==60) min=0; //如果分等于60,分变0

}

//*******时调整模块 H***********//

void hou_tiao()

{

while(!H_KEY) disp(); //等待时调整键松开

sec=0;hour++; //秒清零,时加1

if(hour==24) hour=0; //如果时等于24,时变0

}

/*********程序**************/

void zhh()

{

if(deda>=20){sec++;deda=0;}

if(sec==60){min++;sec=0;}

if(min==60){hour++;min=0;}

if(hour==24){hour=0;}

}

//******十进制转换模块*****//

void disp()

{

P0=DATA_sled[hour/10]; P2=0xfe; delay(1);

P0=DATA_sled[hour%10]; P2=0xfd; delay(1);

P0=DATA_sled[min/10]; P2=0xfb; delay(1);

P0=DATA_sled[min%10]; P2=0xf7; delay(1);

P0=DATA_sled[sec/10]; P2=0xef; delay(1);

P0=DATA_sled[sec%10]; P2=0xdf; delay(1);

}

//*******延时模块************//

void delay(uchar count)

{

uchar i,j;

for(i=0;i

for(j=0;j<120;j++);

}

//*******主程序*************//

void main()

{

init_timer(); //定时模块

while(1) //无限循环

{

if(!H_KEY) hou_tiao(); //时调整模块

if(!M_KEY) min_tiao(); //分调整模块

if(!S_KEY) sec_tiao(); //秒调整模块

zhh(); //走时模块

disp(); //十进制转换模块

}

}

此程序已经硬件调试通过,希望采纳!

取消

评论

c语言让数码管显示时间,请问51单片机肿么编写程序让8个数码管显示时间(时分秒)...相关推荐

  1. c语言调用子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /**************************************************************************** ...

  2. 怎么做c语言的子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /**************************************************************************** ...

  3. 51单片机:中断实现按键按一下数码管从00加到99循环(C语言)

    51单片机:中断实现按键按一下数码管从00加到99循环(C语言) 题目要求: 在51单片机上通过C语言编写代码,使用中断,按键按一下数码管上面的数字从00开始加1,实现00--99的循环 准备工作: ...

  4. 51单片机+L293D控制直流电机起保停+数码管PWM调速显示

    51单片机+L293D控制直流电机起保停+数码管PWM调速显示 PWM速度10级可调 采用L293D驱动 数码管显示PWM当前占空比 可优化的地方是数码管可以采用其他驱动芯片来驱动,提高驱动能力和减少 ...

  5. 51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真

    51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真 说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1, ...

  6. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  7. c语言T1中断程序编写步骤,用51单片机中断编写的4x4键盘程序

    当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章 用51单片机中断编写的4x4键盘程序 作者:未知   来源:山涧一溪流   点击数:-  更新时间:2014年06 ...

  8. 带中文字库的240128的c语言程序,51单片机-240128液晶程序与调试

    原标题:51单片机-240128液晶程序与调试 今天终于把金鹏OCMJ8X15D-2液晶(240128点阵带字库无触屏液晶)调好了. 这块液晶能显示8行15个汉字,还有放大字形,从16*16点放大到3 ...

  9. 51单片机红外通信及控制LED灯(LCD1602显示)

    51单片机红外通信及控制LED灯(LCD1602显示) 大家好,又和大家见面了,离上一次DS18B20传感器的文章已经过去了一个星期了,这期我将给大家带来,基于STC89C52芯片和HS0038红外接 ...

最新文章

  1. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
  2. @Quelifier的用法,
  3. TikTok Shop新增三大站点,已开放申请
  4. 三招看穿ERP软件是否可行
  5. jvm默认垃圾收集器
  6. 基于JAVA+SpringBoot+Mybatis+Vue+MYSQL的智慧养老管理系统
  7. linux tail 命令
  8. 用c语言在Clion平台编写system(“cls“)清屏函数无效甚至异常解决方法。
  9. 禁忌搜索算法(Tabu Search)
  10. 德标螺纹规格对照表_德标 国标,国际标准中英文对照表
  11. 【材料力学回顾】弯曲正应力公式
  12. Android Studio 配置Git,移动端h5页面开发教程百度云资源
  13. 互联网中的裂变是什么?
  14. View补间动画Animation运行原理
  15. Link第一次打包与部署笔记
  16. Luogu5234[JSOI2012]越狱老虎桥
  17. JDK 17:Java 17 中的新特性
  18. phpstudy安装php8.0和php8.1的方法(内含VC运行库)
  19. 干货分享 | GopherChina 2019北京大会PPT下载
  20. Centos75启动盘安装系统无法进入图形安装界面-提示dracut-pre-udev[348]:modprobe:ERROR: could not inset ‘edd‘

热门文章

  1. 亚马逊云科技云知识总结
  2. 【软件工程】什么是软件工程
  3. 尤雨溪:Vue Function-based API RFC
  4. 型号不同的计算机内存条可以通用么,不同频率的内存条可以混用吗
  5. Python实现抠图换背景
  6. 揪出毛孔粗大4个致命原因
  7. 机器学习笔记 - YOLOv7 论文简述与推理
  8. 【非洲秃鹫优化算法】基于非洲秃鹫优化算法求解单目标优化问题(AVOA)含Matlab源码
  9. 3.1 机器学习 --- 决策树
  10. 【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。