生产实习.docx

上传人:b****6 文档编号:9112896 上传时间:2023-02-03 格式:DOCX 页数:17 大小:572.60KB
下载 相关 举报
生产实习.docx_第1页
第1页 / 共17页
生产实习.docx_第2页
第2页 / 共17页
生产实习.docx_第3页
第3页 / 共17页
生产实习.docx_第4页
第4页 / 共17页
生产实习.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

生产实习.docx

《生产实习.docx》由会员分享,可在线阅读,更多相关《生产实习.docx(17页珍藏版)》请在冰豆网上搜索。

生产实习.docx

生产实习

实习报告

实习人员:

刘琦、王兴龙、靳晨霖

一、任务及要求

设计:

基于MCU的数字时钟

要求:

1)硬件电路自己设计;

2)8个数码管显示时间日、分钟、秒;即最小刻度为1s

3)4个按键:

分别接rst、P1.0、P1.1、P1.2;依次为复位键、位选件、加一键、减一件。

按rst件是电路板恢复初始状态,按P1.0对依次对分、时、日进行调整,按P1.1键对时间加一,按P1.2对时间减一。

4)结合按键程序,综合。

二、软件设计思路

数字时钟是利用单片机内部的定时器进行计时和按键调整来实现的,它的处理过程如下:

首先设定单片机内部的一个定时器/计数器工作于定时方式,再初始化,显示初始化数字。

显示数字与时间调整分两步进行。

三、流程图

N

N

N

Y

禁止T1,清零

Y

显示时t4

Y

显示时t3

N

N

显示时t2

N

N

Y

N

 

Y

Y

Y

Y

N

INT0程序:

显示初始设置时间

 

四、硬件原理

基于MCU的数字跑表有显示分钟、秒、毫秒以及通过相应按键显示5个运动时间。

数字跑表的硬件电路包括时钟电路、复位电路、按键电路以及数码管显示电路。

五、硬件电路说明

1、复位电路

上电时,RST为低电平,电路启动,当系统出现紊乱时需要复位,则可按复位键复位。

按复位键,使RST输入高电平,重启系统。

2、时钟电路

数字钟实际上是一个对标准频率进行计数的计数电路。

振荡器是数字钟的核心,其作用是产生一个标准频率信号,它保证了时钟走时的准确和稳定。

本次设计采用12分频的晶振作为时钟电路,单片机的机器周期为1μs。

3、按键电路

按键电路具有设定、修改时间的功能。

按键电路中,K1、K2、K3分别接单片机的P1.0、P1.1、P1.2口,数码管段选为P0,P2.0-P2.7为片选。

其中K1为调整位,K2为加一,K3减一。

4、显示电路

动态显示是多个数码管,交替显示,利用人的视觉暂留作用使人看到多个数码管同时显示。

因为防止在P2口输出功率太高,所以在P2口接电阻接三极管基极。

在编程时,需要输出段选和位选信号,位选信号选中其中一个数码管,然后输出段码,使该数码管显示所需要的内容,延时一段时间后,再选中另一个数码管,再输出对应的段码,如此高速交替。

各个位的延时时间长短是非常重要的,如果延时时间长,则会出现闪烁现象;如果延时时间太短,则会出现显示暗且有重影。

这就需要进行对程序的调试,使实验进一步完美。

仿真电路图:

六、元件清单表原理图

元件

型号

数量

单片机

AT89S52

1

电阻

100Ω

8

电阻

10kΩ

4

电阻

220Ω

8

电容

27μF

1

电容

27pF

2

三极管

NPN

8

晶振

12MHz

1

电源

5V

1

共阴极数码管

8

按键

4

电烙铁

1

导线

N

N

Y

禁止T1,清零

N

七、程序

ORG0000H

LJMPSTART

ORG000BH

LJMPINIT0

ORG0100H

START:

MOVR0,#30H;主程序开始

MOVR2,#16

INIT:

MOV@R0,#00H

INCR0

DJNZR2,INIT

MOVTMOD,#01H;选择定时器/计数器T0的方式1

MOVTL0,#LOW(65536-50000)

MOVTH0,#HIGH(65536-50000);高位赋初值

SETBEA

SETBET0

SETBTR0

START1:

LCALLSCAN

LCALLKEYSCAN

SJMPSTART1

DL1MS:

MOVR6,#14H;延时1子程序,1ms

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

DL20MS:

ACALLSCAN;延时20ms子程序

ACALLSCAN

ACALLSCAN

RET

;数码管显示程序开始

SCAN:

MOVA,3AH;3A存时间秒

MOVB,#0AH

DIVAB;时间秒的十位送给A,时间秒的个位送B

MOV31H,A;时间秒要显示的十位

MOV30H,B;时间秒要显示的个位

MOVA,3BH;3B存时间分

MOVB,#0AH

DIVAB;时间分的十位送给A,时间分的个位送B

MOV33H,A;时间分要显示的十位送地址

MOV32H,B;时间分要显示的个位送地址

MOVA,3CH;3C存时间时

MOVB,#0AH

DIVAB;时间时的十位送给A,时间时的个位送B

MOV35H,A;时间时显示的十位送地址

MOV34H,B;时间时要显示的个位送地址

MOVA,3DH;3D存时间日

MOVB,#0AH

DIVAB;时间日的十位送给A,时间时的个位送B

MOV37H,A;时间日显示的十位送地址

MOV36H,B;时间日要显示的个位送地址

MOVR1,#30H

MOVR5,#01111111B

MOVR3,#08H

SCAN1:

MOVA,R5;数码管的显示程序

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR;对字段表取值显示

MOVP0,A

LCALLDL1MS

INCR1

MOVA,R5

RRA

MOVR5,A

DJNZR3,SCAN1

RET

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H;"0~9"

 

