8位数码管电子钟的设计与制作_我在职高教单片机——04零基础学51单片机数码管(1)...

做单片机毕业设计的学生需要帮助的可以咨询。

大家好,我是老王,职高老师一枚,一直从事单片机、计算机、电子技术基础等课程的教学。对于职高的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助头条平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学设计分享出来,如果您正是一名单片机爱好者或是一名同行,或者做毕业设计的学生不会的可以咨询。欢迎点赞+关注,各位的支持是本人持续输出的动力,多谢多谢#毕业设计##单片机##大学生#

数码管显示原理及应用实现

我们先来看几个数码管的图片

91d7aa2e4e5f9fc1ad4a9154952cf47e.png

不管将几位数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光,下面就来我们讲解一个数码管是如何亮起来的。数码管内部电路如图3.1.4所示,从图 3.1.4(a)可看出,一位数码管的引脚是 10个,显示一个8字需要7个小段,另外还有一个小数点,所以其内部一共有 8 个小的发光二极管,最后还有一个公共端,生产商为了封装统一,单位数码管都封装 10 个引脚,其中第3和第8引脚是连接在一起的。而它们的公共端又可分为共阳极和共阴极,图3.1.4(b)为共阴极内部原理图,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的6位数码管电子时钟的C语言程序,可以在51单片机上运行: ```c #include <reg51.h> // 导入51单片机头文件 #define uchar unsigned char // 定义无符号字符类型 sbit DIO=P1^0; // 定义数码管数据线 sbit CLK=P1^1; // 定义数码管时钟线 sbit LATCH=P1^2; // 定义数码管锁存线 uchar code NumTab[]={ // 数码管显示数字编码数组 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }; uchar hour=0,min=0,sec=0; // 定义小、分钟、秒钟变量 void delay_ms(unsigned int ms) // 延函数,单位毫秒 { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<110;j++); } void WriteData(uchar dat) // 向数码管写入数据 { uchar i; for(i=0;i<8;i++) { CLK=0; DIO=dat&0x01; dat>>=1; CLK=1; } } void Display(uchar *p) // 在数码管显示间 { uchar i; LATCH=0; for(i=0;i<6;i++) { WriteData(NumTab[*(p+i)]); } LATCH=1; } void InitTimer() // 初始化定器 { TMOD=0x01; // 定器1,工作模式1 TH0=0x4c; // 初始值,每50ms中断一次 TL0=0x00; TR0=1; // 启动定器 ET0=1; // 允许定器1中断 EA=1; // 允许总中断 } void Timer0() interrupt 1 // 定器1中断处理函数 { TH0=0x4c; // 重新赋初值 TL0=0x00; sec++; // 秒加1 if(sec==60) // 如果秒钟达到60 { sec=0; min++; // 分钟加1 if(min==60) // 如果分钟达到60 { min=0; hour++; // 小加1 if(hour==24) // 如果小达到24 { hour=0; // 回到0点 } } } } void main() // 程序入口 { InitTimer(); // 初始化定器 while(1) // 无限循环 { uchar time[6]={hour/10,hour%10, // 将间转换成数码管显示数字 min/10,min%10, sec/10,sec%10}; Display(time); // 在数码管显示间 delay_ms(5); // 延5ms } } ``` 这个程序使用了定器中断来实现间的计和更新,在每秒钟定器中断处理函数中将秒、分、加1,然后将间转换成数码管显示数字,最后在数码管显示。程序中使用了一个函数来控制数码管的刷新频率,可以根据需要调整该延间。 关于仿真,您可以使用Proteus等仿真软件进行仿真。在仿真中,您需要添加51单片机、6位数码管等元件,并将单片机程序烧录到单片机中。然后运行仿真,观察数码管上的间变化是否与预期一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值