用数码管(8位)显示的数字时钟程序

合集下载

八位七段数码管动态显示电路设计

八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。

其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。

目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。

七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。

图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。

因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。

( 共阳极) ( 共阴极)图4.2、共阳极(低电位动作)与共阴极(高电位动作)要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。

此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。

而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。

四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

图4.5、七段显示器模块接线图七段显示器之常见应用如下➢可作为与数值显示相关之设计。

⏹电子时钟应用显示⏹倒数定时器⏹秒表⏹计数器、定时器⏹算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。

(完整word版)八位七段数码管动态显示电路设计

(完整word版)八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。

其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。

目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。

七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。

图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。

因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。

( 共阳极) ( 共阴极)图4.2、共阳极(低电位动作)与共阴极(高电位动作)要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。

此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。

而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。

四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

图4.5、七段显示器模块接线图七段显示器之常见应用如下可作为与数值显示相关之设计。

⏹电子时钟应用显示⏹倒数定时器⏹秒表⏹计数器、定时器⏹算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

(VHDL实验报告)数码管显示(一位数码管显示0-9,八位数码管显示学号后八位)

(VHDL实验报告)数码管显示(一位数码管显示0-9,八位数码管显示学号后八位)
七段码管位选输入信号 七段码管位选输RTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3、按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序。其 程序如下所示:
(1)一位数码管显示0-9:
电子科技大学成都学院学院
标准实验报告
(实验)课程名称 数字电路 EDA 设计与应用
姓名 乱弹的枇杷 学号 专业 指导教师
一、 实验名称 数码管显示(一位数码管显示 0-9,八位数码管显示学号
后八位)
二、 实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、掌握 VHDL 的 CASE 语句及多层次设计方法。
信号名称 7SEG-A 7SEG-B 7SEG-C 7SEG-D 7SEG-E 7SEG-F 7SEG-G 7SEG-DP 7SEG-SEL0 7SEG-SEL1 7SEG-SEL2
对应 FPGA 管脚名
F13 F14 F15 E15 F16 F17 E18 F18 G18 G17 G16
说明 七段码管 A 段输入信号 七段码管 B 段输入信号 七段码管 C 段输入信号 七段码管 D 段输入信号 七段码管 E 段输入信号 七段码管 F 段输入信号 七段码管 G 段输入信号 七段码管 dp 段输入信号
7、分配完成后,再进行一次全编译,以使管脚分配生效。 8、新建波形文件,对程序进行仿真,其仿真波形如下所示:
(1)一位数码管显示0-9:
(2)八位数码管显示学号后八位:
9、用下载电缆通过JTAG 口将对应的sof 文件加载到FPGA 中。观察实验 结果是否与自己的编程思想一致。
六、实验现象及结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字

数字时钟程序(完整版)

数字时钟程序(完整版)

