电信10单片机实验.docx

上传人:b****6 文档编号:6392664 上传时间:2023-01-06 格式:DOCX 页数:31 大小:767.96KB
下载 相关 举报
电信10单片机实验.docx_第1页
第1页 / 共31页
电信10单片机实验.docx_第2页
第2页 / 共31页
电信10单片机实验.docx_第3页
第3页 / 共31页
电信10单片机实验.docx_第4页
第4页 / 共31页
电信10单片机实验.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

电信10单片机实验.docx

《电信10单片机实验.docx》由会员分享,可在线阅读,更多相关《电信10单片机实验.docx(31页珍藏版)》请在冰豆网上搜索。

电信10单片机实验.docx

电信10单片机实验

撰写实验报告要求:

实验报告内容包括:

实验目的,实验设备,实验内容,程序流程图,程序清单<必须写出注释),结果记录及分析,并回答实验讨论中的问题。

单片机实验

一、系统地址分配

<1)I/0地址分配

<2)存储器地址分配

二、系统接口定义

<1)CZ11:

用户通信口

<2)CZ4:

打印接口

<3)JX0,JX17:

为系统提供的数据总线接口

<4)CZ7:

系统提供的扩展接口

<5)JX12、JX14:

液晶显示接口

<6)ISP下载接口

三、通用电路简介

<1)LED发光二极管输出模块

实验台上有8只发光二极管及相应驱动电路。

见图1-7,L1~L8为相应发光二极管驱动信号输入端,该输入端为高电平“0”时发光二极管亮。

<2)开关量输入模块

实验台上有8只开关Kl~K8,与之相对应的K1-K8个引线孔为逻辑电平输出端。

开关向上拨相应插孔输出高电平“l”,向下拨相应插孔输出低电平“0”。

见图1-8。

<3)单脉冲电路

实验仪上单脉冲产生电路如图1-9所示,两个引线插孔为正负单脉冲输出端。

附近按钮AN0为单脉冲产生按钮,每按一次产生一个单脉冲。

<4)分频电路

<5)脉冲发生电路

<6)485接口电路

<7)数码管显示电路

数码管显示电路中,SW3、SW4红色拨码开关打在“ON”位置,数码管代码端和公共端与8155PA、PB口相连。

如果SW3、SW4红色拨码开关打在相反位置,即“OFF”位置,数码管电路与8155断开,数码管代码端和公共端对外开放。

<8)矩阵键盘模块电路

四、DICE-DPJ-3

实验通过DICE-3000仿真器来连接5208K实验系统和PC机,首先用随机串行通讯电缆连接仿真器串行口和PC机串行口,然后用随机34芯扁平线连接仿真器和5208K实验系统的JF_1仿真接口,将KB1开关设置在“一般模式”,KB2开关用两个短路块插在‘1’和‘2’

从而完成实验系统与PC机的联机。

五、系统开关设置

<1)SW1

程序空间选择开关,SW1—>IP,选择CPU内部<一般不设置此模式,如果将目标程序通过烧写器写入单片机内部FALSHROM中,要运行写入的程序时需设置到该模式,一般用于项目人员的目标系统开发),SW1—>UP<出厂模式),选择CPU外部,此时可脱机运行EPROM中固化的程序,也可用仿真器进行联机实验。

(用短路块选择>

<2)SW3、SW4、SW5:

为键盘/显示选择开关,开关置ON<出厂模式),键盘/显示控制选择系统配置的8155接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。

<3)KB1开关:

KB1开关有两种工作模式,平时都工作在“一般模式”,当我们用到单片机ISP在线编程功能时,将KB1开关打在“编程模式”。

<4)KB2开关<用短路块实现):

为“MCS-51系统”与“C8051F系统”读写信号切换开关。

当使用“MCS-51系统”时,将两个短路插在‘1’和‘2’位置,使用“C8051F系统”时,将两个短路块插在‘2’和‘3’位置。

<5)仿真器所接实验系统的JF_1(IDC34>口为系统通讯口,用于程序的仿真、连接、装载。

而实验系统的CZ11口为用户实验通讯口,用于实验系统与PC机之间的串行口通讯实验。

六、DICE-DPJ-3使用注意事项

<1)脱机实验时,从矩阵键盘模块输入相应实验序号<如实验一,输入“01”),再按F0/EX即可运行该实验程序。

