单片机技术逻辑笔实训报告.docx

上传人:b****5 文档编号:8330198 上传时间:2023-01-30 格式:DOCX 页数:17 大小:190.24KB
下载 相关 举报
单片机技术逻辑笔实训报告.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

单片机技术逻辑笔实训报告

 

单片机技术实训报告

 

逻辑笔

 

单片机技术实战

一、目的和作用

使学生加深对单片机原理的认识,提高学生的创新能力和动手能力,提升学生综合素质。

二、设计要求

a.逻辑显示:

低电平:

绿灯亮;高电平:

红灯亮;电平变化:

黄灯亮

b.电平变化锁存:

一旦电平有变化(0->1或1->0)则锁定黄灯

c.数值显示:

4位LED

d.脉宽测量:

测量范围:

10μs~9999μs

最小分辨:

1μs

三、设计过程

(一)硬件设计:

1.设计过程说明:

根据题目设计要求,本人将此作品通过开关S1的状态分两种功能运行方式:

1)逻辑电平测试显示;2)脉宽测量和数值显示。

运行逻辑电平测试时,通过开关状态来判断需要不需要进入状态锁定。

运行测脉宽时,采用根据INT0,INT1口的状态开始计数,计数完后判断有无超过9999uS,有则分屏显示。

在测脉宽过程中,可以分别对正负脉宽进行测试。

本作品测试范围通过上下限的扩展,可以达到4uS~65536uS。

2.单元电路及原理说明:

①、逻辑笔探头的设计:

如图1,为了提高测试范围和精度,本设计采用INT0,INT1两个口,在测试脉宽的过程中,因为GATE=1,计数器的运行受到INT0,INT1两个口状态的控制,所以实现了测电平时两个口交错并用。

但为了避免两个口的相互影响,在两个口的输入端分别接入非门74HC04,同时也提高了探头的输入阻抗,提高测试灵敏度。

图1

②、按钮功能复用:

为了节省硬件资源和成本,本设计采用功能复用,具体体现在充分利用复位按钮上,如图2。

当测试逻辑电平时,按S4,可以切换锁定和不锁定状态;当在测试和显示脉宽时,按S4可以切换测试和显示正负脉宽。

图2

③、逻辑电平的状态显示:

如图3,当测试到高电平时,此时,P0.0输出低电平,红灯d1亮;当测试到低电平时,此时,P0.2输出低电平,绿灯d3亮;当测试到有电平变化时,此时,P0.1输出低电平,黄灯d2亮.

图3

④、显示部分原理:

如图4

图4

3.电气原理图:

如附录1中的图

(一)。

(二)软件设计

软件流程图:

如附录2的图

(二)。

流程图说明:

该程序可根据切换开关S1的状态

(1)实现对电平和(0)实现对正负脉宽的测量。

电平测量:

高电平时亮红灯,低电平时亮绿灯,不定时亮黄灯。

进入锁定状态后,则锁定黄灯的状态,但同时还能测高、低电平的变化;脉宽测量:

可根据开关S4的状态来选择要测的是正脉冲还是负脉冲的宽度,然后通过计数,同时判断有无超出范围和是否需要分屏显示。

程序清单:

如附录3。

四、实验的内容和步骤

(一)准备阶段

熟悉单片机仿真系统的使用方法:

注意仿真头的硬件设置和伟福软件的设

置。

注意位操作:

如MOVA,20H和MOVC,20H的区别。

将单片机程序输入计算机并软件仿真,排除语法错误:

如MOVA,@A+DPTR应改为MOVCA,@A+DPTR

MOVA,#FFH应改为MOVA,#0FFH

(二)焊装

布局:

合理排版,充分利用空间,并注意单片机插座周边不要接较高的器

件方便插拔仿真头。

连线构想:

根据布局设想好走线路径和方式。

焊装:

根据布局和连线焊接器件和导线,检查时注意有无虚焊,芯片输入端有无浮空、输出端有无短接。

(三)调试

调试步骤:

根据功能模块:

1)硬件基本功能;2)软件基本功能。

1)硬件基本功能:

在不插入芯片的时候通电,用万用表测量插座电源和地端的电压是否正常;在LED接单片机端通以低电平看是否有预期效果;用万用表测量开关的工作是否正常;给LED七段码显示管(共阴极)通低电平看各段码制是否有损坏。

2)软件基本功能:

程序编译通过后用伟福仿真器的单步执行,看当中断口通不同电平时能不能产生中断和开、关计数器;HEX转BCD和显示程序作为一个模块测试:

让特定单元赋予一定的值,看运行后结果是否正确,若使转换值后的值相等,则可用同时验证显示码的正确与否。

整机功能:

A功能实现;

B功能实现;

C功能实现;

