首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 数电综合实验报告——数字电子钟

    时间:2021-03-01 18:08:01 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:实验 数字 报告

    数电综合实验报告——数字电子钟 本文关键词:实验,数字,报告,综合,电子钟

    数电综合实验报告——数字电子钟 本文简介:数电综合实验报告通信与信息工程学院电子信息工程1202刘维1207050208实验名称:数字电子钟设计指标:数字电子钟以一昼夜24小时为一个计数周期;设计具有“时”、“分”、“秒”数字显示;设计具有较时功能,分别进行时、分、秒的校正。实验目的:了解数字电子钟的工作原理;了解数字电子钟的设计及其电路的

    数电综合实验报告——数字电子钟 本文内容:

    通信与信息工程学院

    电子信息工程1202

    刘维

    1207050208

    实验名称:数字电子钟

    设计指标:

    数字电子钟以一昼夜24小时为一个计数周期;

    设计具有“时”、“分”、“秒”数字显示;

    设计具有较时功能,分别进行时、分、秒的校正。

    实验目的:

    了解数字电子钟的工作原理;

    了解数字电子钟的设计及其电路的连接;

    会使用555多谐振荡器、CD4518芯片、74LS00芯片、74LS47芯片。

    实验仪器:

    实验所需元器件:

    555定时器一个、CD4518芯片五个、译码器74LS47六个、数码管六个、74LS00二个、电阻680Ω六个、电容0.1μf一个、电容0.01μf一个、电阻2.4K二个

    CD4518功能表:

    Cr

    Cp

    En

    Q4

    Q3

    Q2

    Q1

    1

    ×

    ×

    0

    0

    0

    0

    0

    1

    加法计数器

    0

    0

    0

    ×

    0

    ×

    0

    0

    0

    1

    实验原理:

    芯片原理图:

    实验原里电路图:

    实验分析过程及结果:

    (1)555定时器组成的多谐振荡器电路:

    且f=2kHz

    q=

    C=0.1μf

    所以

    (2)分频器电路:

    分析:由555定时器组成的多谐振荡器的输出为2kHz的方波,现在设计数字电子钟所需1Hz的脉冲,则需要使用2个CD4518芯片进行分频,电路图如下:

    六十进制计数器电路连接图:

    二十四进制计数器:

    译码驱动电路:

    实验心得体会:

    通过本次综合设计实验,我体会颇深。站在个人的角度,我从两方面叙述和总结一下这次的实验。

    我在本次实验中所做的工作:

    分析电路的要求,根据实验设计要求选取实验材料;

    与组员协作、讨论,共同完成实验电路的设计;

    连接电路,与组员平均分配参与各个部分电路的研究;

    检查电路的能否工作,是否达到设计的要求,排错,最终完成电路。

    个人体会:

    这是一次综合性很强的实验,在实验中,学会了如何和组员共同协作完成任务,实践时间不成,和组员的协作是否默契在这次实验中体现出及其重要的一面,协作的好与坏直接影响到本次实验进程的快慢与结果的是否成功;这又是一次需要动手的实验,学会了如何理论联系实践,实验中的认芯片,根据芯片图与实际芯片连接电路很能体现实践联系理论的重要性,很能锻炼动手能力;这又是一次急需细心的实验,不仅要快,而且要准,不能有丝毫的马虎,实验中出现的漏连了本该接地的管脚的问题很能说明这个问题。

    总体上说,我们小组在本次实验是成功,较好的完成任务。电路板的连接比较美观,实验结果也是成功的。在这次实验中不仅锻炼了我的动手能力,也让我对理论知识有了更深刻的认识。同时,我也更加理解了“理论是实践的基础”、“理论联系实践的重要”,只有在平时努力学好理论知识,多动脑,多动手,才能在是问题面前游刃有余!

    篇2:对时功能电子钟设计报告

    对时功能电子钟设计报告 本文关键词:功能,报告,电子钟,设计

    对时功能电子钟设计报告 本文简介:设计报告题目完成人:张欣,杜枫一、系统概述使用AT89C51单片机结合段码LED显示器,键盘设计一个具有对时功能的电子钟。1、设计要求:l采用8个LED数码管,显示格式为“时时-分分-秒秒”,采用24小时制。l“时/分/秒”相应LED闪动,表示相应的部分处于对时状态。l用5个功能键操作来设置当前时间

    对时功能电子钟设计报告 本文内容:

    设计报告

    完成人:张欣,杜枫

    一、

    系统概述

    使用AT89C51单片机结合段码LED显示器,键盘设计一个具有对时功能的电子钟。

    1、设计要求:

    l

    采用8个LED数码管,显示格式为“时时-分分-秒秒”,采用24小时制。

    l

    “时/分/秒”相应LED闪动,表示相应的部分处于对时状态。

    l

    用5个功能键操作来设置当前时间:

    功能键K1~K5功能如下。

    l

    K1—进入时间设置状态,且“时时-分分-秒秒”LED闪动。

    l

    K2—设置小时。

    l

    K3—设置分钟。

    l

    K4—设置秒钟。

    l

    K5—确认完成设置,“时时-分分-秒秒”LED停止闪动,继续计时。

    l

    未进入计时状态时,K2-K5键的操作被忽略。

    程序执行后LED显示“00:00:00”,然后开始计时。

    2、用汇编语言编写相应软件;

    3、系统软、硬件联调。

    二、

    方案设计

    本次设计是基于AT89C51单片机电子钟的设计,对时、分、秒的显示的控制,时、分、秒用六位数码管显示LED数码管时钟电路采用24小时计时方式。该电路采用AT89C51单片机,使用5V电池供电,只使用一个按键进行复位状态的控制以及正常显示等状态。LED显示采用静态扫描方式实现,采用6M晶振。

    该电子钟使用单片机模块控制,用单片机原理实现时、分、秒计时的装置。本次设计通过用单片机为主控制,通过电路仿真而实现。首先使用Proteus

    Professional软件进行绘制硬件电路图,用keil软件进行编程与调试,最终生成hex文件,传入单片机内部,从而实现仿真效果。

    三、

    硬件设计

    根据AT89C51单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将AT89C51的P3.0~P3.1分别与74LS164的数据输入口和时钟信号输入口相连,74LS164是8位串入并出移位寄存器,负责将P3.0输出的串行数据转换成并行信号。显然,这种方式显示同样的位数使用单片机的口线大大减少,即可以让LED当前时间数值,数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口,本系统采用静态扫描显示方式。系统的时分显示部件由6只7段共阳LED数码管构成,前两只用于时的显示,中间两只用于分的显示,最后两只用于秒的显示。每个LED数码管由相对应的74LS164驱动,数码管的a,b,c,d,e,f,g,h,分别分别74LS164的QA,QB,QC,QD,QE,QF,QH相连。

    3.1

    AT89C51引脚及其功能

    引脚功能:

    Vcc(40):电源电压

    GND(20):接地

    P3.0

    RXD(串行输入口)

    P3.1

    TXD(串行输出口)

    RST(9):复位信号输入端。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

    /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

    XTAL1(18):振荡器反相放大器的及内部时钟发生器的输入端。

    XTAL2(19):振荡器反相放大器的输出端。通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。

    3.2

    时钟电路

    单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部有一时钟振荡电路,只需外接振荡电源,就能产生一定频率的时钟信号到单片机内部的各个单元,决定单片机的工作速度。电路如下图:

    3.3驱动部件

    74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。图3(a)为74LS245的管脚图。

    图3(a)74LS245管脚图

    3.4显示部分

    由8个共阴极的数码管组成时、分、秒和分隔符的显示P0口的8条数据线P0.0至P0.7分别与74LS245的A口对应相接,增大AT89C51的带负载能力;P3口对应接八个数码管的公共端,通过程序控制数码管的亮与灭,这样通过P0口送出一个存储单元的高位、低位BCD显示代码,通过P3口送出

    扫描选通代码轮流点亮LED1至LED8,就会将要显示的数据在数码管中显示出来,从P0口输出的代码是BCD码,从P3口输出的就是位选码。这是扫描显示原理。

    LED显示段码

    字型

    共阳极段码

    共阴极段码

    字型

    共阳极段码

    共阴极段码

    0

    C0H

    3FH

    9

    90H

    6FH

    1

    F9H

    06H

    A

    88H

    77H

    2

    A4H

    5BH

    B

    83H

    7CH

    3

    BOH

    4FH

    C

    C6H

    39H

    4

    99H

    66H

    D

    A1H

    5EH

    5

    92H

    6DH

    E

    86H

    79H

    6

    82H

    7DH

    F

    84H

    71H

    7

    F8H

    07H

    空白

    FFH

    00H

    8

    80H

    7FH

    P

    8CH

    73H

    注:(1)本表所列各字符的显示段码均为小数点不亮的情况。

    (2)“空白”字符即没有任何显示。

    四、

    软件设计

    本次设计的软件部分由主程序,静态显示子程序,中断服务程序,时、分、秒加1子程序,时、分、秒单元清零子程序组成。

    4.1

    电子钟的主程序

    本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。其主程序执行流程见下图。

    开始

    设堆栈指针

    秒分时计数单元清零

    设定时器工作方式

    设定时器初值

    设中断方式

    中断初始化

    调显示子程序

    TMOD=01为工作方式1

    4.2定时器中断服务程序

    定时器TO用于时间计时,定时溢出中断周期设为100ms,中断进入后,判断是否到1秒钟,到了,则调用加法子程序对秒进行加1处理,处理完后返回断点地址,同时判断秒是否到了60秒,到了则对秒单元清零,同时对分进行加1操作,同样对分进行判断,到60分则对分单元清零,同时对时加1,同样也对时进行判断,到24小时,则对时单元清零,最后中断返回。

    T0中断服务程序执行流程见下图:

    保护现场

    赋初值

    10数是否到?

    N

    Y

    秒值加1

    是否到60秒?

    N

    Y

    秒清0

    分加1

    是否到60分?

    N

    Y

    分清0

    小时加1

    是否到24小时?

    N

    Y

    小时清0

    恢复现场

    返回中断

    4.3电子钟的显示子程序

    4.4延时子程序

    ※附:程序片段如下:

    S_SETBITP1.0

    M_SETBITP1.1

    H_SETBITP1.2

    SECONDEQU30H

    MINUTEEQU31H;定义MINUTE为31H单元标号,分计数单元

    HOUREQU32H;定义HOUR为32H单元标号,时计数单元

    TCNTEQU34H;定义TCNT为34H单元标号定时器TO计数

    ORG00H;程序开始地址

    SJMPSTART

    ;跳转到START执行

    ORG0BH;定时器TO中断入口地址

    LJMP

    INT_T0;跳转到INT-TO执行

    START:MOV

    DPTR,#TABLE;指针指向TABLE首地址

    MOVHOUR,#0;初始化秒计数单元

    MOVMINUTE,#0;初始化分计数单元

    MOVSECOND,#0;初始化时计数单元

    MOVTCNT,#0;初始化T0计数单元

    MOVTMOD,#01H;工作方式1

    MOVTH0,#(65536-50000)/256;定时

    50

    毫秒

    MOVTL0,#(65536-50000)MOD

    256

    MOVIE,#82H;允许定时器TO中断

    SETBTR0;启动定时器T0

    ;判断是否有控制键按下,是哪一个键按下

    A1:LCALLDISPLAY;跳转到DISPLAY执行

    JNBS_SET,S1;检查

    P1.0

    电平

    JNBM_SET,S2;检查

    Pl.l

    口电平

    JNBH_SET,S3;检查

    P1.2

    电平

    LJMPA1;返回

    S1:LCALLDELAY;去抖动

    JBS_SET,A1;确认

    P1.0

    口电平

    INCSECOND;秒值加1

    MOVA,SECOND;秒数值送入A比较

    CJNE

    A,#60,J0;判断是否加到60秒

    MOVSECOND,#0;SECOND

    单元清零

    LJMPK1;转到K1执行

    S2:LCALLDELAY;长调用DELAY指令

    JBM_SET,A1;确认Pl.l

    口电平

    K1:INCMINUTE;分钟值加1

    MOVA,MINUTE;分数值送入A比较

    CJNEA,#60,J1;判断是否加到60分

    MOVMINUTE,#0;秒单元清零

    LJMPK2;调用K2指令

    S3:LCALLDELAY;调用延时子程序

    JBH_SET,A1;确认?1.2

    口电平

    K2:INCHOUR;小时值加1

    MOVA,HOUR;时数值送入A比较

    CJNEA,#24,J2;判断是否加到24小时

    MOVHOUR,#0;时单元清零

    MOVMINUTE,#0;分单元清零

    MOVSECOND,#0;秒单元清零

    LJMPA1;跳转到程序A1

    ;等待按键抬起

    J0:

    JBS_SET,A1;调用A1指令

    LCALLDISPLAY;调用显示子程序

    SJMPJ0;返回J0指令

    J1:

    JBM_SET,A1;数值比较

    LCALLDISPLAY;调用显示子程序

    SJMPJ1;返回J1指令

    J2:

    JBH_SET,A1;数值比较

    LCALLDISPLAY;调用显示子程序

    SJMPJ2;返回J2指令

    ;定时器TO中断服务子程序,对秒,分钟和小时的计数

    INT_T0:MOVTH0,#

    (65536-50000)/256;定时

    50ms

    MOVTL0,#

    (65536-50000)

    MOD

    256

    INCTCNT;定时器TO计数单元中的数值加1

    MOVA,TCNT;定时器T0计数单元中的数值送入A比较

    CJNEA,#20,RETUNE

    ;计时

    1

    秒,

    INCSECOND;秒计数单元中的数值加1

    MOVTCNT,#0;定时器TO计数单元归零

    MOVA,SECOND;秒计数单元中的数值送入A比较

    CJNEA,#60,RETUNE;记时

    1

    分,

    INCMINUTE;分计数单元中的数值加1

    MOVSECOND,#0;秒计数单元归零

    MOVA,MINUTE;分计数单元中的数值送入A比较

    CJNEA,#60,RETUNE;记时

    1

    时,

    INCHOUR;时计数单元中的数值加1

    MOVMINUTE,#0;分计数单元归零

    MOVA,HOUR;时计数单元中的数值送入A比较

    CJNEA,#24,RETUNE;记时

    1

    天,

    MOVHOUR,#0;时计数单元归零

    MOVMINUTE,#0;分计数单元归零

    MOVSECOND,#0;秒计数单元归零

    MOVTCNT,#0;定时器T0计数单元清零

    RETUNE:

    RETI;中断返回

    ;显示控制子程序

    DISPLAY:

    MOVA,SECOND;显示秒

    MOVB,#10;B寄存器赋值为10

    DIVAB;(A)/(B),商存入A,余数存入B,分别处理A与B中数

    CLRP3.6;数码管7开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管7输出显示秒单元的十位数值

    LCALLDELAY;调用延时子程序

    SETBP3.6;数码管7停止工作

    MOVA,B;将B寄存器中的数送入A处理显示

    CLRP3.7;数码管8开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管8输出显示秒单元的个位数值

    LCALLDELAY;调用延时子程序

    SETBP3.7;数码管8停止工作

    CLRP3.5;数码管6开始工作

    MOVP0,#40H;显示分隔符

    LCALLDELAY;调用延时子程序

    SETBP3.5;数码管6停止工作

    MOVA,MINUTE;显示分钟

    MOVB,#10;B寄存器赋值为10

    DIVAB

    CLRP3.3;数码管4开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管4输出显示分单元的十位数值

    LCALLDELAY;调用延时子程序

    SETBP3.3;数码管4停止工作

    MOVA,B;将B寄存器中的数送入A处理显示

    CLRP3.4;数码管5开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管5输出显示分单元的个位数值

    LCALLDELAY;调用延时子程序

    SETBP3.4;数码管5停止工作

    CLRP3.2;数码管3开始工作

    MOVP0,#40H;显示分隔符

    LCALLDELAY;调用延时子程序

    SETBP3.2;数码管3停止工作

    MOVA,HOUR;显示小时

    MOVB,#10;B寄存器赋值为10

    DIVAB;商存入A,余数存入B,分别处理A与B中数

    CLRP3.0;数码管1开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管1输出显示时单元的十位数值

    LCALL

    DELAY;调用延时子程序

    SETBP3.0;数码管1停止工作

    SETB

    P3.0;数码管1停止工作

    MOVA,B;将B寄存器中的数送入A处理显示

    CLRP3.1;数码管2开始工作

    MOVCA,@A+DPTR;数据指针指向数值地址并送入A输出显示

    MOVP0,A;在数码管2输出显示时单元的个位数值

    LCALLDELAY;调用延时子程序

    SETBP3.1;数码管2停止工作

    RET;子程序返回

    TABLE:DB

    3FH,06H,5BH,4FH,66H;*W

    LED

    显示器段选码

    0,1,2,3,4

    DB6DH,7DH,07H,7FH,6FH;共阴极

    LED

    显示器段选码

    5,6,7,

    ;延时子程序

    DELAY:

    MOVR6,#10;R6

    赋值为

    10

    Dl:

    MOVR7,#250;R7

    赋值为

    250

    DJNZR7,$;原地踏步

    DJNZR6,Dl;返回D1循环

    RET;子程序返回

    END;结束程序

    五、仿真实验结果

    5.1软件调试

    打开程序调试软件keil

    uVision4,在里面新建一个工程,命名为:数字时

    钟“2345”。接着新建文件,编写相应程序。编写好的各个程序进行编译与连接。在调试过程中,程序有错误,我们根据相应的提示进行了多次修改,直到该程序能够正确编译。之后,我们在点击相关栏目,让它生成我们在硬件仿真时所需要的“.HEX”文件。到此,我们的软件调试就完成了。下面是我们软件调试的部分贴图。

    程序运行成功,并生成HEX文件,如图1。

    1

    将生成的HEX文件,加载到单片机中。如图2。

    图2

    生成HEX文件

    5.2硬件调试

    打开Proteus

    7

    Professional软件,按照方案所选的电路元件来设计整体电路,先把个芯片按一定的位置放好,然后对相应的接口进行连接。做好之后把编程所生成的HEX文件加载到AT89C51中,运行仿真软件,查看运行效果。仿真结果未达到设计要求,目前我们仍在查找原因。

    下图5(a)--图5(e)是未连驱动电路时的硬件仿真结果部分贴图;

    图5(f)--图5(g)是连了驱动电路后的硬件调试部分贴图。

    5(a)

    5(b)

    5(c)

    5(d)

    5(e)

    5(f)

    5(g)

    六、参考文献

    ①《单片机程序设计实例》

    清华大学出版社

    ②《单片机原理及接口技术》

    高等教育出版社

    ③《单片机课程设计实例指导》

    北京航空航天大学出版社

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识