电子时钟1打印稿文档格式.docx

上传人:b****5 文档编号:17368489 上传时间:2022-12-01 格式:DOCX 页数:12 大小:93.23KB
下载 相关 举报
电子时钟1打印稿文档格式.docx_第1页
第1页 / 共12页
电子时钟1打印稿文档格式.docx_第2页
第2页 / 共12页
电子时钟1打印稿文档格式.docx_第3页
第3页 / 共12页
电子时钟1打印稿文档格式.docx_第4页
第4页 / 共12页
电子时钟1打印稿文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

电子时钟1打印稿文档格式.docx

《电子时钟1打印稿文档格式.docx》由会员分享,可在线阅读,更多相关《电子时钟1打印稿文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

电子时钟1打印稿文档格式.docx

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

四.关键器件和设备

元器件清单如下:

(1)单片机:

80C51

(2)按键:

BUTTON

(3)电阻:

RES

(4)电容:

CAP

(5)晶振:

CRYSTAL

(6)LED数码管:

7SEG-MPX8-CA-BLUE(CA:

共阳,CC:

共阴)

(7)地:

GROUND

(8)电源:

POWER

注:

上述各元件除电源和地以外加载方式是:

在最左边竖起的工具拦中从上到下选第二个图标(运放)后,点附近的P按钮,在出来的界面左上角keywords栏中输入元件的名称,在Results栏中将出现一些元件,双击你要的元件,在P按钮下面栏中得到你要的元件;

而电源和地需点左工具栏的第8个图标(输入、输出端口)后便可获得。

五、相关芯片介绍

5.1、89C51

主要特征

4K字节可编程闪烁存储器;

寿命:

1000写/擦循环;

数据保留时间:

10年;

全静态工作:

0Hz-24MHz;

三级程序存储器锁定;

128*8位内部RAM;

32可编程I/O线;

两个16位定时器/计数器;

5个中断源;

可编程串行通道;

低功耗的闲置和掉电模式;

片内振荡器和时钟电路。

管脚说明如图(3)

图(3)

VCC:

供电电压。

  GND:

接地。

  P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

  P3口同时为闪烁编程和编程校验接收一些控制信号。

  RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出

5.3、七段LED数码显示器

七段LED数码管显示器能够显示十进制或十六进制数字及某些简单字符。

控制简单,使用方便,在单片机系统中应用较多。

其结构如图(4)所示。

图(4)

上图中的a~g七个笔划(段)及小数点dp均为发光二极管。

数码管根据公共端的连接方式,可以分为共阴极数码管(将所有发光二极管的阴极连在一起)和共阳极数码管(将所有发光二极管的阳极连在一起)。

单片机系统扩展LED数码管时多用共阳LED。

共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;

而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。

通常每个段笔画要串一个数百欧姆的降压电阻。

由于七段LED只有7个段发光二极管,所以字型码为一个字节。

七段LED字形码如下表所示

六、硬件设计

七、软件程序:

;

采用8位LED软件译码动态显示程序

使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳

LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。

片内RAM的70H到77H单元为LED数码管的显示缓冲区

78H,79H,7AH分别为秒、分、小时计数单元

7BH为50ms计数器,7CH为调时按键计数器

ORG0000H

LJMPSTART

ORG000BH;

定时器/计数器T0中断程序入口

LJMPINTT0

主程序

START:

MOVR0,#70H

MOVR7,#0CH

INIT:

MOV@R0,#00H;

存储单元清零

INCR0

DJNZR7,INIT

MOV72H,#10;

时、分、秒之间的短横显示

MOV75H,#10

MOVTMOD,#01H

MOVTL0,#0B0H;

50ms定时初值

MOVTH0,#03CH

SETBEA

SETBET0

SETBTR0

START1:

LCALLSCAN

LCALLKEYSCAN

SJMPSTART1

延时1MS子程序

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

延时20MS子程序

DL20MS:

ACALLSCAN

ACALLSCAN

数码管显示程序

SCAN:

MOVA,78H;

秒计数值由二进制转十进制后

MOVB,#0AH;

送入显示缓冲区相应位置

DIVAB

MOV71H,A

MOV70H,B

MOVA,79H;

分计数值由二进制转十进制后

MOVB,#0AH;

MOV74H,A

