2011级单片机原理与接口技术实验指导书

发布时间 : 星期日 文章2011级单片机原理与接口技术实验指导书更新完毕开始阅读

实验一 P1口输入、输出实验

一、实验目的

1、学习P1口的使用方法 2、学习延时子程序的编写和使用 二、实验说明

P1口是准双向口,它作为输出口时和一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤

用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小使用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口和八位逻辑电平显示模块。

2、安装好仿真器,用串行数据通信线连接计算机和仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。

3、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真器的设置,选择仿真器型号、仿真头型号、CPU类型。选择通信端口,点击测试串行口,通信成功既可退出设置,进行仿真。

4、根据要求编写源程序,进行编译。编译无误后,点击全速执行按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。 四、流程图及源程序

1.流程图

开始 2.源程序:

ORG 00H LOOP: MOV A, #0FEH 设置初始值 MOV R2,#8 OUTPUT: MOV P1,A 设移位次数 RL A ACALL DELAY DJNZ R2,OUTPUT 数据输出 LJMP LOOP DELAY: MOV R6,#0 MOV R7,#0 左一位 DELAYLOOP: DJNZ R6,DELAYLOOP ;延时程序 DJNZ R7,DELAYLOOP 延时 RET

END 是 否 五、思考题

(1)对于本实验延时子程序 移位次数完成? Delay: MOV R6,0 MOV R7, 0 (A)P1口循环点灯程序框图

DelayLoop:DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET

本模块使用12MHz晶振,粗略计算此程序的执行时间为多少? 六、电路图

VCC 实验二 十字路口交通灯实验 270*8一、实验目的 1、掌握51系列单片机的常用指令; 2、掌握定时器的使用方法; 3、掌握十字路口交通灯控制方法。 1OE256912151619Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7347813141718123456781312P10P11P12P13P14P15P16P17INT1INT0P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728LE二、实验内容及步骤 15VCC74LS373T114(红,绿,黄),模拟交通灯管理。1、用CPU的P1口输出控制信号,控制六个LED灯T031VCC按要求连接电路。 EA/VP33pF12MHz19X12、根据要求编写源程序,编译无误后,全速运行程序。 18X2三、实验电路连接 91033pFRESETRXD10011TXDP1.0 ●-----------------------● LED0 1 7RD30ALE/P1629WRPSENP1.1 ●-----------------------● LED1 10uFAT89C51P1.2 ●-----------------------● LED2 RESET P1.3 ●-----------------------● LED3 P1.4 ●-----------------------● LED4 P1.5 ●-----------------------● LED5 1K四、实验说明 l. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始为状态0。 LED0LED3、LED1LED4、LED2LED5分别状态0:东西红灯,南北红灯;然后转 表示东西方向绿、黄、红灯 表示南北方向绿、状态1:南北绿灯通车,东西红灯;过一段时间转 状态2:南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红灯;再转 状态3:东西绿灯通车,南北红灯;过一段时间转

状态4:东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯;最后循环至状态1。 2. 各用一组红、黄、绿色LED分别表示南北方向和东西方向红绿灯。 五、实验仪器和设备

THKSCM-2单片机开发综合实验装置、PC机、WAVE软件、E6000/S51仿真器+POD8X5X仿真头等。

11六、流程图及源程序

LED_G1 BIT P1.0 ;东西绿灯 LED_Y1 BIT P1.1 ;东西黄灯 LED_R1 BIT P1.2 ;东西红灯 LED_G2 BIT P1.3 ;南北绿灯 LED_Y2 BIT P1.4 ;南北黄灯 LED_R2 BIT P1.5 ;南北红灯 ORG 00H

START: MOV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定时初值50mS MOV TL0, #0B0H CLR TF0

SETB TR0 ;启动T0

LOOP0: MOV R2,#20 ;置1S计数初值 50mS*20=1S MOV R3,#10 ;全亮10S LCALL STATE0 ;调用状态0 WAIT0: JNB TF0,WAIT0 ;查询50mS到否 CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H

DJNZ R2,WAIT0 ;判1S到否?未到继续状态0 MOV R2,#20

DJNZ R3,WAIT0 ;状态0维持10S LOOP1: MOV R2,#20 MOV R3,#20 LCALL STATE1

WAIT1: JNB TF0,WAIT1 ;查询50mS到否 CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H

DJNZ R2,WAIT1 ;判1S到否?未到继续状态1 MOV R2,#20

DJNZ R3,WAIT1 ;状态1维持20S MOV R2,#5

MOV R4,#4 ;闪烁200mS MOV R3,#3 ;绿灯闪3S

LCALL STATE2 ;调用状态2

WAIT2:JNB TF0,WAIT2 ;查询50mS到否 CLR TF0

MOV TH0, #03CH ;恢复T0定时初值50mS MOV TL0, #0B0H

DJNZ R4,WAIT2 ;判200mS到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪 MOV R4,#4 ;闪烁200mS

DJNZ R2,WAIT2 ;判1S到否?未到继续状态2 MOV R2,#5

DJNZ R3,WAIT2 ;状态2维持3S MOV R2,#20 ; MOV R3,#2 ;黄灯亮2S

LCALL STATE3 ;调用状态3

WAIT3:JNB TF0,WAIT3 ;查询50mS到否 CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H

DJNZ R2,WAIT3 ;判1S到否?未到继续状态3 MOV R2,#20 DJNZ R3,WAIT3 ;状态3维持2S MOV R2,#20

MOV R3,#20 ;红灯20S

LCALL STATE4 ;调用状态4

WAIT4: JNB TF0,WAIT4 ;查询50mS到否 CLR TF0

MOV TH0, #3CH ;恢复T0定时初值100mS MOV TL0, #0B0H

DJNZ R2,WAIT4 ;判1S到否?未到继续状态4 MOV R2,#20 ;

DJNZ R3,WAIT4 ;状态4维持20S MOV R2,#5 ;置50mS计数初值 MOV R4,#4 ;闪烁200mS MOV R3,#3 ;绿灯闪3S

LCALL STATE5 ;调用状态5

WAIT5: JNB TF0,WAIT5 ;查询50mS到否 CLR TF0

MOV TH0, #03CH ; MOV TL0, #0B0H

DJNZ R4,WAIT5 ;判200mS到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪 MOV R4,#4 ;闪烁200mS

DJNZ R2,WAIT5 ;判1S到否?未到继续状态5 MOV R2,#5 ;

DJNZ R3,WAIT5 ;状态5维持3S MOV R2,#20 ; MOV R3,#2 ;黄灯闪2S

LCALL STATE6 ;调用状态6

WAIT6: JNB TF0,WAIT6 ;查询50mS到否 CLR TF0

MOV TH0, #3CH ; MOV TL0, #0B0H

DJNZ R2,WAIT6 ;判1S到否?未到继续状态6 MOV R2,#20

联系合同范文客服:xxxxx#qq.com(#替换为@)