<2)联机实验时,首先关闭电源,将仿真器的34芯扁平线与JF_1

<3)进入DICE-51仿真开发系统后,点击菜单“设置”-》“仿真模式”-》

CPU:

选8031/8032

RAM:

选用户RAM

ROM:

选系统ROM

<4)注意在DICE-51仿真开发系统中,新建和调用的“源程序的文件名”不能含有中文字符,且英文字符不能超过8个字符。

“源程序”所在的路径中同样也不能含有中文字符,且不能超过8个字符。

正确例子:

D:

\5203k\52kasm\hw01.asm

<5)“SW1”开关不管在脱机实验或仿真器联机实验状态时都应打在‘UP’位置。

实验一、步进电机控制实验

一.实验目的:

1.了解步进电机控制的基本原理。

2.掌握控制步进电机转动的编程方法。

3.掌握程序设计方法以及如何使用仿真器排除程序错误。

二.实验设备:

1.DICE-DPJ-3单片机实验仪1台

2.计算机1台

3.通信电缆1根

三、实验内容

步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

四相步进电机的工作方式:

*单相四拍工作方式,其电机控制绕组A、B、C、D相的正转通电顺序为:

A→B→C→D→A;反转通电顺序为:

A→D→C→B→A。

*四相八拍工作方式,正转的绕组通电顺序为:

A→AB→B→BC→C→CD→D􀃆

DA→A;反向的通电顺序为:

A→AD→D→DC→C→CB→B→BA→A。

*双四拍工作方式,正转的绕组通电顺序为:

AB→BC→CD→DA→AB;反向的通电顺序为:

AB→AD→DC→CB→BA。

步进电机有如下特点:

给步进脉冲电机就转,不给步进脉冲电机就不转;步进脉冲的频率越高,步进电机转得越快;改变各相的通电方式,可以改变电机的运行方式;改变通电顺序,可以控制电机的正、反转。

本实验采用采用单相四拍工作方式,实验接线图如下图所示。

1.按照如下流程图编写程序,实现步进电机的控制。

2.实验步骤

<1)实验模块:

DP-51单片机实验装置挂箱、DP-600模块单元挂箱

<2)将DP-51CPU挂箱电源区对应直流电源插孔用双头导线与控制屏上电源连接。

<3)用20芯扁平线将DP-51和DP-600的CZ3接口对应连接。

<4)Pl.0~Pl.3接HA~HD。

执行程序,从键盘上输入数字使显示器显示,第一位为0(正转>,为1<反转),第二位0~F显示转速,第三~六位为设定步数,如输入“011000”,按F0/EX键后,步进电机开始转动,步数逐渐减小到零时步进电机停止转动,参考程序如HW19.ASM。

3.用开关量控制步进电机的转向,转速。

要求:

a)K0、K1控制步进电机的转向。

b)K2~K7控制转速,分为6档。

c)K0、K1中和K2~K7中一开关同时为有效时,步进电机才启动,其他情况步进电机不工作。

四.实验讨论:

<问题回答后,写入实验报告)

1.给HW19.ASM程序添加注释,说明各子程序所完成的功能?

2.编写并调试正向步进子程序、反向步进子程序和主程序,使步进电机转速按图执行,不断循环。

附:

HW19.ASM程序清单<仅供参考)

ORG0000H

MOVP2,#0FFH

MOV7EH,#11H

MOV7DH,#10H

MOV7CH,#10H

MOV7BH,#10H

MOV7AH,#10H

MOV79H,#10H

MOVA,#43H

MOVDPTR,#0FF20H

MOVX@DPTR,A

MOVR0,#59h

MOVA,#7eh

MOVX@r0,a

DOJ0:

MOVSP,#53H

DOJ6:

LCALLX2。

JNCDOJ5

LCALLX3

MOVR1,#7EH

SJMPDOJ6

DOJ5:

CJNEA,#16H,DOJ6

MOVA,7AH

SWAPA

ORLA,79H

MOVR6,A

