实验内容:

利用所学的单片机知识及电路知识编程实现显示时钟,选中 8 位数码管,编程实现 8 位数码管示时钟,显示格式为 XX(小时) —XX(分钟)—XX(秒)。

实验步骤:根据实验室二数码管的电路原理图编写 C 程序,调试并烧写入单片机;

数码管电路如下:

效果如下:

​​​​​​​​​​​​​​​​​​​​​​​​​​​​

代码如下:

#include <REGX52.H>
#include <intrins.h>
typedef unsigned char uchar;
//共阴段码(0-9)
uchar code leddata[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D, 0x7D,0x07,0x7F,0x6F};
uchar hour=0,minute=0,second=0;//全局变量时分秒
uchar count=0;
//定时器初始化
void Timer0Init()       //50毫秒@12.000MHz
{TMOD &= 0xF0;     //设置定时器模式TMOD |= 0x01;     //设置定时器模式TL0 = 0xB0;           //设置定时初值TH0 = 0x3C;            //设置定时初值TF0 = 0;           //清除TF0标志TR0 = 1;          //定时器0开始计时ET0=1;              //打开小开关EA=1;               //打开总开关
}
//延时函数
void delay(unsigned int ms){ while(ms--){unsigned char i, j;_nop_();i = 2;j = 199;do{while (--j);} while (--i);}
}
/*  显示时钟函数  参数1:时  参数2:分  参数3:秒  返回值:无 */
void display(uchar hour,uchar minute,uchar second){int i;for(i=1;i<=8;i++){switch(i){case 1: P2_4=0;P2_3=0;P2_2=0;P0=leddata[second%10];break;case 2: P2_4=0;P2_3=0;P2_2=1;P0=leddata[second/10];break;case 3: P2_4=0;P2_3=1;P2_2=0;P0=0x40;break;//显示  —case 4: P2_4=0;P2_3=1;P2_2=1;P0=leddata[minute%10];break;case 5: P2_4=1;P2_3=0;P2_2=0;P0=leddata[minute/10];break;case 6: P2_4=1;P2_3=0;P2_2=1;P0=0x40;break;//显示  —case 7: P2_4=1;P2_3=1;P2_2=0;P0=leddata[hour%10];break;case 8: P2_4=1;P2_3=1;P2_2=1;P0=leddata[hour/10];break;}delay(1);P0=0;        //消影}
}
//定时器中断函数
void interrupt_T0()interrupt 1
{TL0 = 0xB0;       //重新设置定时初值TH0 = 0x3C;      //重新设置定时初值count++;if(count==20){//一秒时间到了~count=0;     second++;if(second==60){second=0;minute++;if(minute==60){minute=0;hour++;if(hour==24)hour=0;               }}}
}
void main(){Timer0Init();//定时器T0初始化while(1){display(hour,minute,second); //显示时间}
}

电路的晶振是12Mhz   就能让时间没有误差,假如电路用的晶振是11.0592的话  得改定时器的装入初值为,TL0 = 0x00;       TH0 = 0x4C;  ,中断那里也是同样,这样就能保证计时的精度了

​​​​​​​​​​​​​​

【51单片机】通过定时器中断 在8位数码管显示时间相关推荐

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

    //*******时间程序**************// //*******2010-7-14 00:31:39 *******// //******* Z X C **************** ...

  2. 51单片机学习--定时器--中断--串口通信

    51单片机学习–定时器–中断–串口通信 定时器–中断–串口通信 中断分类 定时器中断 外部中断 串口中断 基本概念 对于单片机来讲, 中断是指 CPU 在处理某一事件 A 时, 发生了另一事件 B, ...

  3. 51单片机:定时器实现1秒时数码管数字自动加一并循环

    51单片机:定时器实现1秒时数码管数字自动加一并循环 题目要求: 定时器中断实现每来1s,P1口接的一位共阳极数码管显示数+1, 加到9之后再来1s清零并重复上述过程 代码如下: (仅供参考) /* ...

  4. 使用定时器的中断方式。具体功能描述如下:使用定时器控制三位数码管显示时间,也可以轻易改为两位数码管显示时间

    #include <REGX52.H> unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0 ...

  5. 三、51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)

    1,目标 使用51单片机控制8位数码管,分别滚动显示单个数字0~7,程序运行之后,单片机先控制最左边的第一位数码管显示0,其他的熄灭,延时一段时间之后,控制左边第二个数码管显示1,其它熄灭,以此类推, ...

  6. 基于51单片机的三路自动数字电压表仿真ADC0809 数码管显示程序设计

    硬件设计. 之前讲过的几种数字电压表均是一路输入,今天讲一下多路输入的电压表,显示是采用数码管显示,ADC采用的是TI的ADC0809. 以AT89C51单片机为核心,起着控制作用.系统包括数码管显示 ...

  7. 基于51单片机的电子时钟万年历温度仿真数码管显示

    硬件设计 仿真图1: A. 由数码管作为显示器,三个按键可以设置时间. 仿真图2: A 由数码管作为显示器,可通过开关设置年月日星期等时间: 程序设计1 #include <reg51.h> ...

  8. 51单片机ADC0808实时转换电压十进制形式数码管显示

    文章目录 介绍 Proteus仿真效果运行图 源程序 主函数 介绍 ADC0808实时转换电压 以十进制显示在数码管上 Proteus仿真效果运行图 源程序 主函数 #include<reg52 ...

  9. 基于51单片机的程控放大器proteus仿真程序设计 数码管显示

    硬件设计 (末尾附文件) 仿真图: 基于数码管显示,具有方波 正弦波 三角波 锯齿波放大功能,放大倍数支持1倍20倍30倍50倍放大 程序设计 #include <reg52.h> #in ...

  10. 51单片机实现两路AD检测、数码管显示、串口获取

    效果和实物视频:https://www.bilibili.com/video/BV1MU4y1h7D6 ADC0809介绍 ADC0809是八通道的八位逐次逼近式A/D转换器.由单一的5V电源供电,片 ...

最新文章

  1. quasar_Quasar和Akka –比较
  2. python 游戏脚本 vbs_用VBScript制作QQ自动登录的脚本代码
  3. boost::polygon模块voronoi相关的测试程序
  4. c语言字符串截取_笔记 | 自学Python 05:数据类型之字符串
  5. python爬虫 selenium模块的学习
  6. LSMW--一个中文介绍的摘抄
  7. 小白_Unity引擎_Console控制台
  8. icem合并面网格_详解Flunet Meshing:高级网格划分工具中的“扫地僧”
  9. 如何设计领域特定语言,实现终极业务抽象?
  10. 艾司博讯:拼多多拒收快递运费谁来付
  11. win10投影到此电脑显示灰色解决办法
  12. SQL学习笔记——task4:集合运算与内连结
  13. Windows7 U盘安装Ubuntu14.04双系统教程
  14. mac电脑上网突然变得很慢
  15. easyUpload.js插件文件上传
  16. 212实验室日记04
  17. 关于ORA-03113:end-of-file on communication channel
  18. Idea导包自动去除Import xxx.*里的星号
  19. windows 删除文件夹 拒绝访问
  20. python爬出书籍下载-Python网络爬虫从入门到实践 PDF 高质量扫描版

热门文章

  1. matlab中转置矩阵的特征值,矩阵乘以矩阵的转置运算的解析
  2. 魅族 计算机 隐藏,不知道你们发现了么,魅族Flyme6 超好用的隐藏功能
  3. cmd命令窗口快捷键与小技巧
  4. Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)
  5. ddm模型公式_股利增长模型计算公式
  6. bugku-pokergame
  7. 【机器学习】第一章 - 机器学习概论 - 周志华机器学习笔记
  8. 一招解决origin8 licience过期
  9. Chrome插件开发入门
  10. chrome 插件开发中的热更新问题