D功能实现(4位测试基本无误差,5位数测试有误差);(创新功能:

可以测量范围达到4uS~65536uS,能分屏显示。

五、自检报告

自检项目

校验数据

   功能实现或实测数据

高电平测试

高电平

亮红灯;锁定时亮黄灯

低电平测试

低电平

亮绿灯;锁定时亮黄灯

电平负跳变

1->0

亮黄灯

电平正跳变

0->1

亮黄灯

脉宽测量功能调试

30μs脉宽

30

31μs脉宽

31

300μs脉宽

300

3000μs脉宽

3000

创新功能调试

4μs

4或3

显示±脉宽

焊装自检

布局

良好

走线

良好

可靠性

文档自检

原理图

PCB图

NETLISTCHECK报告情况

自评成绩

90

合作者

六、讨论

调试中出现的故障及排除过程

1)LED不能亮:

检查硬件电路有无接错;LED有无接反;LED有无烧坏。

2)不能产生中断或中断效果:

检查硬件电路有无接错;程序中有无中断入口或中断子程序。

3)显示乱码:

数据表TAB有没有正确,检查显示部分电路有无接错;164芯片的输入端有无浮空;根据串口输送顺序和电路接线看有无编码错误或用伟福仿真器时给SBUF赋值看显示值对应出编码。

 

附录1图

(一)

附录3程序如下

REDEQUP0.0

YELLOWEQUP0.1

GREENEQUP0.2

ORG0000H

LJMPSTART

ORG0003H

LJMPINTT0

ORG0013H

LJMPINTT1

ORG0030H

 

START:

MOVR4,#08H

MOVR0,#30H

CLEAR:

MOV@R0,#00H

INCR0

DJNZR4,CLEAR

CLRPSW

MOVC,20H

CPLC

MOV20H,C

MOV20H,#00H

MOV21H,#01H

;MOV23H,#00H

movIE,#00000101B

MOVIP,#00H

MOVTCON,#00H

MOVSP,#70H

MOVTMOD,#99H

MOVTH0,#00H

MOVTL0,#00H

MOVTH1,#00H

MOVTL1,#00H

SETBTR0

SETBTR1

XIANSHI:

JBP1.0,LUOJI

INC23H

JNB23H.0,FU

ZHENG:

JnBP3.3,ZHENG

jbp3.3,$

movTH1,#00

MOVTL1,#00

jnbp3.3,$

jbp3.3,$

MOV40H,TH1

MOV41H,TL1

ZHENG1:

SETBGREEN

SETBYELLOW

CLRRED

MOVR6,40H

MOVR7,41H

LCALLBCD

MOVA,34H

JNZFENPING

LCALLDISP

FENPING:

MOVR5,#60H

LCALLDISPF1

LJMPZHENG

FU:

JBP3.2,FU

jNbp3.2,$

movTH0,#00

MOVTL0,#00

jbp3.2,$

jNbp3.2,$

MOV50H,TH0

MOV51H,TL0

FU1:

SETBRED

SETBYELLOW

CLRGREEN

MOVR6,50H

MOVR7,51H

LCALLBCD

JNZFFENPING

LCALLDISP

FFENPING:

MOVR5,#60H

LCALLDISPF1

LJMPFU

LUOJI:

setbEA

XIANSHI2:

JNBP1.0,XIANSHI

JMPXIANSHI2

INTT0:

PUSHA

SETB20H.0

MOVA,20H

XRLA,21H

JZN0

JnB20H,LOCK0

LCALLYELLNS

JMPN0

LOCK0:

CLRYELLOW

N0:

SETBGREEN

CLRRED

POPA

reti

INTT1:

PUSHA

CLR21H.0

MOVA,20H

XRLA,21H

JZN1

JnB20H,LOCK1

LCALLYELLNS

JMPN1

LOCK1:

CLRYELLOW

N1:

SETBRED

CLRGREEN

POPA

RETI

YELLNS:

CLRYELLOW

CALLDELAY65

SETBYELLOW

CLR20H.0

SETB21H.0

RET

;*******************************************************************

;双字节十六进制整数转换成双字节BCD码整数 

;入口条件:

待转换的双字节十六进制整数在R6、R7中。

;出口信息:

转换后的三字节BCD码整数在R3,R4、R5中。

;最后存放在显示单元34H~30中。

;影响资源:

PSW、A、R2~R7堆栈需求:

2字节

;******************************************************************* 

BCD:

MOVR4,A;BCD码初始化

MOVR5,A

MOVR2,#10H;转换双字节十六进制整数

BCD2:

MOVA,R7;从高端移出待转换数的一位到CY中

RLCA

MOVR7,A

MOVA,R6

RLCA

MOVR6,A

MOVA,R5;BCD码带进位自身相加,相当于乘2

ADDCA,R5

DAA;十进制调整

MOVR5,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

MOVA,R3

ADDCA,R3

