单片机原理及应用实验报告模板

  • 格式:doc
  • 大小:569.50 KB
  • 文档页数:33

下载文档原格式

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

实验报告课程名称单片机原理及应用

学院信息工程学院

实验报告一

实验报告二

实验名称简单I/O口扩展实验实验时间2014年月日

同组人员专业班级

实验类型验证性

实验地点学时 2

一、实验要求

1、P1口做为输入口,接8个扭子开关,以实验台上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

二、实验目的

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的实验方法。

三、实验说明

P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器的相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。

可以用第二个实验做一下试验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。

再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实验,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

四、实验电路

五、实验程序#include

sbit CLK=P3^0;

void main()

{ CLK=0;

WR=1;

while(1)

{ unsigned int temp=8;

P2=P1;

CLK=1;

while(temp--);

CLK=0;

}

}

六、实验中遇到的问题及解决办法

批阅成绩

签字:

年月日

实验报告三

实验名称交通灯控制实验实验时间2014年月日1234131024

同组人员专业班级

实验类型综合性

实验地点学时 2

一、实验要求

用汇编和C51编写模拟交通灯的控制程序。

二、实验目的

1.学习汇编和C51程序的编写方法。

2.学习模拟交通灯控制的实现方法。

三、实验说明

要完成本实验,首先必须了解交通路灯的亮灭规律。假设交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的红灯亮,南北路口的绿灯亮,南北方向通车,延时一段时间后,南北路口绿灯灭,黄灯开始闪烁。闪烁若干次后,南北路口红灯亮,而同时东西路口的绿灯亮,东西方向开始通车,延时一段时间后,东西路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到南北路口方向,重复上述过程。

四、实验电路

五、实验程序

#include

unsigned char segdata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char s=0,q=0;

实验报告四

实验名称外部中断实验实验时间2014年月日

同组人员专业班级

实验类型验证性

实验地点学时 2

一、实验要求

在上一实验(交通灯控制实验)内容的基础上增加允许急救车优先通过的要求。有急救车到达时,各方向交通灯信号为全红,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。

二、实验目的

1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

三、实验说明

本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、PSW外,还要注意:一是主程序中的延时程序和中断处理程序中延时程序不能混用,本实验中,主程序中的延时用的寄存器和中断延时用的寄存器应不相同。第二,主程序中往端口输出数据操作要先保存再输出。

四、实验电路

五、实验程序

#include

unsigned char code segdata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char n;

void delay(unsigned char k)

{

unsigned char i,j;

for(i=0;i

for(j=0;j<110;j++);

}

void dxshanshuo()

{

unsigned char a;

for(a=0;a<6;a++)

{

P2=0x80;

delay(100);

P2=0x00;

delay(100);

}

}

void nbshanshuo()

{

unsigned char b;

for(b=0;b<6;b++)

{

实验报告五

五、实验程序

#include

#define uchar unsigned char

#define uint unsigned int uchar a;

void delay()

{ uchar i,j;

for(i=0;i<20;i++)

for(j=0;j<110;j++);

}

void main()

{ P1=0xff;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

EA=1;

TR0=1;

while(1)