数字时钟程序/**************************************************程序名称:数字时钟程序全局变量:tt,shi,fen,miao等参数说明:无返回说明:无版本:1.0功能说明:通过数码实现时钟的显示,通过键盘实现时间的调整其中k1是开始调整,k2是增加,k3是减小,k5是实现定时屏幕的切换,k4是定时设置的开始。

带闹铃功能。

作者邮箱:****************(欢迎交流)**************************************************/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit beep=P2^3;sbit dula=P2^6;sbit wela=P2^7;sbit k1=P3^0;sbit k2=P3^1;sbit k3=P3^2;sbit k4=P3^3;sbit k5=P3^4;sbit rd=P3^7;uchartt,shi_s,shi_g,shi1_s,shi1_g,fen1_s,fen1_g,miao1_s,miao1_g,fen_s,fen_g,miao_s,miao_g,k1num,k 4num,flag;char shi,fen,miao=20,shi1,fen1,miao1;/*********************************函数名称:延时程序设计全局变量:无参数说明:z传递给内部,是实现75*z条空指令延迟返回说明:无版本:1.0功能说明:约Z*75us延时程序设计作者邮箱:****************(欢迎交流)*********************************/void delay(uint z){uchar x;uint y;for(x=z;x>0;x--)for(y=75;y>0;y--);}/********八段数码管编码**********/uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};/*********************************函数名称:初始化函数全局变量:无参数说明:无返回说明:无版本:1.0功能说明:定时器装初值,开总中断,定时中断,并写定时中断函数作者邮箱:****************(欢迎交流)*********************************/void init(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==20){tt=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}}}}}/*********************************函数名称:6个数码管显示函数全局变量:shi fen miao 的个十位分离参数说明:将个十位的分离分别传递到各个数码管中并显示返回说明:无版本:1.0功能说明:实现时钟的数码管显示,动态扫描。

基于C51单片机的数字时钟课程设计(C语言带闹钟)

基于C51单片机的数字时钟课程设计(C语言带闹钟)

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

八位数显示时钟的设计方案与制作

八位数显示时钟的设计方案与制作

毕业设计<论文)题目:八位数显示时钟的设计与制作2018年8月28日毕业设计任务书1.毕业设计题目:八位数显时钟题目类型实验研究题目来源教师科研题毕业设计内容要求:<一)设计任务:1、用单片机设计8位数显电子时钟;2、走时,误差精度控制在1s/天;3、调时,小时、分钟加减调整及闪烁显示;4、闹铃,可以设置三组闹铃,默认闹铃时间为1分钟,可按任意键推出闹铃。

<二)涉及要求:1、总体方案设计及框图;2、设计原理电路图及分析;3、独立编写程序;4、完成protues仿真设计;5、使用protel设计pcb并制作、调试电路。

2.主要参考资料[1]电子工业出版社[51单片机典型系统开发实例精讲]白延敏;[2]复旦大学出版社[单片微型机原理、应用和实验] 张友德;[3]海纳电子资讯网[IC中文资料];摘要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求.采用单片机进行计时,对于社会生产有着十分重要的作用。

本文首先介绍了电子时钟的特点和功能,然后对单片机和LCD 显示做了详细的介绍,提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,再用Protues软件进行了仿真和调试,结果证明了该设计系统的可行性。

由于AT89S52系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。

关键字:单片机;LCD1602液晶显示器;C程序设计目录第一章系统设计要求及功能51.1设计本电子定时闹钟的目的和意义51.2本LCD电子闹钟的特点和功能介绍51.2.1本电子钟设计特点51.2.2本电子钟的主要功能5第二章方案设计与比较62.1数字时钟方案62.2显示方案7第三章系统硬件的设计83.1单片机的选择及管脚介绍83.1.1单片机的选择及主要性能83.1.2单片机管脚介绍93.2LCD1602的管脚及功能介绍113.2.1引脚说明113.2.2控制器接口说明123.3总体设计133.3.1系统说明133.3.2整体系统框图133.4各部分功能实现143.5元件清单143.6电子钟电路原理图153.7时钟仿真各功能分析及图解16第四章软件总体设计方案204.1主程序流程图:204.2、闹钟的实现22第五章课程设计结果分析23致谢24参考文献25附录26<1)控制电路的C语言源程序26<2)8位数显时钟成品展示图35第一章系统设计要求及功能1.1 设计本电子定时闹钟的目的和意义1、复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。

【CPLD EPM570】Verilog实现数码管电子时钟

【CPLD EPM570】Verilog实现数码管电子时钟

Verilog实现数码管电子时钟1 原理图8位8段LED数码管,实现时钟的秒、分、小时、日期年月日的显示,其中主显示月、日、小时和分,按住按键S1显示年和秒;8x8的LED阵列显示秒的跳变,每一分钟点亮一圈,8位LED的跑马灯以1秒的频率移动;S1~S4按键实现时钟的设置,S1显示年和秒,S2选择设置的时钟段,S3实现设置数据的增加,S4跳出设置;4x4的矩阵按键,用了K1~K10共10个键,实现数据1~9、0的输入,可用于设置时钟(参考实例图)。

数码管显示的原理图如下,2个4位的8段数码管,组成的8位8段数码管,每个4位数码管的数据线独立,其实是可以以总线形式连接在一起的,可以减少IO。

共阳极的供电端用了三极管增加驱动,否则IO供电驱动多个数码管时有困难。

按键检测及跑马灯原理图如下,共5个按键,其中一个作为Reset按键(设计未加电容,可以考虑优化),每个按键采用一个IO检测,低电平表示有按键按下。

共8个LED灯,每个灯采用一个IO驱动,高电平点亮。

8x8的矩阵LED,行H1-H8为共阳,采用三极管增加驱动,但此实验板采用5V供电,因此无论行控制信号输出高电平或是低电平,都会导致LED有供电,只是供电强弱不一样,但都可能点亮LED,所以实现时需要将不供电时输出高阻z,同理对数据信号V1-V8。

此矩阵显示原理也是分时显示每一列数据,轮流显示速率较快,让人眼无法反映识别出来,避免闪烁。

4x4的矩阵按键,8个IO,检测原理是IO63、66、67、68作为输出信号,轮流赋值高电平,IO59、60、61、62作为输入信号,检测对应的按键按下。

比如,在IO68赋值高电平时,检测到IO59信号为高电平,则表示按键K1被按下,本时钟只用了10个按键,K1~K10。

2 CPLD代码module clock (clk_24m, //24M时钟reset_n, //全局异步复位/******************************************* 8位8段数码管显示接口信号*******************************************/ Bit_line,Data_line_h,Data_line_l,/******************************************* 8位跑马灯接口信号*******************************************/ led_Bit_line,/******************************************* S1-S5按键信号*******************************************/Key_line,/*******************************************8x8 LED数码管矩阵接口信号*******************************************/Hline,Vline,/*******************************************按键阵列接口信号*******************************************/Keyarray_Vline,Keyarray_Hline);input wire clk_24m;input wire reset_n;output wire [7:0] Hline;output wire [7:0] Vline;output wire [7:0] Bit_line;output wire [0:7] Data_line_h;output wire [0:7] Data_line_l;output wire [7:0] led_Bit_line;input wire [3:0] Key_line;input wire [3:0] Keyarray_Vline;output wire [2:0] Keyarray_Hline;/*************************************************************** 内部分频时钟,便于计数。

单片机指令编程实例数码管显示程序设计

单片机指令编程实例数码管显示程序设计

单片机指令编程实例数码管显示程序设计在单片机的开发中,数码管是一种常见的输出设备。

通过编程控制数码管的显示,我们可以实现各种功能,如计时、计数、温度显示等。

本文将介绍一个简单的单片机指令编程实例,用于设计一个数码管显示程序。

一、概述数码管是一种由七段LED组成的显示器件,每个数码管可以显示0-9的数字。

通过合理的控制,可以将多个数码管连接起来并显示多位数值。

在这个实例中,我们将使用AT89C51单片机和共阳数码管进行程序设计。

二、硬件连接将数码管的七段LED引脚依次连接到单片机的GPIO引脚,并将共阳极引脚连接到单片机的VCC。

为了方便控制,可以利用74HC595芯片实现数码管的级联连接,这样只需要使用三个IO口即可控制多个数码管。

三、程序设计程序设计的主要逻辑是通过编写一系列的指令来控制数码管的显示。

以下是一个简单的实例程序:```#include <reg51.h>sbit SDA = P1^0; // 74HC595芯片的串行数据引脚sbit SCK = P1^1; // 74HC595芯片的时钟引脚sbit RCK = P1^2; // 74HC595芯片的输出使能引脚unsigned char code num[10] = {0xC0, // 数字0的显示码0xF9, // 数字1的显示码0xA4, // 数字2的显示码0xB0, // 数字3的显示码0x99, // 数字4的显示码0x92, // 数字5的显示码0x82, // 数字6的显示码0xF8, // 数字7的显示码0x80, // 数字8的显示码0x90 // 数字9的显示码};void delay(unsigned int t) {unsigned int i;while (t--) {for (i = 0; i < 1000; i++);}}void writeByte(unsigned char dat) {unsigned char i;for (i = 0; i < 8; i++) {SDA = (dat & 0x80) ? 1 : 0;dat <<= 1;SCK = 0;SCK = 1;}}void display(unsigned char n) {unsigned char i;for (i = 0; i < 8; i++) {writeByte(num[n]);RCK = 1;RCK = 0;delay(1); // 延时一段时间,使数码管显示出来}}void main() {unsigned char i;while (1) {for (i = 0; i < 10; i++) {display(i);delay(500); // 每个数字显示的时间间隔为500ms}}}```以上程序通过将各个数字的显示码存储在一个数组中,然后通过控制74HC595芯片的串行数据引脚、时钟引脚和输出使能引脚,来实现数码管的动态显示。

基于51单片机电子时钟课程设计

基于51单片机电子时钟课程设计

《单片机原理及接口》课程设计报告题目:时钟系统设计姓名:专业:电信班级: 1 学号: *****指导教师:信息工程学院二0一六年一月时钟系统设计摘要:本系统是基于AT89C51单片机的具有准点报时、调时、以及可设闹钟功能的简单数字时钟系统的设计。

以AT89C51为核心控制器,系统分为时钟模块、显示模块、按键模块及闹钟模块。

系统以单片机内部定时器作为时钟模块的主要控制模块,通过频率计数实现计时功能,采用了8位数码管来显示时间,采用独立按键做为时间调时以及闹钟设置按键,采用蜂鸣器作为报时闹钟系统。

通过Keil软件C语言程序的编写、编译、调试以及硬件单片机的连接,实现了时间显示(24小时制)、闹钟设置、时间调试以及准点报时,可复位的功能,并运行了该电路的程序,得出了符合实验设计要求的结果。

关键字:数字时钟;AT89C51;数码管;C语言;闹钟;调时1 系统设计内容1.1 前言随着近年来科技的进步,单片机在近十年也取得了飞速的发展。

目前,单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

现在虽然单片机的品种繁多,各具特色,但仍以MCS-51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的WinBond系列单片机。

以8031为核心的单片机占据了半壁江山,在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。

8段数码管在proteus中的名称

8段数码管在proteus中的名称

8段数码管是一种常见的电子元件,广泛应用于数字显示领域。

在Proteus中,它的名称是什么呢?让我们深入探讨这个问题。

1. 8段数码管的基本概念在电子领域,数码管是一种用来显示数字的元件。

8段数码管由8个LED灯组成,每个LED可以显示数字0-9中的一个。

通过不同的组合,可以显示所有数字以及一些字母。

2. 8段数码管在Proteus中的定义在Proteus中,8段数码管的名称是“7段数码管”,这可能会让人感到困惑。

实际上,这是由于技术标准的不同导致的。

在实际电路设计中,8段数码管与7段数码管的功能是一致的,只是命名上略有不同。

3. 如何在Proteus中使用8段数码管在Proteus中,可以通过添加元件,选择7段数码管并进行连接,来使用8段数码管。

在电路中给数码管添加电压信号,就可以实现数字的显示。

4. 8段数码管的应用领域8段数码管广泛应用于数字显示领域,比如计时器、计数器、温度显示器等。

其显示效果清晰、直观,易于被用户理解,因而备受青睐。

5. 个人观点与理解对于我个人来说,8段数码管在Proteus中的名称虽然略有不同,但其使用方法和功能并无区别。

在实际的电路设计和仿真过程中,能够准确理解元件的定义和功能非常重要,这也是我特别关注这个问题的原因。

6. 总结与回顾通过本文的介绍,我们了解了8段数码管在Proteus中的名称和使用方法。

虽然名称略有不同,但在实际应用中并无影响。

选择合适的元件并正确连接,就能够实现数字的显示。

对于电子爱好者和工程师来说,熟悉各种元件的定义和使用方法,能够更好地进行电路设计和仿真。

在对8段数码管在Proteus中的名称和使用方法有了更深入的了解后,希望大家在实际操作中能够更加灵活和准确地使用这一元件,提高电路设计的效率和准确性。

:7. 8段数码管的特性和优势8段数码管作为一种常见的数字显示元件,具有清晰、直观的显示效果。

其使用LED灯作为显示单元,不仅能够显示数字,还可以显示一些字母和符号,具有一定的多功能性。

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序
一、程序概述
本程序使用单片机AT89S52,通过数码管(8位)显示当前时间,支持12小时制和24小时制切换,精度为秒。

二、程序实现
程序首先定义了数码管的连接方式和每个数字的位图数据,然后定义了时间变量和函数,包括:
1.初始化函数:设置数码管端口和时钟计数器的计数方式。

2.读时钟函数:读取时钟计数器及寄存器,返回当前时间的小时、分钟和秒数。

3.显示函数:将当前时间转化为8个数码管显示的位图数据,用数字和符号映射表将数字和符号的位图数据与数码管连接方式对应起来,输出到数码管上。

在主函数中,程序初始化后循环执行读时钟函数和显示函数,实现时钟的实时显示。

三、程序特点
1.采用8位数码管显示,时间更加直观。

2.支持12小时制和24小时制切换,适用于不同场景。

3.实现精度为秒的实时显示,更加准确。

四、程序优化
1.增加闹钟功能,提醒用户打卡或者起床。

2.加入温度传感器模块,实现显示温度的功能。

3.优化显示效果,增加字体和颜色等选项。

五、程序应用
本程序可应用于家庭、办公室、学校等场合,用于显示时间,提醒用户合理安排时间和时间管理,也可作为DIY电子制作的教学和实验材料,提高学生的动手实践能力和电子信息技术水平。

基于89S52单片机控制的数字八位数码显示时钟

基于89S52单片机控制的数字八位数码显示时钟

电子工程系第三届“电创杯”竞赛论文单片机数字时钟组号:67参赛队员:陈健新沈海淼李明赛题名称:基于89S52单片机控制的数字八位数码显示时钟一、总体概述摘要本设计采用89S52系列单片机作为时钟的控制核心,电路使用了八个数码管作为时钟显示,用计数器中断程序作为了一秒钟的精确计数,并用按钮实现了调闹钟时间和时钟时间的校对功能。

关键词:单片机、控制、显示、调时。

AbstractThis design's adopting a single slice of the 89 S52serieses machine is the control core of the clock, the electric circuit used eight piece code tubes as the clock manifestations, The precision that used to count the machine interruption procedure conduct and actions for a second count, counteracting a button to carry out to adjust check of the alarm clock time and the clock time function.二、竞赛赛题及要求单片机音乐演奏基本要求:1、利用单片机演奏一和谐的音乐,音乐时长不少于两分钟;2、能够随时实现中断;3、能够手动调节音乐重复次数。

发挥部分:1、音乐演奏时同时有彩灯闪烁伴奏。

2、用按键实现多首音乐间的选择,且任何时间都能选择本时钟程序采用了C语言与汇编语言相结合的方案,使用C主要是考虑到本人学习单片机的时间很短,而此次竞赛又迫在眉睫,对于开发时间如此紧的竞赛,C语言有着汇编无可比拟的优势。

C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。

单片机控制8位数码管显示秒表课程设计

单片机控制8位数码管显示秒表课程设计

长沙学院《单片机原理及应用》课程设计说明书题目 LED数码管显示电子秒表设计系(部) **系专业(班级) *************姓名邹部长9931学号******指导教师***起止日期 2016.12.19—2016.12.24《单片机原理及应用》课程设计任务书1系(部):**系专业:******长沙学院课程设计鉴定表目录摘要 (5)第一章概述 (6)1.1电子秒表的设计要求 (6)1.2电子秒表的电路图 (6)1.3电子秒表的设计原理及方案 (7)第二章电子秒表的程序设计 (8)2.1 程序设计流程图 (8)2.2程序设计源代码 (10)第三章程序的调试 (16)第四章设计总结 (17)参考文献 (18)摘要随着经济与社会的发展对智能化和信息化技术要求的不断提高,单片机作为智能控制的核心,逐渐渗透到社会生产和生活的各个方面。

而本文则主要阐述基于单片机设计的数码管秒表,这次设计所采用的的单片机为stc89c52单片机,数码管则是使用2个4位共阴LED数码管组成的8位。

为减少I/O口,而使用了SM74HC138 和74HCT573这2片芯片实现数码管显示8位数据。

利用单片机内部定时器实现计时功能,分别显示为:分—秒—0.01秒。

控制则是使用一键控制,可实现计时开始,计时暂停,计时清零3个功能的循环。

本次的程序设计采用C语言编写,包括显示程序,定时中断服务程序,延时程序。

最后在单片机电路板来观察工作状态。

第一章概述1.1电子秒表的设计要求○1显示要求在初始状态显示的是00—00—00,最左边的2位显示分钟,中间2位显示秒,左边2位显示十分之一秒和百分之一秒,还有个2个LED数码管只显示中间那一段,用作间隔符。

○2然后还的有一个键用来控制秒表,要求按第一下开始计时,按第二下暂停计时,按第三下清零,以此往复循环控制。

○3使用单片机T0方式实现计时0.01秒。

1.2电子秒表的电路图1.3电子秒表的设计原理及方案设计原理根据单片机本身的定时计数器实现1秒的计时。

基于AT89C51单片机的数字电子时钟设计

基于AT89C51单片机的数字电子时钟设计

/安徽工程大学机电学院单片机课程设计题目:数字电子时钟设计指导老师:***制作人员:范超学号:************班级:自动化2132日期:7月13日-7月24日总评成绩:课程任务设计书设计题目:数字电子时钟的设计设计任务:1.设计一款时,分,秒可调数字电子时钟可整点报时;2.设计三个按键K1,K2和K3,用于调节时钟的时间;3.用8个、七段LED数码管作为显示设备,开机显示00-00-00;本设计采用AT89C51单片机为核心器件。

具有电子钟显示,时间调整,整点报时等功能。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

根据60秒为一分、60分为1小时的计数周期,构成秒、分、时的计数,实现计时的功能。

而且能显示清晰、直观的数字符号。

针对数字钟会产生误差的现象,就设计有校准时间的功能。

AT89C51单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为24时00分00秒,另外应有校时功能。

电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。

用晶体振荡器产生时间标准信号,这里采用石英晶体振荡器。

根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个24进制(时)的计数器。

显示器件选用LED八段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

关键字:Proteus,Keil uVision,AT89C51,电子钟,整点报时摘要 (3)第1章概述 (5)1.1 设计背景 (5)1.2系统方案论证与设计 (5)第2章系统硬件设计 (7)2.1 系统总电路的设计 (7)2.1.1系统的总框图 ................................................................................................2.1.2芯片的选择 (7)2.2最小系统设计 (9)2.2.1时钟电路的选择与设计 (10)2.2.2复位电路的选择与设计 .............................................. 错误!未定义书签。

八位七段数码管动态显示电路设计知识讲解

八位七段数码管动态显示电路设计知识讲解

八位七段数码管动态显示电路设计八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。

其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。

目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。

七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角 )。

图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。

因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作 )与共阴极( 高电位动作 )七段显示器,如下图4.2所示。

( 共阳极 ) ( 共阴极 )图4.2、共阳极(低电位动作)与共阴极(高电位动作)要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。

此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC 电源。

而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。

四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

图4.5、七段显示器模块接线图七段显示器之常见应用如下➢可作为与数值显示相关之设计。

⏹电子时钟应用显示⏹倒数定时器⏹秒表⏹计数器、定时器⏹算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。

PIC18F458控制数码管显示1~8数字程序

PIC18F458控制数码管显示1~8数字程序

PIC18F458控制数码管显示1~8数字程序本程序是基于PIC18F458控制LED数码管显示1~8数字的C语言程序,笔者也是刚刚学习PIC单片机,也是和大家一起学习交流吧!不多说了,先贴程序:#include "p18f458.h"static volatile int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};//段码volatile unsigned char data;/*初始化子程序*/void initial(){TRISA=0x00; /*A口设置为输出*/TRISC=0x00; /*SDO引脚为输出,SCK引脚为输出*/ INTCON=0x00; /*关闭所有中断*/SSPCON1=0x30; /*SSPEN=1;CKP=1,FOSC/4*/SSPSTAT=0xC0; /*时钟下降沿发送数据*/PIR1=0; /*清除SSPIF标志*/}/*显示子程序*/void SPILED(char data){PORTAbits.RA5=0;/*LACK送低电平,为锁存做准备*/SSPBUF=data; /*启动发送*/do{;}while(PIR1bits.SSPIF==0); /*等待发送完毕*/ PIR1bits.SSPIF=0; /*清除SSPIF标志*/PORTAbits.RA5=1; /*最后给锁存信号,代表显示任务完成*/}/*主程序*/main(){unsigned i;initial(); /*系统初始化*/for(i=8;i>0;i--) /*连续发送8个数据*/{data=table[i]; /*通过数组的转换获得待显示的段码*/SPILED(data); /*发送显示段码显示*/ }for(;;)//无限循环{}}。

八段数码管显示

八段数码管显示

实验一八段数码管显示1、实验目的:(1)了解数码管动态显示的原理。

(2)了解74LS164扩展端口的方法。

2、实验要求:利用实验仪提供的显示电路,动态显示一行数据.3、实验电路图LED1LED2LED3LED4LED5LED64、实验器材:(1)超想-3000TB综合实验仪 1 台(2)超想3000仿真器 1 台(3)计算机 1 台5、实验连线无 6、实验说明:(1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,用动态方式显示。

8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。

向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。

本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。

(2)七段数码管的字型代码表显示字形g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h2 1 0 1 1 0 1 1 6bh3 1 0 0 1 1 1 1 4fh4 1 1 0 0 1 1 0 66h5 1 1 0 1 1 0 1 6dh6 1 1 1 1 1 0 1 7dh7 0 0 0 0 1 1 1 07h8 1 1 1 1 1 1 1 7fh9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F1111 71hab c def g dp7、程序框图8、实验步骤1.将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。

8只数码管滚动显示单个数字设计报告

8只数码管滚动显示单个数字设计报告

机电工程学院课程设计报告书题目: 8只数码管滚动显示单个数字专业:电气自动化技术班级: DQ 09302学号:学生姓名:杨超指导教师:朱晓玲2010 年12月30日摘要功能简介:1内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。

(2)用PROTEUS进行电路设计和实时仿真3知识点链接(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

(2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如图------所示。

①选择总线按钮②绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。

如果终点在空白处,左键双击结束连线。

画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。

此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。

在画斜线时,需要关闭线路自动路径功能才好绘制。

Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。

WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。

③给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00—P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。

单击绘图工具栏中的导线标签按钮,使之处于选中状态。

将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图---所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用数码管(8位)显示的数字时钟程序
用数码管(8位)显示的数字时钟,由于是在开发板上写的程序,所以51单片机的一些I/O口设定并不完全一样,以下程序仅供参考
#include<reg52.h>
sbit dula=P2^6; //段选锁存器
sbit wela=P2^7; //位选锁存器
sbit key1=P3^2; //INT0 选择键
sbit key2=P3^4; //T0 时间增加
sbit key3=P3^6; //S4 时间减少
char a=0,hour=0,minute=0,seconed=0;
char h1,h2,m1,m2,s1,s2;
char num=0;
char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(char z)
{
char x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display_hour(char h) //显示小时
{
h1=h/10;
h2=h%10;
wela=1;
P0=0xfe; //1111 1110
wela=0;
P0=0xff;
dula=1;
P0=table[h1];
dula=0;
delay(5);
wela=1;
P0=0xfd; //1111 1101
wela=0;
P0=0xff;
dula=1;
P0=table[h2];
delay(5);
}
void display_minute(char m) //显示分钟{
m1=m/10;
m2=m%10;
wela=1;
P0=0xf7; //1111 0111
wela=0;
P0=0xff;
dula=1;
P0=table[m1];
dula=0;
delay(5);
wela=1;
P0=0xef; //1110 1111
wela=0;
P0=0xff;
dula=1;
P0=table[m2];
dula=0;
delay(5);
}
void display_seconed(char s) //显示秒{
s1=s/10;
s2=s%10;
wela=1;
P0=0xbf; //1011 1111
wela=0;
P0=0xff;
dula=1;
P0=table[s1];
dula=0;
delay(5);
wela=1;
P0=0x7f; //0111 1111
P0=0xff;
dula=1;
P0=table[s2];
dula=0;
delay(5);
}
void init() //初始化函数
{
TMOD=0x01; //定时器0工作方式1
TH0=(65536-45872)/256; //装初值晶振11.0592 50ms为45872 TL0=(65536-45872)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //开启定时器0
}
void key() //按键函数,功能为对时间进行调整
{
if(key1==0) //key1键按下进入选择并停止定时器
{
delay(10);
while(!key1); //松手检测
TR0=0;
num++; //没按一次key1 num自加1
}
if(num==1) //key1按一次进行“小时”调整
{
if(key2==0) //key2按下时间增加
{
delay(10);
while(!key2);
hour++;
if(hour==24)
hour=0;
}
if(key3==0) //key3按下时间减少
{
delay(10);
hour--;
if(hour<0)
hour=23;
}
}
if(num==2) //按下key1两次进行“分钟调整”{
if(key2==0)
{
delay(10);
while(!key2);
minute++;
if(minute==60)
minute=0;
}
if(key3==0)
{
delay(10);
while(!key3);
minute--;
if(minute<0)
minute=59;
}
}
if(num==3) //key1按下三次对“秒”进行调节{
if(key2==0)
{
delay(10);
while(!key2);
seconed++;
if(seconed==60)
seconed=0;
}
if(key3==0)
{
delay(10);
seconed--;
if(seconed<0)
seconed=59;
}
}
if(num==4) //key1按下四次认为调节完毕开启定时器并将num清0 {
num=0;
TR0=1;
}
}
void main()
{
init();
while(1)
{
display_seconed(seconed); //显示“秒,分,时”
display_minute(minute);
display_hour(hour);
if(a==20) //判断定时器是否到1s
{
a=0;
seconed++;
if(seconed>59)
{
seconed=0;
minute++;
if(minute>59)
{
minute=0;
hour++;
if(hour>23)
{
hour=0;
}
}
}
}
key();
}
}
void time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
a++;
}
.。

相关文档
最新文档