厦门理工学院电气单片机实验程序 下载本文

12电气《单片机原理与应用》实验题目

1 软件实验说明

软件实验1 C51程序设计

一、实验目的

1、熟悉C51的编程格式及相关定义。

2、熟练掌握单片机的C语言编程方法及程序设计。 3、熟练掌握WAVE6000的C语言程序仿真及调试。

二、实验要求

1、用查表方式编写y=x13+x23+x33。(x为0~9的整数)

2、有10个8位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的数据(1的个数为偶数)都要存到内RAM50H开始的数据区中。试编写有关程序。

3、有10个8位带符号二进制数,请将10个数按从小到大的顺序排列,并存到内RAM50H开始的单元中。

1

2 硬件实验说明

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

一、 实验要求

1、基本部分:

(1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

(2)P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。 2、扩展部分:

(1) 利用P1口控制发光二极管LED灯按照下面方式工作:

a) LED灯从左到右依次点亮; b) LED灯从右到左依次点亮;

c) 按照以上步骤重复运行,其中要求灯亮的时间为500ms。 (2) 利用P1口控制发光二极管LED灯按照下面方式工作:

a)从左到右奇数LED灯依次点亮; b)从右到左偶数LED灯依次点亮;

c)按照以上步骤重复运行,其中要求灯亮的时间为500ms。

二、实验目的

1. 学习P1口的使用方法。

2. 学习延时子程序的编写和使用。

三、实验电路及连线

四、实验说明

连线 连接孔1 连接孔2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 实验1: P1口循环点灯 连线 连接孔1 连接孔2 1 S0 P1.0 2 S1 P1.1 3 P1.2 L4 4 P1.3 L5 实验2: P1口输入输出 a) P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用

为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。 b) 8051延时子程序的延时计算问题,对于时钟频率为6MHz的晶振,下面程序延时时间大约为500ms。

void delay(unsigned char x) //延时500ms*x {

unsigned char i,j,k; //延时500ms do {

for(i=10;i>0;i--) for(j=100;j>0;j--) for(k=249;k>0;k--); }

while(--x);}

2

硬件实验二 外部中断(急救车与交通灯)

一、实验要求

本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为5秒,急救车通过后,交通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。

二、实验目的

1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。

三、实验电路及连线

LED0、LED1、LED2分别表 示南北方向红、黄、绿灯 LED3、LED4、LED5分别表 示东西方向红、黄、绿灯 单次脉冲

连线 1 2 3 4 5 6 7 连接孔1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 单脉冲输出 连接孔2 L0 L1 L2 L3 L4 L5 INT0(51)

四、实验说明

中断服务程序的关键是:

1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EXO位。 本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中特别要注意中断前的交通灯状态保护及延时寄存器的保护。

对于8051CPU 外部中断由INTO(P32)端接入。中断信号由单次脉冲发生器产生。

3

硬件实验三 定时器实验

一、实验要求

1、基本部分:

用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转. 2、扩展部分:

利用P1口控制发光二极管LED灯按照下面方式工作: 1)从左到右奇数LED灯依次点亮; 2)从右到左偶数LED灯依次点亮;

3)按照以上步骤重复运行,其中要求灯亮的时间为500ms,由定时器T1实现。

二、实验目的

1、学习8031内部计数器的使用和编程方法。 2、进一步掌握中断处理程序的编程方法。

三、实验电路及连线

连线 连接孔1 1 P1.0 连接孔2 L0

四、实验说明

1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。

2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100us中断一次, 所以定时常数的设置可按以下方法计算:

机器周期=12÷6MHZ=2uS

(256-定时常数)×2uS=100us

定时常数=206. 然后对100us中断次数计数10000次,就是1秒钟.

4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。

4

硬件实验四 计数器实验

一、实验要求

1、基本部分:

8031内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。 2、扩展部分:

利用T0作为定时器,T1作为计数器,将试验箱上的脉冲信号源接到T1引脚,测量出脉冲信号源的频率。

二、实验目的

1、学习8031内部定时/计数器使用方法。

三、实验电路及连线

连线 1 2 3 4 5 连接孔1 P1.0 P1.1 P1.2 P1.3 单脉冲输出 连接孔2 L0 L1 L2 L3 T0 单次脉冲

四、实验说明

1.本实验中内部计数器起计数器的作用。外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。

5

硬件实验五 并行数转换串行数实验

一、实验要求

1、基本部分:

利用74ls165读入拨盘开关的状态,利用单片机串行口将状态读入并通过P1口输出到LED,从而实现拨盘开关对LED灯的控制。

2、扩展部分:

利用4ls165读入拨盘开关的状态,利用单片机P3口将状态读入并通过P1口输出到LED,从而实现拨盘开关对LED灯的控制。

二、实验目的

1、 掌握8031串行口方式0工作方式及编程方法。 2、 掌握用8031的P1口的I/O功能,读入串行数据。 3、掌握利用串行口及I/O口,扩展I/O通道的方法。

三、实验电路及连线

四、实验说明

与上个实验一样,这个实验主要是用串并转换方法扩展I/O口。串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率Fosc/12。由软件置位串行控制寄存器的允许接收位(REN)后,才启动串行接收。待8位数据收完后,硬件将状态寄存器的RI位置1,RI必须由软件清零。用串行口工作方式0读入数据,是自动移位完成的。

6

硬件实验六 单片机串行口通讯实验

一、实验要求

1、基本部分:

利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。利用发送方的拨盘控制接收方的LED。 2、扩展部分:

利用单片机的串行口完成数据的自发自收,发送数据在内部RAM30H为首的8个单元中,数据分别是:55H,AAH,33H,CCH,0FH,F0H,66H,99H;接收后能在LED显示出接收的数据值(二进制形式)。

二、实验目的

1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的中断方式的程序编写方法。

三、实验电路

显示电路和键盘电路见硬件实验十六和硬件实验十七。

连线 连接孔1 连接孔2

1 甲方TXD 乙方RXD

甲方 乙方 2 甲方RXD 乙方TXD

3 甲方GND 乙方GND 4 KEY/LED_CS CS0

四、实验说明

1、8051的RXD、TXD接线柱在POD51仿真板上。

2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。

3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。可以用实验仪上的逻辑分析仪采样串口通信的波形

7

硬件实验七 键盘与数码管显示实验

一、实验要求

1、利用实验箱提供的显示电路,动态显示一行数据(可以是任意数据)。 2、可以利用键盘控制第一个数码管分别显示0-9数字。

二、实验目的

1. 熟悉数码管动态显示的原理及编程。 2. 熟悉按键的工作原理及编程。

三、实验线路及连线 连线:将J12、J16分别连接到单片机的P1口和P2口;P5连接座连接到单片机的P0或P3口。

四、实验说明

本实验仪提供了8 位8段码LED显示电路,学生只要按位选方式由P2口输出相应数据,就可以实现对显示器的控制。显示共有8位,用动态方式显示。

8