MOVA,7CH

SWAPA

ORLA,7BH

MOVR7,A

MOVA,7EH

CJNEA,#00H,DOJ2

DOJ1:

MOVP1,#03H

LCALLDEL0Y

LCALLGGJ0

MOVP1,#06H

LCALLDEL0Y

LCALLGGJ0

MOVP1,#0CH

LCALLDEL0Y

LCALLGGJ0

MOVP1,#09H

LCALLDEL0Y

LCALLGGJ0

SJMPDOJ1

DOJ2:

MOVP1,#09H

LCALLDEL0Y

LCALLGGJ0

MOVP1,#0CH

LCALLDEL0Y

LCALLGGJ0

MOVP1,#06H

LCALLDEL0Y

LCALLGGJ0

MOVP1,#03H

LCALLDEL0Y

LCALLGGJ0

SJMPDOJ2

DEL0Y:

MOVA,7DH

SWAPA

MOVR2,A

MOVR5,#80H

DEL1Y:

DJNZR5,DEL1Y

LCALLSSEE

DJNZR2,DEL1Y

RET

GGJ0:

CJNER7,#00H,GGJ1

CJNER6,#00H,GGJ1

AJMPDOJ4

GGJ1:

DJNZR6,DOJ3

CJNER7,#00H,DDJ8

DOJ4:

LCALLDOJ7

SJMPDOJ4

DDJ8:

DJNZR7,DOJ3

AJMPDOJ4

DOJ3:

LCALLDOJ7

RET

DOJ7:

MOVR0,#79H

MOVA,R6

LCALLPTDS5

MOVA,R7

LCALLPTDS5

LCALLSSEE

RET

PTDS5:

MOVR1,A

ACALLPTDS6

MOVA,R1

SWAPA

PTDS6:

ANLA,#0FH

MOV@R0,A

INCR0

RET

ORG1D00H

X3:

MOVR4,A

MOVR0,#59H

MOVXA,@R0

MOVR1,A

MOVA,R4

MOV@R1,A

CLRA

POPDPH

POPDPL

MOVCA,@A+DPTR

INCDPTR

CJNEA,01H,X30

CLRA

MOVCA,@A+DPTR

X31:

MOVX@R0,A

INCDPTR

PUSHDPL

PUSHDPH

RET

X30:

DECR1

MOVA,R1

SJMPX31

X2:

MOVR6,#50H

X0:

ACALLXLE

JNBACC.5,XX0

DJNZR6,X0

MOVR6,#20H

MOVR0,#59H

MOVXA,@R0

MOVR0,A

MOVA,@R0

MOVR7,A

MOVA,#10H

MOV@R0,A

X1:

ACALLXLE

JNBACC.5,XX1

DJNZR6,X1

MOVA,R7

MOV@R0,A

SJMPX2

XX1:

MOVR6,A

MOVA,R7

MOV@R0,A

MOVA,R6

XX0:

RET

XLE:

ACALLDIS

ACALLKEY

MOVR4,A

MOVR1,#48H

MOVXA,@R1

MOVR2,A

INCR1

MOVXA,@R1

MOVR3,A

MOVA,R4

XRLA,R3

MOVR3,04H

MOVR4,02H

JZX10

MOVR2,#88H

MOVR4,#88H

X10:

DECR4

MOVA,R4

XRLA,#82H

JZX11

MOVA,R4

XRLA,#0EH

JZX11

MOVA,R4

ORLA,R4

JZX12

MOVR4,#20H

DECR2

SJMPX13

X12:

MOVR4,#0FH

x11:

MOVR2,04H

MOVR4,03H

X13:

MOVR1,#48H

MOVA,R2

MOVX@R1,A

INCR1

MOVA,R3

MOVX@R1,A

MOVA,R4

RET

LS3:

DB07H,04H,08H,05H,09H,06H,0AH

DB0BH,01H,00H,02H,0FH,03H,0EH

DB0CH,0DH

DIS:

PUSHDPH

PUSHDPL

SETBRS1

MOVR0,#7EH

MOVR2,#20H

MOVR3,#00H

MOVDPTR,#LS0

LS2:

MOVA,@R0

