实验一用单片机点亮一只发光二极管LED.docx
- 文档编号:4973494
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:41
- 大小:269.72KB
实验一用单片机点亮一只发光二极管LED.docx
《实验一用单片机点亮一只发光二极管LED.docx》由会员分享,可在线阅读,更多相关《实验一用单片机点亮一只发光二极管LED.docx(41页珍藏版)》请在冰豆网上搜索。
实验一用单片机点亮一只发光二极管LED
黄石理工学院
机电工程学院
实验指导书
课程名称:
单片机原理与接口技术
实验学时:
20学时
适用专业:
机械制造及自动化、机械设计与制造、汽车运用技术、
电子仪器仪表与维修模具设计与制造、
制冷与冷藏专业
先进制造技术实验室
2005-3-10
实验一单片机系统及实验开发系统的认识
一、实验目的
1、了解单片机最小系统。
2、了解DVCC仿真系统使用方法
3、掌握P1口的输入/输出使用方法
4、编程的初步知识
二、实验设备
DVCC仿真系统一套、计算机一台。
三、实验内容
1、了解DVCC仿真系统的的部分硬件(8031、74LS373、2764)和基本使用方法。
2、了解程序编辑、汇编、修改、连接和运行的过程。
3、
将P1.0~P1.3作为输入接K0~K3,P1.4~P1.7作为输出接LED0~LED3,由K0~K3控制LED0~LED3的状态。
四、实验线路
五、实验步骤
1、由教师介绍DVCC仿真系统的的部分硬件的实物与作用。
2、在教师的指导下编辑、保存下列程序。
ORG0000H;伪指令ORG,说明机器码存储的首地址
LOOP:
MOVP1,#0FH;数据传送指令,将0FH这个数传送到P1中,定义P1.0-P1.3为输入状态。
MOVA,P1;将P1.0-P1.3引脚的状态和P1.4-P1.7锁存器的数传送到A中。
ANLA,#0FH;逻辑运算指令,寄存器A中的数与0FH进行“与”运算。
JZOVER;条件转移指令,若(A)=00H,程序转移到标号OVER处执行
SWAPA;高低字节交换指令,ACC.0-ACC.3与ACC.4-ACC.7交换。
MOVP1,A;将寄存器A中的数传送到P1,并由P1.4-P1.7输出到LED。
SJMPLOOP;无条件转移指令,程序转移到标号LOOP处执行。
OVER:
SJMP$;无条件转移指令,程序转移到标号OVER处执行,即原地等待。
END;伪指令END,表示程序结束。
3、编译、修改、连接上述程序,记录编译过程中提示的错误和修改的方法。
常见的错误有:
①数字‘0’与字母‘O’混淆。
MOVP1,#0FH写成MOVP1,#OFH
②掉了逗号。
如MOVA,P1写成MOVAP1
③助记符写错。
如ANLA,#0FH写成AMLA,#0FH
④标号后面的冒号掉了。
如OVER:
SJMP$写成OVERSJMP$
⑤标号不一致。
如SJMPLOOP写成SJMPLOP
⑥END后面有空行。
此时提示“”,修改方法是将光标放在END后面,不断地按“Delete”键。
4、打开寄存器窗口、反汇编窗口,记录本程序的机器码,了解单字节指令、双字节指令和三字节指令的含义。
5、将K0~K3全部置“1”,单步执行本程序,依次将K0~K3置“0”,第五次将K0~K3全部置“0”,观察程序执行过程中寄存器A、端口P1和LED的变化。
了解指令首地址的含义和程序计数器PC的作用,了解是如何改变程序的流程。
6、将程序MOVP1,#0FH改为MOVP1,#00H,再编译、连接、执行,观察结果有什么不同。
六、整理实验记录并回答下列问题
首地址
机器码
源程序
寄存器
LED状态(实心圆表示亮)
第1次
第2次
第3次
第4次
0000H
7401
LOOP:
MOVP1,#0FH
(P1)=
MOVA,P1
(A)=
ANLA,#0FH
(A)=
JZOVER
SWAPA
(A)=
MOVP1,A
(P1)=
SJMPLOOP
OVER:
SJMP$
错误形式
英文提示
中文意义
修改方法
LOOP:
MOVP1,#OFH
OFH改为0FH
MOVAP1
AMLA,#0FH
SJMPLOP
OVERSJMP$
END
1、什么是51单片机最小系统。
系统有哪三类总线?
2、程序计数器PC的作用是什么,本实验中哪些指令实现程序的跳转。
3、为什么说P1口是准双向I/O口?
4、简述单片机系统的工作过程。
实验二顺序结构程序设计
一、实验目的
1、顺序程序的编制;
2、
2、掌握算术运算方法及PSW标志位的变化规律;
3、掌握查表程序
3、初步了解堆栈的使用方法。
二、实验设备
DVCC仿真系统一套、计算机一台。
三、实验内容
1、单步执行程序一,按要求记录指定寄存器的内容。
2、将A中的16进制数转换为BCD码。
百位数存R3中,十位和个位放在A中。
3、查表求0~9的平方(运行10次,将运行结果填入表中)
四、程序清单
程序一
程序
A
B
CY
AC
OV
P
标志位变化的原因
ORG0000H
00H
00H
0
0
0
0
系统复位值
SETBC
MOVA,#49H
ADDCA,#27H
DAA
SUBBA,#0A5H
ADDA,#2DH
INCA
ADDCA,#95H
DIVAB
MOVB,#08H
MULAB
程序二
ORG0000H
MOVA,#0FFH;(A)=
MOVB,#100;(B)=
DIVAB;(A)=(B)=
MOVR3,A;(R3)=
MOVA,#10;(A)=
XCHA,B;(A)=(B)=
DIVAB;(A)=(B)=
SWAPA;(A)=(B)=
ADDA,B;(A)=(B)=
SJMP$
程序三
ORG0000H
第一次
第三次
第九次
第十次
MOVA,#00H
(A)=(SP)=
START:
PUSHACC
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
MOVDPTR,#TAB
MOVCA,@A+DPTR
(A)=
(A)=
(A)=
(A)=
POPACC
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
(A)=(SP)=(08H)=
INCA
(A)=
(A)=
(A)=
(A)=
SJMPSTART
TAB:
DB00H,01H,04H,09H,16H
DB25H,36H,49H,64H,81H
五、简答
1、填写下表(无影响填×,有影响填∨,确定值填1或0)
指令
P
OV
AC
CY
ADD
ADDC
SUBB
MUL
DIV
DAA
INC、DEC
2、简述PUSH、POP指令时堆栈如何变化?
程序2为什么要用堆栈?
实验三分支程序与串行I/O口
一、实验目的
1、掌握比较数据大小的方法;
2、掌握查表程序的编制方法;
3、了解串行I/O口的用法
二、实验设备
DVCC仿真系统一套、计算机一台
三、实验内容
1、X、Y以补码的形式存放在20H、21H中,编写程序实现如下函数:
1X>0
Y=0X=0
-1X<0
2、K0、K1、K2、K3组成16进制开关,其状态数由串行口输出,且由74LS164转换为并行输出到共阴极LED上显示,试编写程序。
四、实验线路
五、实验步骤
1、分别用MOV20H,#00H(80H、79H)运行方法1和2,注意执行CJNEA,#79H,NEG
时,CY的变化,熟练掌握该指令的用法
2、按实验线路接线,运行程序三,改变K0-K3的组合状态,观察LED的变化。
掌握串行口输出的程序编制,熟练掌握指令MOVCA,@A+PC在查表中的应用及偏移量的确定。
六、程序清单
程序一方法1
MOV20H,#00H
MOVA,20H
JZZERO
JBACC.7,NEG
MOV21H,#01H
SJMPOVER
NEG:
MOV21H,#0FFH
SJMPOVER
ZERO:
MOV21H,A
OVER:
SJMP$
END
方法2
MOV20H,#00H
MOVA,20H
JZZERO
CJNEA,#79H,NEG
NEG:
JCPOSI
MOV21H,#0FFH
SJMPOVER
POSI:
MOV31H,#01H
SJMPOVER
ZERO:
MOV21H,A
OVER:
SJMP$
END
程序二方法1
ORG0000H
LOOP:
MOVP1,#0FH
MOVA,P1
ANLA,#0FH
ADDA,#06H
MOVCA,@A+PC
MOVSBUF,A
JBCTI,$
SJMPLOOP
方法2ORG0000H
LOOP:
MOVP1,#0FH
MOVA,P1
ANLA,#0FH
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
JBCTI,$
SJMPLOOP
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,7EH
七、简答
1、简述执行CJNEA,#79H,NEG时,CY的变化
2、在程序一中为什么用那么多SJMPOVER指令?
3、查表的两个指令是什么。
有什么区别?
应用指令MOVCA,@A+PC时,偏移量是如何确定。
4、P3.0、P3.1分别输出什么信号?
串行口输出的指令是什么,指令JBCTI,$是什么意思。
实验四循环程序与子程序调用
一、实验目的
1、掌握子程序的编写方法和调用过程
3、
2、掌握SJMP、AJMP、LJMP的使用方法
3、掌握循环程序的编制
二、实验设备
DVCC仿真系统一套、计算机一台。
三、实验内容
1、在外部数据存储器0130H~013FH和片内RAM30H~3FH分别存放数据00H、01H……0FH。
2、在片内数据存储器20H~23H中压缩BCD码拆成单字节BCD码依次存放到28H~2FH中。
四、实验步骤
1、运行以下程序,观察子程序调用的过程,单步执行ACALLMULTWO后,堆栈有什么变化。
单步执行RET后,堆栈又有什么变化。
MOVR0,#20H
MOVR1,#30H
ACALLMULTWO
SJMP$
MULTWO:
MOVA,@R0
MOVB,@R1
MULAB
MOV@R0,A
MOV@R1,B
RET
2、编释以下程序,记录英文错误提示,改变ORG0080H,使编译通过,计算SJMP的偏移量
ORG0000H英文错误提示正确程序
START:
MOVA,#20H
SJMPNEXT
ORG0080H
NEXT:
MOVA,#30H
SJMPSTART
END
编释以下程序,记录英文错误提示,改变两句ORGXXXXH,使编译通过,且两个差值最大。
ORG00F0H英文错误提示正确程序
START:
MOVA,#20H
AJMPNEXT
ORG0100H
NEXT:
MOVA,#30H
AJMPSTART
END
3、运行程序一、二,注意访问外部RAM和片内RAM指令的区别,观察R0、R1的变化。
五、程序清单
程序一
方法1
ORG0000H
MOVP2,#01H
MOVR7,#0FH
MOVR0,#30H
CLRA
CLEAR1:
MOVX@R0,A
MOV@R0,A
INCR0
INCA
DJNZR7,CLEAR1
SJMP$
END
方法2
ORG0000H
MOVDPTR,#0130H
MOVR7,#0FH
MOVR0,#30H
CLRA
CLEAR1:
MOVX@DPTR,A
MOV@R0,A
INCR0
INCDPTR
INCA
DJNZR7,CLEAR1
SJMP$
END
程序二
ORG0000H
MOVR0,#20H
MOVR1,#28H
MOVR7,#04H
LOOP:
LCALLCZ
INCR0
INCR1
DJNZR7,LOOP
SJMP$
CZ:
MOVA,@R0
PUSHACC
SWAPA
ANLA,#0FH
MOV@R1,A
INCR1
POPACC
ANLA,#0FH
MOV@R1,A
RET
END
六、简答
1、SJMP、AJMP和LJMP的区别。
2、SJMP偏移量的范围是~,以码的形式存放。
计算方法是:
rel=-
3、简述子程序调用的过程。
实验五中断方式控制LED
一、实验目的
1、初步掌握中断的概念
2、掌握外部中断的方法
3、掌握定时/计数初始化编程方法
4、掌握中断服务程序的编制方法
二、实验设备
DVCC仿真系统一套、计算机一台
三、实验内容
1、当中断没发生时,8个LED按间隔发光。
当P3.3(INT1)为低电平时,8个LED整体闪烁16次。
2.在P3.3(INT1)发生中断后,8个LED整体闪烁16次;P3.2(INT0)中断,4个LED循环发光16次。
门P3.3(INT1)优先中断,观察两个中断顺序不同的结果有什么不同。
3、用定时器T0用工作方式1实现P1.0所控制的LED每秒钟闪烁一次。
4、5个单脉冲,LED闪烁一次,用工作方式2
2、
四、实验线路
P3.3、P3.2接K0、K1,P3.4接单脉冲,P1接8个LED。
五、实验步骤
1、内容一
(1)(开关置0立即置1,与开关置0不动有什么区别)
(2)将程序中的CLRIT1改为SETBIT1再运行。
观察发生中断时与第一次有什么不同。
(开关置0立即置1,与开关置0不动有什么区别)
(3)在中断服务程序中的PUSHACC和POPACC前面加分号”:
”再运行。
观察发生中断时与第一次有什么不同。
2.内容二
(1)在P3.3(INT1)发生中断后,P3.2(INT0)立即中断;
(2)在P3.2(INT0)发生中断后,P3.3(INT1)立即中断;
(3)在SETBPX1前加分号,再比较一次。
3、内容三
调节什么参数,使LED每秒钟闪烁一次。
4、内容四
注意工作方式2的中断服务程序与工作方式0、1的区别。
六、程序清单
程序一
主程序
ORG0000H
AJMPMAIN
ORG0013H
SJMPZD0
ORG0020H
MAIN:
CLRIT1
SETBEA
SETBPX1
SETBEX1
MOVA,#0AAH
HA1S1:
MOVP1,A
AJMPHA1S1
DELAY:
MOVR5,#0FFH
DELAY1:
MOVR4,#0FFH
DJNZR4,$
DJNZR5,DELAY1
RET
ORG0060H
ZD0:
CLREA
PUSHACC
PUSH00H
SETBEA
MOV00H,#10H
MOVA,#0FFH
LOOP:
MOVP1,A
ACALLDELAY
CPLA
ACALLDELAY
DJNZR0,LOOP
CLREA
POP00H
POPACC
SETBEA
RETI
DELAY:
MOVR5,#0FFH
DELAY1:
MOVR4,#0FFH
DJNZR4,$
DJNZR5,DELAY1
RET
程序二
主程序中断服务程序ZD0同程序一,ZD1如下:
ORG0000H
AJMPMAIN
ORG0003H
SJMPZD0
ORG0013H
SJMPZD1
ORG0020H
MAIN:
SETBIT0
SETBIT1
SETBEA
SETBPX0
SETBEX0
SETBEX1
MOVA,#0AAH
HA1S1:
MOVP1,A
AJMPHA1S1
ORG0080H
ZD1:
CLREA
PUSHACC
PUSH00H
SETBEA
MOVR0,#10H
MOVA,#0FFH
LP:
MOVP1,A
ACALLDELAY
CPLA
ACALLDELAY
DJNZR0,LP
CLREA
POP00H
POPACC
SETBEA
RETI
程序三
ORG0000H
AJMPSTART
ORG000BH
AJMPTIME0
ORG0030H
START:
CLRP1.0
MOV30H,#00H
MOVTMOD,#01H
MOVTH0,#H
MOVTL0,#H
SETBEA
SETBET0
SETBTR0
SJMP$
TIME0:
PUSHACC
PUSHPSW
INC30H
MOVA,30H
CJNEA,#20,T_RET
T_L1:
CPLP1.0
MOV30H,#0
T_RET:
MOVTH0,#H
MOVTL0,#H
POPPSW
POPACC
RETI
END
程序四
ORG0000H
AJMPSTART
ORG000BH
CPLP1.0
RETI
ORG0030H
START:
CLRP1.0
MOVTMOD,#06H
MOVTH0,#0FBH
MOVTL0,#0FBH
SETBIT0
SETBEA
SETBET0
SETBTR0
SJMP$
END
七、简答
程序一程序二
主程序
ORG0000H
AJMPMAIN
ORG0013H
SJMPZD1
ORG0020H
MAIN:
CLRIT1
SETBEA
SETBPX1
SETBEX1
MOVA,#0AAH
HA1S1:
MOVP1,A
AJMPHA1S1
DELAY:
MOVR5,#0FFH
DELAY1:
MOVR4,#0FFH
DJNZR4,$
DJNZR5,DELAY1
RET
六、结论
1、中断的定义,51系列有哪几个中断源,它们的中断入口地址分别是什么
2、简述中断的过程。
3、中断优先级由寄存器控制。
4、定时与计数有什么区别?
5、T0或T1有哪四种工作方式?
其定时常数如何计算?
工作方式2在中断服务程序中,为什么不重装时间常数?
八、
九、
十、实验线路
十一、程序清单
程序一:
程序二:
程序三
ORG0000H
CONT:
MOVSP,#53H
MOVTMOD,#05H
MOVTH0,#00H
MOVTL0,#00H
SETBTR0
CONT1:
MOVR2,TH0
MOVR3,TL0
LCALLCONT2
MOVR0,#79H
MOVA,R6
LCALLPWOR
MOVA,R5
LCALLPWOR
MOVA,R4
LCALLPWOR
LCALLDISP
SJMPCONT1
十二、结论
实验六并行接口8255控制交通灯
一、实验目的
了解8255芯片的结构及编程方法,学习交通灯控制的实现方法
二、实验内容
用8255做输出口,控制12个发光二极管亮灭,模拟交通灯管理。
初始状态0为东西红灯,南北红灯。
然后实现状态1-2-3-4-1的循环。
状态1:
东西绿灯,南北红灯;状态2:
东西绿灯灭,黄灯闪烁5次,南北红灯;状态3:
东西红灯,南北绿灯;状态4:
东西红灯,南北绿灯灭,黄灯闪烁5次。
三、实验线路
四、实验步骤
1、根据设计要求,填写下表
状态
PB口值
东
南
西
北
PC口值
绿
黄
红
绿
黄
红
绿
黄
红
绿
黄
红
PB0
PB1
PB2
PB3
PB4
PB5
PC0
PC1
PC2
PC3
PC4
PC5
0
1
2
亮
灭
3
4
亮
灭
2、根据设计要求编写程序
已知8255各端口地址如下:
PA口:
0FF28H、PB口:
0FF29H、PC口:
0FF2AH、命令口:
0FF2BH
3、调试和运行程序
五、实验程序(编写时注意利用程序段的相似性,整段复制)
ORG0000H
MOVSP,#60H
MOVDPTR,#H;写命令字
MOVA,#H
MOVX@DPTR,A
S0:
MOVDPTR,#H;PB口状态0
MOVA,#H
MOVX@DPTR,A
INCDPTR;PC口状态0
MOVA,#H
MOVX@DPTR,A
MOV20H,#55H
LCALLDELAY
S1:
MOVDPTR,#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 单片机 点亮 发光二极管 LED