MOVR3,A;双字节十六进制数的万位数不超过6,不用调整

DJNZR2,BCD2;处理完16bit

MOVA,R5;将各个字节的高低位分别存放

ANLA,#0FH

MOV30H,A

MOVA,R5

SWAPA

ANLA,#0FH

MOV31H,A

MOVA,R4

ANLA,#0FH

MOV32H,A

MOVA,R4

SWAPA

ANLA,#0FH

MOV33H,A

MOVA,R3

ANLA,#0FH

MOV34H,A

ret

;********************************************************************************

;入口:

显示数据从高到低分别放在33H~30H

;出口:

由RXD,TXD口输出显示。

;********************************************************************************

DISP:

movr2,#05

DISP0:

MOV45H,#7FH;赋位选值

MOV46H,#0BFH

MOV47H,#0DFH

MOV48H,#0EFH

MOVDPTR,#TAB

MOVSCON,#00H

MOVA,33H

JNZL0;检测高位是否为0

MOVA,32H

JNZL1

MOVA,31H

JNZL2

LJMPL3

L0:

MOVA,33H;显示千位

MOVCA,@A+DPTR

LCALLSEND

MOVA,48H

LCALLSEND

LCALLDELAY5;显示延时

L1:

MOVA,32H;显示百位

MOVCA,@A+DPTR

LCALLSEND

MOVA,47H

LCALLSEND

LCALLDELAY5;显示延时

L2:

MOVA,31H;显示十位

MOVCA,@A+DPTR

LCALLSEND

MOVA,46H

LCALLSEND

LCALLDELAY5;显示延时

L3:

MOVA,30H;显示个位

MOVCA,@A+DPTR

LCALLSEND

MOVA,45H

LCALLSEND

LCALLDELAY5

djnzr2,disp0;显示延时

ret

;**********************************************************

;分屏显示,显示第一屏,显示数据从高到低分别放在37H~34H

;**********************************************************

DISPF1:

movr2,#05

DISPF10:

MOV45H,#7FH;赋位选值

MOV46H,#0BFH

MOV47H,#0DFH

MOV48H,#0EFH

MOVDPTR,#TAB

MOVSCON,#00H

MOVA,37H

JNZLF10;检测高位是否为0

MOVA,36H

JNZLF11

MOVA,35H

JNZLF12

LJMPLF13

LF10:

MOVA,37H;显示千位

MOVCA,@A+DPTR

LCALLSEND

MOVA,48H

LCALLSEND

LCALLDELAY5;显示延时

LF11:

MOVA,36H;显示百位

MOVCA,@A+DPTR

LCALLSEND

MOVA,47H

LCALLSEND

LCALLDELAY5;显示延时

LF12:

MOVA,35H;显示十位

MOVCA,@A+DPTR

LCALLSEND

MOVA,46H

LCALLSEND

LCALLDELAY5;显示延时

LF13:

MOVA,34H;显示个位

MOVCA,@A+DPTR

LCALLSEND

MOVA,45H

LCALLSEND

LCALLDELAY5

DJNZR5,dispF10;显示延时

movR5,#50H

;**********************************************************

;分屏显示,显示第二屏,显示数据从高到低分别放在33H~30H

;**********************************************************

DISPf2:

MOV45H,#7FH;赋位选值

MOV46H,#0BFH

MOV47H,#0DFH

MOV48H,#0EFH

MOVDPTR,#TAB

MOVSCON,#00H

MOVA,33H

JNZLf20;检测高位是否为0

MOVA,32H

JNZLf21

MOVA,31H

JNZLf22

LJMPLf23

Lf20:

MOVA,33H;显示千位

MOVCA,@A+DPTR

LCALLSEND

MOVA,48H

LCALLSEND

LCALLDELAY5;显示延时

Lf21:

MOVA,32H;显示百位

MOVCA,@A+DPTR

LCALLSEND

MOVA,47H

LCALLSEND

LCALLDELAY5;显示延时

Lf22:

MOVA,31H;显示十位

MOVCA,@A+DPTR

LCALLSEND

MOVA,46H

LCALLSEND

LCALLDELAY5;显示延时

Lf23:

MOVA,30H;显示个位

MOVCA,@A+DPTR

LCALLSEND

MOVA,45H

LCALLSEND

LCALLDELAY5

DJNZR5,dispf2;显示延时

decr2

mova,r2

jztuichu

baochi:

ljmpDISPF10

tuichu:

ret

 

SEND:

MOVSBUF,A

JNBTI,$

CLRTI

RET

DELAY5:

MOVR6,#2;延时5ms

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

DELAY65:

MOVR6,#130;延时65ms

D6:

MOVR7,#248

DJNZR7,$

DJNZR6,D6

RET

TAB:

DB3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH

END

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

当前位置:首页 > PPT模板 > 自然景观

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

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