INIT0:

PUSHACC

PUSHPSW

MOVTL0,#LOW(65536-50000)

MOVTH0,#HIGH(65536-50000);高位赋初值

SETBTR0

INC38H

MOVA,38H

CJNEA,#20,OUTT0;50ms是否到20次,没有到就继续执行50ms的延时

MOV38H,#00

INC3AH

MOVA,3AH

CJNEA,#3CH,OUTT0;一秒的延时是否计到60次,没有就继续执行

MOV3AH,#00

INC3BH

MOVA,3BH

CJNEA,#3CH,OUTT0

MOV3BH,#00

INC3CH

MOVA,3CH

CJNEA,#18H,OUTT0;60分钟的延时是否计到24次,没有就继续执行程序

MOV3CH,#00

INC3DH

MOVA,3DH

CJNEA,#31,OUTT0;30天是否到30次,没有到就继续执行延时

MOV3DH,#00

OUTT0:

SETBET0;启动定时器T0

POPPSW

POPACC

RETI

KEYSCAN:

CLREA;关闭中断请求

JNBP1.0,KEYSCAN0;P1.0有按键按下则跳转到子程序

JNBP1.1,KEYSCAN1;P1.1有按键按下则跳转到子程序

JNBP1.2,KEYSCAN2;P1.2有按键按下则跳转到子程序

KEYOUT:

SETBEA

RET

KEYSCAN0:

LCALLDL20MS;20ms的延时消抖

JBP1.0,KEYOUT

;松手跳转

WAIT0:

JNBP1.0,WAIT0;判断按键是否松手,不松手就往下执行程序

INC39H

MOVR4,39H

CLRET0

CLRTR0

CJNER4,#04H,KEYOUT;按下第一、二、三次对时、分、日选定,不等跳转

MOV39H,#00H

SETBET0

SETBTR0

SJMPKEYOUT

KEYSCAN1:

LCALLDL20MS;按键加一的程序

JBP1.1,KEYOUT

WAIT1:

JNBP1.1,WAIT1

CJNER4,#01H,KSCAN11;如果功能键按下则对时加一调整,

INC3BH

MOVA,3BH

CJNEA,#3CH,KEYOUT;如果加到60则清零

MOV3BH,#00

SJMPKEYOUT

KSCAN11:

CJNER4,#02H,KSCAN12;如果功能键按下则对时加一调整,

INC3CH;如果功能键是按下第二次则对时进行加一调整

MOVA,3CH

CJNEA,#18H,KEYOUT

MOV3CH,#00

SJMPKEYOUT

KSCAN12:

INC3DH;如果功能键是按下第二次则对时进行加一调整

MOVA,3DH

CJNEA,#31,KEYOUT

MOV3DH,#00

SJMPKEYOUT

KEYSCAN2:

LCALLDL20MS;延时消抖程序

JBP1.2,KEYOUT

WAIT2:

JNBP1.2,WAIT2;判断是否放开按键

CJNER4,#01H,KSCAN21;如果功能键是按下第一次对时进行减一

DEC3BH

MOVA,3BH

CJNEA,#0FFH,KEYOUT

MOV3BH,#3BH

SJMPKEYOUT

KSCAN21:

CJNER4,#02H,KSCAN22;如果功能键是按下第一次对时进行减一

DEC3CH;如果功能键是按下第二次则对分进行减一

MOVA,3CH

CJNEA,#0FFH,KEYOUT

MOV3CH,#17H

SJMPK1

KSCAN22:

DEC3DH;如果功能键是按下第二次则对分进行减一

MOVA,3DH

CJNEA,#0FFH,K1

MOV3DH,#1EH

K1:

SETBEA

RET

END

 

八、调试过程

在电脑上仿真并且焊好板了以后,进入调试阶段

硬件调试:

1.先是检查原件是否损坏,和数值是否正确;

2.检查焊接处是否有焊连、虚焊现象;

3.检查焊好的原件是否短路;

软件调试

1.在检查完硬件后,给单片机写入程序。

2.调整扫描时间,消除暗影。

3.再检查蜂鸣器和LED是否工作。

4.经过调试,要求的功能能全部实现,并且时间精度很高,误差在要求精度内。

九、测试结果

根据程序的设计,可以通过三个按键K1、K2、K3对数码管的显示(即时间)进行调试,8个数码管显示日、时、分钟、秒;即最小刻度为1s;4个按键:

初始显示时间,按K1键选择调整时间,按一下调整分,停止计时,按两下调整时,按三下调整日,按四下跳出调整,继续计时;按K2键加一,按K2键减一。

按复位键显示初始时间。

精度满足要求。

测试结果如下图所示:

一十、收获

通过这次的生产实习,使我们巩固和加深对单片机基本知识的理解,学会查寻资料、方案设计、方案比较,以及电路设计,还了解了AT89S52单片机,更熟练地掌握了PROTEL仿真软件以及一些相应软件的使用。

除此之外,我们对汇编语言有了更深一步的了解,进一步提高我们综合运用所学知识的能力,提高了分析解决实际问题的能力。

我们先是在电脑上画图,仿真。

购得了器件之后,首先按照原理图在面包板上布置电阻,电容,数码管,单片机等器件,紧接着就是焊接,由于数码管不是整体的那种,得一个个的焊接,线非常多,所以我们焊完以后还检查了是否有短路的地方。

在设计过程中有一些着急,因为没有一个完整的设计思路,后来在网上查找相关的资料后,才制定了设计方案。

在调试过程中,我们也遇到了失败,比如数码管用着用着就坏了,就必须得换,或者是哪儿短路了。

通过这次实习,我们又重新复习了一遍单片机,并亲手实践板的制作过程,还学习了新的一些知识,这对我们将来的学习和工作很有帮助。

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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