MOV73H,B

MOVA,7AH;

时计数值由二进制转十进制后

MOV77H,A

MOV76H,B

MOVR1,#70H;

循环扫描显示

MOVR5,#80H;

显示秒个位的位码(LED共阳)

MOVR3,#08H

SCAN1:

MOVA,R5

MOVP2,A;

位码从P2口送出

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A;

字段码从P0口送出

LCALLDL1MS;

延时1ms

INCR1

RRA

MOVR5,A

DJNZR3,SCAN1

MOVP2,#00H

MOVP0,#0FFH

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH

;

“0~9”,“-”的共阳极字段码

定时器/计数器T0中断服务程序

INTT0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVTL0,#0B0H

INC7BH

MOVA,7BH

CJNEA,#14H,OUTT0

MOV7BH,#00

INC78H

MOVA,78H

CJNEA,#3CH,OUTT0

MOV78H,#00

INC79H

MOVA,79H

MOV79H,#00

INC7AH

MOVA,7AH

CJNEA,#18H,OUTT0

MOV7AH,#00

OUTT0:

poppsw

popacc

RETI

按键处理程序

KEYSCAN:

CLREA

JNBP1.0,KEYSCAN0

JNBP1.1,KEYSCAN1

JNBP1.2,KEYSCAN2

KEYOUT:

KEYSCAN0:

LCALLDL20MS

JBP1.0,KEYOUT

WAIT0:

JNBP1.0,WAIT0

INC7CH

MOVA,7CH

CJNEA,#03H,KEYOUT

MOV7CH,#00

SETBTR0;

K0按3次后又恢复走时

SJMPKEYOUT

KEYSCAN1:

JBP1.1,KEYOUT

WAIT1:

JNBP1.1,WAIT1

CJNEA,#02H,KSCAN11

INC79H;

分计数器加1

CJNEA,#3CH,KEYOUT

KSCAN11:

INC7AH;

时计数器加1

CJNEA,#18H,KEYOUT

KEYSCAN2:

JBP1.2,KEYOUT

WAIT2:

JNBP1.2,WAIT2

CJNEA,#02H,KSCAN21

DEC79H

CJNEA,#0FFH,KEYOUT

MOV79H,#3BH;

把59给分计数器

KSCAN21:

DEC7AH

MOV7AH,#17H;

把23给时计数器

END

 

八、系统仿真与调试

  Proteus是一个基于ProSpice混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。

编码译码显示电路能很方便地在此平台上进行调试和仿真,延时时间同选用的单片机和所用晶体振荡器有关,在调试时须注意。

 九、设计心得

 经过两个星期的微机接口课程设计,我基本了解并掌握了单片机接口技术应用开发的流程,通过查阅大量的书籍和资料,加深了对原有学习的知识的理解并学习到了新的知识。

在以前对本课程的学习过程中,总是觉得很抽象,学习到的都是理论上的东西,虽然在我们的现实生活中运用单片机等其他器件组成的测量系统,通信系统,控制系统等比比皆是,但我们所看到和接触到的也仅是一个简洁的操作界面,很少去深入研究整个系统的具体实现过程,通过此次双机串行通信的课程设计,我去深入了解到数据的输入,数据的识别与传输,电平转换,数据的显示等一系列关键知识点。

在整个设计过程中我始终带着问题去查阅相关资料,在学习他人经验的同时,我也创造性的提出自己的一些想法,最终形成自己的设计思想。

同时我始终把此次。

作为一个系统来看待,再结合本课题的51单片机等一些基本特征,充分考虑到整个系统的, 提出了一款编码译码显示实验电路设计,其控制系统和编码信号发生器采用89C51单片机实现,经Proteus仿真和实验调试结果来看,大大改善了电路的性能,电路制作方便、操作简单,在数字逻辑电路实验教学中具有一定的推广价值,电路主要不足是不能实现故障自动检查,如果能对电路故障进行自动检测,电路性能将更加完善。

经过多次与同组同学的讨论和与老师的交流最终得出一个最优方案。

我希望以后能够有更多的这样的课程设计的机会来锻炼自己。

此外,通过这次的设计我深刻的认识到团队合作的重要性,我想这一点对我们以后的社会实践颇有意义。

最后,感谢老师的细致辅导和耐心答疑!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1