单片机原理及应用实验汇编Word文档格式.docx
《单片机原理及应用实验汇编Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验汇编Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
若要存储器2000~20FFH单元的内容都改为FFH,应如何修改程序?
注意:
1.在E盘以自己的名字建立一个工作目录,用字母,不得用汉字,不超过8个字符;
源文件命名也不得使用汉字,不超过8个字符;
所有源程序必须在英文输入法状态下输入,否则编译会出错!
!
说明:
接线图中,只有粗实线需要连,其它线实验箱内均已连好。
预习报告,实验报告格式
1.实验是理工科专业必不可少的一个教学环节,是提高学生实践动手能力,巩固基础理论知识的一个重要途径,所有学生必须端正学习态度,认真对待,按照实验的基本要求做好每一个环节。
2.实验前必须按要求预习,并按指定格式写好预习报告,做实验前,预习报告交指导老师检查,经老师签字认可后方可进行实验,未写预习报告的同学不得进行实验。
预习报告格式如下:
1)实验目的
2)实验内容
3)实验仪器
4)实验原理(接口实验应包含原理接线图)
5)实验源程序
3.做实验时要认真对待,不得做与实验无关的事情,比如,聊天,玩游戏,接听手机等;
不可以在实验室吃东西,要求保持环境卫生。
4.实验接线时必须先关电源,不可带电插、接线;
实验完成后必须经指导老师验收确认。
然后应整理好导线并归还,把实验仪器恢复成实验前状态,保持实验台整洁,方可离开。
5.实验完成后,应按指定格式及时写好实验报告
6.实验报告
实验完成后,必须按要求写出实验报告,应包含以下内容:
实验目的
实验内容
实验仪器
实验原理(接口实验应包含原理接线图)
实验步骤
实验源程序
实验结果(或现象)
实验总结:
对实验结果或现象的分析,自己的收获或体会等。
实验二 P1口亮灯实验
(l)熟悉实验平台的使用方法,包括硬件平台和软件平台
(2)学习P1口的使用方法;
(3)学习延时子程序的编写。
2、
实验预备知识:
(l),Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
(2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
3、
实验内容:
P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
4、实验程序框图:
5、实验接线图:
6、
实验步骤:
(1)P1.0~P1.7用插针连至L1~L8
(2)仿真运行程序后,观察发光二极管闪亮移位情况。
7、思考:
(1)改变延时常数,使发光二极管闪亮时间改变。
(2)修改程序,使发光二极管闪亮移位方向改变。
8、
参考程序清单
LJMPSE18
ORG0790H
SE18:
MOVP1,#0FFH
;
送P1口
LO34:
MOVA,#0FEH
L1发光二极管点亮
LO33:
MOVP1,A
LCALLSE19
延时
RLA
左移位
SJMPLO33
;
循环
*******延时子程序*************
SE19:
MOVR5,#20
LO37:
MOVR6,#200
LO36:
MOVR7,#125
LO35:
DJNZR7,LO35
DJNZR6,LO36
DJNZR5,LO37
RET
END
实验三 Dais-52FD仿真开发系统的使用练习
1,实验目的:
掌握P3口、P1口简单使用。
2,实验内容:
P3.3口输入一脉冲, PI口按16进制加一方式点亮发光二极管。
3,实验程序框图:
4,
实验接线图:
5,实验步骤:
P3.3用接针连至K1,P1.0~P1.7插针连至L1~L8,K1来回拨动一次,L1~L8发光二极管按16进制方式加一点亮。
6,思考:
修改程序,使发光二极管左移方式点亮。
7,参考程序清单:
LJMPJ100
ORG0810H
J100:
J101:
JBP3.3,J101
MOVR2,#10H
LCALLDELY;
延时消除抖动
;
P3.3电平为低吗?
J102:
JNBP3.3,J102
MOVR2,#10H
LCALLDELY
P3.3电平为高吗?
INCA
加1
PUSHACC
CPLA
取反
MOVP1,A
驱动发光二极管
POPACC
AJMPJ101
*******延时子程序***********
DELY:
PUSH02H
DEL2:
DEL3:
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL2
DJNZR2,DEL3
DJNZR2,DELY
RET
END
实验四 多分支程序设计
1,
实验目的:
a.掌握多分支程序的编程方法,及在仿真环境下程序的调试方法;
b.掌握LED显示器的工作原理,控制方法及编程方法,显示电路见附件。
编写程序,根据送入的数据转移运行。
3,实验程序框图如右:
4,实验步骤:
在20H中分次送入00,01,02,03,每次运行程序后,观察数码管上数字循环情况。
20H单元数据的修改在仿真环境下通过存储器窗口来修改。
特别提示:
运行前,必须先给20H单元送数,数码管才会正常显示,否则程序可能跑飞。
5,程序清单
ORG0000H
LJMPMEMS
MEMS:
MOVA,20H
MOVDPTR,#KKKK;
散转首址
RLA;
(20)*2
JMP@A+DPTR;
转到(20)*2+DPTR
KKKK:
AJMPMEMSP0
AJMPMEMSP1
AJMPMEMSP2
SJMPMEMSP3
MEMSP0:
MOV20H,#0C0H;
0字循环
LJMPSOX0
MEMSP1:
MOV20H,#0F9H;
1字循环
MEMSP2:
MOV20H,#0A4H;
2字循环
MEMSP3:
MOV20H,#0B0H;
3字循环
---------------------------------------------
SOX0:
MOVR0,#0DCH;
字形口
MOVR1,#0DDH;
字位口
MOVX@R0,A;
往字形口送段码
MOVA,#01H;
字位码
SOX1:
MOVX@R1,A;
往字位口送字位码
MOVR2,#20H
调用延时子程序
左移
SJMPSOX1
---------------------------------------------延时子程序
PUSH02H;
DJNZR2,DEL4
RET
附件(LED显示电路):
LED显示采用动态显示方式,原理见教材。
共阳极段码送字形口,字位码送字位口(1电平选通)。
0~9共阳极段码:
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
思考题:
在20H中分次送入00,01,02,·
·
,09,每次运行程序后,使数码管上循环显示对应的数字,应如何修改程序?
实验五脉冲计数实验(定时/计数器实验)
1,
熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
2,
把定时器0外部输入的脉冲进行计数,并送显示器显示
3,
实验程序框图:
实验接线如右图:
5,
实验步骤:
用插针把8MHZ插孔和T插孔连接,P3.4依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。
7,程序清单(文件名:
timer.asm):
脉冲计数(定时/计数器实验)
LJMPSE15
ORG0060H
SE15:
MOVSP,#53H
MOVTMOD,#05H
MOVTH0,#00H
MOVTL0,#00H;
定时计数器初始化
SETBTR0;
开计数器
LO29:
MOVR2,TH0
MOVR3,TL0;
取出TH0.TL0内容
LCALLZOY0;
二转十进制
MOVR0,#79H
MOVA,R6
LCALLPTDS
MOVA,R5
MOVA,R4
LCALLPTDS;
送显示缓冲区
LCALLSSEE;
显示
SJMPLO29;
循环计数.显示
ZOY0:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A;
0送R4R5R6
MOVR7,#10H
LO30:
CLRC;
R2R3左移.移出的
MOVA,R3;
最高位送CY
RLCA
MOVR3,A
MOVA,R2
MOVR2,A
ADDCA,R6;
(R4R5R6)*2+CY送R4R5R6
DAA;
十进制调整
MOVR6,A
ADDCA,R5
DAA
ADDCA,R4
DJNZR7,LO30;
循环16次
-----------------------------------------------
PTDS:
MOVR1,A;
拆送显示缓冲区
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
--------------------------------------------
SSEE:
SETBRS1;
换工作区
MOVR5,#05H
SSE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSE1:
MOVR1,#0DDH
MOVA,30H
MOVX@R1,A;
字位送入
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR;
取字形代码
MOVR1,#0DCH
字形送入
MOVA,30H;
右移
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
关显示
DJNZR7,SSE1;
6位显示完了吗?
DJNZR5,SSE2;
5次显示完了吗?
CLRRS1
--------------------------------------------------------
DDFF:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
实验六 A/D转换实验
(1)掌握A/D转换与单片机接口的方法;
(2)了解A/D芯片0809转换性能及编程方法;
(3)通过实验了解单片机如何进行数据采集。
以上内容请参阅教材,作实验前请先预习有关知识
利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。
3,实验说明 A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;
二是逐次逼近式A/D转换器,精度、速度、价格适中;
三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。
4.实验接线图:
5,实验程序框图:
6,实验步骤:
1).138译码电路连接:
输入端A.B.C,其中A与A2相连,B与A3相连,C与A4相连,138使能控制输入端G与GS相连。
2).02门电路连接:
第1脚与模数转换单元的SC/ALE相连,第2脚与138译码单元的Y0相连,第3脚与控制总线单元的IOW相连,第4脚与模数转换单元的OE相连,第5脚与控制总线单元的IOR相连,第6脚与138译码单元的Y0相连。
3).将模数转换单元的CLK与控制总线单元的ALE相连、IN0与0~5V模拟电压电位器W1相连。
4).用8芯扁平电缆将A/D0809的D0~D7(位于下方的锁存输出单元)与数据总线单元的D0~D7相连。
连续运行程序,LED显示器右边二位显示当前采集的电压值转换后的数字量,调节W1,LED的内容将随着电压变化而相应变化,LED以十六进制方式对应显示数字量。
7,思考:
修改程序,用其它通道轮流采样显示。
8,程序清单:
===================A/D转换实验========================
LJMPSE11
SE11:
MOV7EH,#00H
MOV7DH,#08H
MOV7CH,#00H
MOV7BH,#09H
MOV7AH,#10H
MOV79H,#10H;
显示缓冲区初值
LO18:
CALLDIS;
MOVDPTR,#0FFE0H
0809的0通道采样
SSEE
MOVXA,@DPTR;
取出采样值
CALLPTDS;
采样值送显示缓冲区
SJMPLO18;
---------------------------
---------------------------显示子程序
DIS:
PUSHDPH
PUSHDPL
SETBRS1
MOVR0,#7EH
MOVR3,#00H
MOVDPTR,#LS0
LS2:
MOVCA,@A+DPTR
MOVX@R1,A
incR1
LS1:
DJNZR3,LS1
CLRC
RRCA
DECR0
JNZLS2
POPDPL
POPDPH
-------------------------------------
LS0:
DB0C0H,0F9H,0A4H,0B0H,99H,92H
DB82H,0F8H,80H,90H,88H,83H,0C6H
DB0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH
--------------------------------------
实验七 8255控制交通灯
1,实验目的:
(1)掌握8255芯片的结构及编程方法
(2)学习模拟交通控制的实现方法。
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
3,实验程序框图和交通示意图如下:
8255端口
4,实验接线图:
8255PA0~PA7 PB0~PB3接发光二极管L12~L5、L4~L1。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
附:
8255的口地址为:
PA口对应0FFD8H,PB口对应0FFD9H,PC口对应0FFDAH,控制口对应0FFDBH
6,程序清单:
LJMPJOD0
JOD0:
MOVSP,#60H
MOVDPTR,#0FFDBH;
8255初始化,向控制口写控制字
MOVA,#88H
MOVX@DPTR,A
MOVDPTR,#0FFD8H;
向A口送数据
MOVA,#0B6H
INCDPTR
MOVA,#0DH
点亮4个红灯
MOVR2,#25H
JOD3:
MOVDPTR,#0FFD8H
MOVA,#75H
MOVX@DPTR,A
东西绿灯亮,南北红灯亮
MOVR2,#55H
LCALLDELY
MOVR7,#05H
闪烁次数
JOD1:
MOVA,#0F3H
MOVA,#0CH
东西黄灯亮,南北红灯亮
MOVA,#0F7H
南北红灯亮
DJNZR7,JOD1
闪烁次数未到继续
MOVA,#0AEH
MOVA,#0BH