MOVCA,@A+DPTR

MOVR1,#22H

MOVX@R1,A

MOVA,R2

CPLA

DECR1

MOVX@R1,A

CPLA

DECR0

LS1:

DJNZR3,LS1

CLRC

RRCA

MOVR2,A

JNZLS2

INCR1

MOVA,#0FFH

MOVX@R1,A

CLRRS1

POPDPL

POPDPH

RET

LS0:

DB0C0H,0F9H,0A4H,0B0H,99H,92H

DB82H,0F8H,80H,90H,88H,83H,0C6H

DB0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

KEY:

SETBRS1

MOVR2,#0FEH

MOVR3,#08H

MOVR0,#00H

LP1:

MOVA,R2

MOVR1,#21H

MOVX@R1,A

RLA

MOVR2,A

MOVR1,#23H

MOVXA,@R1

CPLA

ANLA,#0FH

JNZLP0

INCR0

DJNZR3,LP1

MOVXA,@R1

JBACC.4,XP33

MOVA,#19H

SJMPXP3

XP33:

MOVA,#20H

XP3:

CLRRS1

RET

LP0:

CPLA

JBACC.0,XP0

MOVA,#00H

SJMPLPP

XP0:

JBACC.1,XP1

MOVA,#08H

SJMPLPP

XP1:

JBACC.2,XP2

MOVA,#10H

SJMPLPP

XP2:

JBACC.3,XP33

MOVA,#18H

LPP:

ADDA,R0

CLRRS1

CJNEA,#10H,LX0

LX0:

JNCXP35

MOVDPTR,#LS3

MOVCA,@A+DPTR

XP35:

RET

ORG0D50H

SSEE:

SETBRS1

MOVR5,#05H

SSE2:

MOV30H,#20H

MOV31H,#7EH

MOVR7,#06H

SSE1:

MOVR1,#21H

MOVA,30H

CPLA

MOVX@R1,A

MOVR0,31H

MOVA,@R0

MOVDPTR,#DDFF

MOVCA,@A+DPTR

MOVR1,#22H

MOVX@R1,A

MOVA,30H

RRA

MOV30H,A

DEC31H

MOVA,#0FFH

MOVX@R1,A

DJNZR7,SSE1

DJNZR5,SSE2

CLRRS1

RET

DDFF:

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

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

END

实验二、定时器、中断实验

一.实验目的:

1.熟悉C51的指令系统。

2.理解C51单片机内部资源的特性和应用方法。

3.熟悉单片机内部定时/计数器功能,掌握初始化编程方法。

二.实验设备:

1.DICE-DPJ-31台

2.计算机1台

3.通信电缆1根

三、实验内容

设计要求:

1.对定时器计数器0外部输入的脉冲进行计数,并送显示器显示。

流程图如下图所示:

3.用插针把8MHZ插孔和T插孔连接,P3.4依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。

参考程序如下SW09.asm。

4.编写程序,从实验系统键盘上输入时间初值,用定时器产生0.lS定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

参考程序如SW10.asm。

5.连续运行程序,在键盘上输入时间初值“时、分、秒”,按执行键F0/EX执行,数码管实时显示时间值。

四.实验讨论:

<问题回答后,写入实验报告)

1.给SW09.ASM和SW10.ASM程序添加注释,说明各子程序所完成的功能。

2.修改程序SW09.ASM使显示器上可显示到999999个脉冲个数。

3.修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。

附:

SW09.ASM程序清单<仅供参考)

ORG0000H

LJMPSE15

ORG06E0H

SE15:

MOVSP,#53H

MOVP2,#0FFH

MOVA,#43H

MOVDPTR,#0FF20H

MOVX@DPTR,A

MOVTMOD,#05H

MOVTH0,#00H

MOVTL0,#00H

SETBTR0

LO29:

MOVR2,TH0

MOVR3,TL0

LCALLZOY0

MOVR0,#79H

MOVA,R6

LCALLPTDS

MOVA,R5

LCALLPTDS

MOVA,R4

LCALLPTDS

LCALLSSEE

SJMPLO29

ZOY0:

CLRA

MOVR4,A

MOVR5,A

MOVR6,A

