单片机实验报告山东大学

  • 格式:doc
  • 大小:5.26 MB
  • 文档页数:61

下载文档原格式

  / 61
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三单元Proteus 系统仿真实验

实验一基本并行口I/O口实验自我完成实验

1、实验要求

当按键SW1 按下之后,D1-D8 轮流点亮,点亮时间为100ms,当按键停下后,停止轮换,再次按下后继续轮换。

2、编程思路

①进行初始化工作,包括设置堆栈指针SP,将P2 口所有位设置为1,使P2 口所接发光二

极管全部熄灭。将显示缓冲单元(设为20H 单元)初始化为FEH。

②从P1 口读数据,查看P1.0 位,如果P1.0 位为0,则执行如下循环:将显示缓冲单元

的值送给P2 口,调用100ms 延时程序,将显示缓冲单元的值循环左移 1 位,再送回显示缓

冲单元。如果P1.0 位不为0 则不执行上述循环。

③重复上面的操作②

3、实验步骤

①根据上述实验内容,参考 1.2.2,在Proteus 环境下建立图 3.5 所示原理图,并将其保

存为basicIO_self.DSN 文件。

②根据(2)和(3)编写控制源程序,将其保存为basicIO_self.asm。

③将源程序添加到U1 中,并构造(build)该程序。

④执行仿真过程观察D1-D8 的指示,查看程序功能是否正确。

⑤修改延时程序延时参数,重新执行③和④。

4、源程序

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:

MOV SP,#60H

MOV P2,#0FFH

MOV A,#0FEH

MOV 20H,A;缓冲单元

LOOP:

JNB P1.0,LOOP1; ;如果P1.0=0,跳转

SJMP LOOP ;否则循环不断检测

LOOP1:

MOV P2,20H ;将缓冲单元内的值给P2口

LCALL DELAY100MS ;延时100ms

; MOV A,20H

RL A ;左移一位

MOV 20H,A

JB P1.0,LOOP;如果P1.0=1,跳转到LOOP处LJMP LOOP1;否则循环

DELAY100MS:MOV R7,#200 ;1us

DL:MOV R6,#248 ;1us

DJNZ R6,$ ;248*2=496us

NOP ;1us

DJNZ R7,DL ;2us

RET

;(496+1+1+2)*200+1=100.001ms

END

5、电路图

6、仿真结果

当按键SW1 按下之后,D1-D8 轮流点亮,点亮时间为100ms,当按键停下后,停止轮换,再次按下后继续轮换。

实验二扩展并行I/O口实验自我完成实验

1、实验要求

仿真实现交通信号灯控制功能。

控制顺序为:

①南北绿灯亮,同时东西红灯亮10s;

②南北黄灯亮,同时东西红灯亮2s;

③南北红灯亮,同时东西绿灯亮10s;

④东西黄灯亮,同时南北红灯亮2s;

⑤重复①~④。

2、编程思路

①进行初始化工作,包括设置堆栈指针SP,将两个373 的输出口所有位均设置为1,使所有发光二极管全部熄灭。

②分析两个373 的地址:

假定所有无关地址均定义为1,那么U4 的锁存地址为:#0FE00H,U5 的锁存地址为:#0FD00H。

③分析4 个状态下两个373 的输出数据值:

假定“南北绿灯亮,同时东西红灯亮”为状态1,即:Stat1;“南北黄灯亮,同时东西红灯亮”为状态2,即:Stat2;

“南北红灯亮,同时东西绿灯亮”为状态3,即:Stat3;

“东西黄灯亮,同时南北红灯亮”为状态4,即:Stat4。

3、实验步骤

①根据上述实验内容,参考 1.2.2,在Proteus 环境下建立图 3.7 所示原理图,并将其保

存为expandIO_self.DSN 文件。

②根据(2)和(3)编写控制源程序,将其保存为expandIO_self.asm。

③将源程序添加到U1 中,并构造(build)该程序。

④执行仿真过程观察各个方向的交通信号灯指示,查看程序功能是否正确。

4、源程序

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:

MOV SP,#60H

MOV A,#0FFH

MOV DPTR,#0FE00H

MOVX @DPTR,A

MOV DPTR,#0FD00H

MOVX @DPTR,A

STAT1:

MOV A,#0F3H

MOV DPTR,#0FE00H

MOVX @DPTR,A

MOV A,#0CH

MOV DPTR,#0FD00H

MOVX @DPTR,A

LCALL DELAY10S

STAT2:

MOV A,#0C3H

MOV DPTR,#0FE00H

MOVX @DPTR,A

MOV A,#0FH

MOV DPTR,#0FD00H

MOVX @DPTR,A

LCALL DELAY2S

STAT3:

MOV A,#0FCH

MOV DPTR,#0FE00H

MOVX @DPTR,A

MOV A,#03H

MOV DPTR,#0FD00H

MOVX @DPTR,A

LCALL DELAY10S