MOVR7,#10H

LO30:

CLRC

MOVA,R3

RLCA

MOVR3,A

MOVA,R2

RLCA

MOVR2,A

MOVA,R6

ADDCA,R6

DAA

MOVR6,A

MOVA,R5

ADDCA,R5

DAA

MOVR5,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

DJNZR7,LO30

RET

PTDS:

MOVR1,A

ACALLPTDS1

MOVA,R1

SWAPA

PTDS1:

ANLA,#0FH

MOV@R0,A

INCR0

RET

SSEE:

SETBRS1

MOVR5,#05H

SSE2:

MOV30H,#20H

MOV31H,#7EH

MOVR7,#06H

SSE1:

MOVR1,#21H

MOVA,30H

CPLA

MOVX@R1,A

MOVR0,31H

MOVA,@R0

MOVDPTR,#DDFF

MOVCA,@A+DPTR

MOVR1,#22H

MOVX@R1,A

MOVA,30H

RRA

MOV30H,A

DEC31H

MOVA,#0FFH

MOVX@R1,A

DJNZR7,SSE1

DJNZR5,SSE2

CLRRS1

RET

DDFF:

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

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

END

实验三、显示器接口实验

一.实验目的:

1.掌握数码管和LCD显示器接口工作原理及显示程序的设计。

2.利用点阵式液晶显示器显示汉字或图形。

3.熟悉汇编语言程序设计方法以及如何使用仿真器排除程序错误。

二.实验设备:

1.DICE-DPJ-3单片机实验仪1台

2.计算机1台

3.通信电缆1根

三、实验内容

1.整个显示器由8个共阴极LED数码管组成。

输入只有两个信号,它们是串行数据线DIN和移位元信号CLK。

8个串/并移位寄存器芯片74LS164首尾相连。

每片的并行输出作为LED数码管的段码。

电路原理图如下图所示,只画了5个数码管,其它3个跟前面一样。

2.编写并调试一个实验程序,让八个数码管顺次显示“51-READY”。

3.实验步骤

<1)实验模块:

DP-51单片机实验装置挂箱、DP-600模块单元挂箱

<2)将DP-51CPU挂箱电源区对应直流电源插孔用双头导线与控制屏上电源连接。

<3)用20芯扁平线将DP-51和DP-600的CZ3接口对应连接。

<4)P3.0接A/B,P3.1接CP,P1.0接/CLR,调入程序运行,八个数码管顺次显示“01234567”。

4.利用P1口作为液晶显示器接口的数据线,P3口作为其控制线,利用取模软件建立标准字库后,通过查表程序依次将字库中的字形代码送显示内存显示汉字或图形

5.实验步骤

<1)实验模块:

DP-51单片机实验装置挂箱、DP-600模块单元挂箱

<2)将DP-51CPU挂箱电源区对应直流电源插孔用双头导线与控制屏上电源连接。

<3)用20芯扁平线将DP-51和DP-600的CZ3接口对应连接。

<4)用扁平线连JP1座(P1口>到JX12座

观察液晶屏显示。

四.实验讨论:

<问题回答后,写入实验报告)

1.读EDIR.ASM程序,说明其功能。

附:

EDIR.ASM程序清单<仅供参考)

A815EQU08100H

DIREQU8FFDH

DBUFEQU39H

DCNTEQU50H

ORG0

MAIN:

MOVSP,#6FH

MOVDCNT,#20H

MOVR7,#6

MOVR0,#DBUF

CLRA

MLP0:

MOV@R0,A

INCR0

DJNZR7,MLP0

MOVDPTR,#A815

MOVA,#0C3H

MOVX@DPTR,A

MLP1:

LCALLDIR

DJNZDCNT,MLP1

MOVDCNT,#20H

CONT:

MOVR0,#DBUF

MOVR7,#6

CNT1:

MOVA,@R0

ADDCA,#1

DAA

CJNEA,#0AH,$+3

JNCCNT2

MOV@R0,A

SJMPMLP1

CNT2:

CLRA

MOV@R0,A

INCR0

DJNZR7,CNT1

SJM

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

当前位置:首页 > 表格模板 > 合同协议

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

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