单片机实验指导书

更新时间:2024-07-06 01:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机原理及应用实验指导书

谢明华 刘辉 张文希 编写

2010.6

目 录

实验一 Keil C51集成开发环境的使用练习 ................................................................................. 1 实验二 Keil C51集成开发环境的使用练习 ................................................................................. 2 实验三 单片机I/O口控制实验 ..................................................................................................... 4 实验四 中断实验 ............................................................................................................................. 6 实验五 定时/计数器实验 ................................................................................................................ 9 实验六 串转并的I/O口实验 ....................................................................................................... 11 实验七 74HC138译码器实验 ...................................................................................................... 13 实验八 并行的模数转换实验 ....................................................................................................... 15 实验九 RS232串行通信实验 ....................................................................................................... 18 实验十 步进电机控制实验 ........................................................................................................... 21 实验十一 继电器控制实验 ........................................................................................................... 23 实验十二 键盘与显示接口程序设计 ......................................................................................... 235

2

实验一 Keil C51集成开发环境的使用练习

一.实验目的

熟悉Keil C51集成开发环境的使用方法。 二.实验设备及器件

PC机 一台 三.实验内容

进行Keil C51集成开发环境的安装和使用练习。然后按照以下内容建立文件并编译产生HEX文件。 ORG LJMP ORG Main: MOV Loop: MOV DJNZ DJNZ DJNZ DJNZ DJNZ CPL CPL CPL CPL CPL CPL CPL CPL SJMP END

0000H

Main 00F0H R7, #0

R6, #0 R6, $ R6, $ R6, $ R6, $ R7, Loop P1.0 ; P 1 .0 取反 P1.1 ; P 1 .1 取反 P1.2 ; P 1 .2 取反 P1.3 ; P 1 .3 取反 P1.4 ; P 1 .4 取反 P1.5 ; P 1 .5 取反 P1.6 ; P 1 .6 取反 P1.7 ; P 1 .7 取反 Main

四.实验要求:

熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。 五.实验思考题:

①试写一条把片内RAM 50H~59H单元清零的程序。 ②试写一条把片内 RAM 50~59H单元写入01H的程序。

1

实验二 Keil C51集成开发环境的仿真与调试

一. 实验目的

熟悉Keil C51 集成开发环境调试功能的使用和DP-51PROC 单片机综合仿真实验仪的使用。 二. 实验设备及器件

IBM PC 机 一台

DP-51PROC 单片机综合仿真实验仪 一台 三. 实验内容

进行Keil C51 集成开发环境的仿真调试练习。然后按照以下内容建立文件并编译仿真调试。 ORG 8000H LJMP Main ORG 80F0H Main: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop CPL P1.0 ; P 1 .0 取反 CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4 ; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main END 四. 实验要求

熟练掌握结合DP-51PROC 单片机综合仿真实验仪和Keil C51 集成开发环境进 行仿真调试。 五. 实验步骤

2

1. 用40 针排线把DP-51PROC 实验仪上的A1 区J76 接口和A2 区J79 接口相连,然后使用排线把A2 区的J61 接口与D1 区的 J52 接口相连。如图1 所示。

图1 实验2 原理图

2. 对DP-51PROC 实验仪上电,然后按照本书的第2 章的2.5.1 小节设置TKSMonitor51 仿真器和使用软件DPFLASH 把MON51 监控程序下载到TKSMonitor51 仿真器。 3. 关闭DPFlash 软件。把TKSMonitor51 仿真器的工作模式选择开关切换到RUN处,然后按一下复位键(RST),MON51 程序就开始运行了。此时,TKSMonitor51 仿真器进入调试状态。

4. 用户使用Keil C51 集成开发环境建立工程、编辑与编译“实验内容”所列的程序。然后按照本书的第2 章2.5.3 节的第2 点(软件调试环境的设置)设置好,然后再编译一次。 5. 此时用户就可以按照本书的第2 章2.5.4 节所讲述的方法进行仿真调试。如果用户在退出仿真调试模式后想再次进入仿真调试,可以先按一下TKSMonitor51 仿真器的复位键(RST)。用户可以在仿真调试环境下设置断点,单步,全速运行等。在调试过程中用户可以看见D1 区的LED 的亮灭是由用户程序来控制的。 六. 实验预习要求

认真阅读本书的第2 章的2.5 节内容。如果还有时间,可以把本书的第2 章的2.6节、2.7 节内容也看一下。 七. 实验思考题

(1) 如何仿真和调试C51 程序呢?(用户可以把上面的例子改为C51 程序然后再编译调试)

3

实验二 单片机I/O口控制实验

一.实验目的

利用单片机的P1口作I/O口,学会利用P1口作为输入和输出口. 二.实验设备和器件

IBM PC机 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台 三.实验内容

1. 编写程序,用P1口作为控制端口,使D1区的LED轮流亮.从D1到D8,再从D8回到D1,不断循环。 四.实验要求

学会使用单片机的P1口作为IO口.也可以利用P3口完成该实验.完成实验报告. 五.实验步骤

1.用导线把A2区的J61接口与D1区的J52接口相连. 2.先编写一个延时程序.

3.将LED轮流亮的程序编写完整并使用TKStudy ICE 调试运行.

4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连.

5.编写P1.7控制LED的程序,并调试运行.(按下K1看是否全亮)

6. A2区J61接口的P1.7与D1区的J54的SW1相连.然后再使用TKStudy ICE运行程序,查看结果. 六.实验原理图:

4

七.实验参考程序

程序1如下: ORG 8000H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0000H LJMP Main ORG 8100H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0100H

Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A SJMP MainLoop

Delay: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET END

八.实验思考

1.试用本节知识,用P1口完成流水灯,左移,右移,闪烁,全亮的程序。

5

实验四 中断实验

一.实验目的

利用单片机的中断INT0控制8个LED,进而熟练掌握单片机中断的应用. 二.实验设备及器件

IBM PC机 一台

示波器 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台

三.实验内容

编写主程序,用P1口作为控制端口,使D1区的LED轮流亮.从D1到D8,再从D8回到D1,不断循环。编写中断服务程序,中断时(按INT0时)使P1的8个LED有依次显示三种不同的花样(花样自定义),循环三次后返回主程序。 四.实验要求

通过实验熟练地掌握单片机系统中断在应用开发过程中的各种应用。

五.实验步骤

1. 用导线连接A2区的J61接口P1与D1区的J52接口的LED. 2. 用导线连接A2区的J58接口INT0与D1区的KEY1相连.

3. 运行程序,观察实验现象.并随机地按KEY1,使主程序进入中断服务程序.

六.实验原理如图

七.实验参考程序

ORG 0000H ;起始地址

JMP START ;跳到主程序START

ORG 0003H ;INT0中断子程序起始地址

6

JMP EXT0 ;中断子程序 START: MOV IE,#10000001B ;INT0中断使能 MOV IP, #00000001B ;INT0中断优先 MOV TCON, #00000000B ;INT0为电平触发 MOV SP, #70H ;;设定堆栈指针 LOOP: MOV A, #0FFH ;左移初值

CLR C MOV R2, #08 LOOP1: RLC A MOV P1, A CALL DELAY DJNZ R2, LOOP1 MOV R2, #07 LOOP2:

RRC A MOV P1, A CALL DELAY DJNZ R2, LOOP2 JMP LOOP EXT0:

PUSH ACC PUSH PSW SETB RS0 CLR RS1 MOV A, #0 MOV R2, #10 LOOP3:

MOV P1, A CALL DELAY CPL A DJNZ R2, LOOP3 POP PSW POP ACC RETI DELAY: MOV R5, #20 D1: MOV R6, #20 D2: MOV R7, #248 DJNZ R7,$ DJNZ R6, D2

;C=0

;设定左移8次 ;含C左移一位 ;输出至P1 ;延时0.2秒 ;左移8次

;设定右移7次 ;含C右移一位 ;输出至P1 ;延时0.2秒 ;左移7次 ;重复 ;将累加器的值压入堆栈保存 ;将PSW的值压入堆栈保存 ;设定工作寄存器组1 ;为使P1全亮 ;闪烁5次(全亮,全减10次) ;将A输出至P1 ;延时0.2秒 ;将A的值取反 ;闪烁5次(亮减10次)? ;从堆栈取回PSW的值 ;从堆栈取回A的值 ;返回主程序 ;0.2秒 ;10毫秒 ;0.5毫秒

7

DJNZ R5, D1

RET END

八.实验思考

通过修改程序,怎样可以使中断程序改为8个LED的流水灯。

8

实验五 定时/计数器实验

一.实验目的

利用单片机的定时/计数器控制LED,进而熟练掌握定时计数器的应用. 二.实验设备及器件

IBM PC机 一台

示波器 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台

三.实验内容

利用单片机的定时/计数器编写程序,用P1.0口输出频率为1KHZ和5KHZ的方波,使B5区的蜂鸣器发出不同频率的声音,并用示波器观察波形。

四.实验要求

学会使用单片机的定时器产生各种频率的波形。

五.实验步骤

1.用导线连接A2区的J61接口P1与B5区的BUZZ; 2.将示波器的探针连接到接口P1.0; 3.用示波器观测P1.0口的PWM波形.

六.实验原理图

七.实验参考程序

ORG 0030H ;起始地址 MOV TMOD,#00H ;设定TIMER0工作在MODE0 START: CLR C ;C=0 MOV A, #0FFH ;ACC=FFH,左移初值

9

MOV R2,#08 ;R2=08,设左移8次 LOOP: RLC A ;左移一位 MOV P1, A ;输出至P1口 MOV R3, #100 ;0.2秒 CALL DELAY ;2000微秒 DJNZ R2, LOOP ;左移8次 MOV R2, #07 LOOP1: RRC A MOV P1, A MOV R3,#100 CALL DELAY DJNZ R2,LOOP1 JMP START DELAY: SETB TR0 AGAIN: MOV TL0,#(8192-2000) MOV TH0,#(8192-2000) LOOP2: JBC TF0,LOOP JMP LOOP2 LOOP3: DJNZ R3,AGAIN CLR TR0 RET END

;R2=07,设右移7次 ;右移一位 ;输出至P1 ;0.2秒 ;2000微秒 ;右移7次 ;启动TEMER0开如计时 ;设定TL0的值 ;设定TH0的值 ;TF0为1时,是则跳至LOOP3,并清除TF0 ;不是则跳到LOOP2 ;R3是否为0?不是则跳到AGAIN ;是则停止TIMR0计数 10

实验六 串转并的I/O口实验

一.实验目的

熟悉并掌握串转并的I/O口扩展方法 二.实验设备及器件 IBM PC机 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台 三.实验内容

1.写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换. 2. 验证串并转换的正确性. 四.实验要求

熟悉串转并的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源.74HC164真值表见表1。

表1 74HC164真值表

五. 实验步骤

1.短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连(CLK对P10等)。

2.运行编写好的软件程序,完成一次串并转换.

3.使用C2区的逻辑笔或D1区的J52接口(LED指示灯)测试并行输出数据Q0~Q7数据的正确性. 六. 实验原理

11

七.实验参考程序

CLK EQU P1.0 DINA EQU P1.1 DINB EQU P1.2 CLR164 EQU P1.3 ORG 8000H LJMP MAIN ORG 8100H MAIN: MOV SP,#60H ;设置堆栈向量 NOP ;设置以下端口初始化 CLR CLK ;CLK=0 SETB DINB ;DINB=1 CLR CLR164 ;CLR=0输出端口清零 SETB CLR164 ;CLR=1 MOV A,#0AAH ;用户输出数据初始化 MOV R4,#08H SLCHG: RLC A MOV DINA,C ;串行输出一位数据 SETB CLK ;移位时钟 NOP CLR CLK NOP DJNZ R4,SLCHG SJMP $ ;程序结束,完成一次串并转换 END 八.实验思考

尝试编写程序,实现8位LED流水灯的控制。原理图同上。

12

实验七 74HC138译码器实验

一.实验目的

熟悉译码器的使用方法,灵活应用74HC138进行电路设计。 二.实验设备及器件

IBM PC机 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台 三.实验内容

1.写程序,通过单片机的P1口控制74HC138的数据输入端,从而选通相应的数据输出位。 2.将译码数据输出端口连接到8个LED指示灯,验证译码的正确性。 四.实验要求

通过实验掌握译码器的工作原理和实际应用方法。74HC138真值表见表1;图1所示为其引脚图。

表1 74HC138真值表

图1 74HC138引脚图

五.实验步骤

1.短接A3区JP4接口上的短路帽,将A3区A、B、C、G1、G2A、G2B与A2区的P10~P15相连。74HC138译码器实验原理图如图2所示。

13

图2 实验原理图

2.将D1区的LED1、LED2、LED3分别连接到A3区译码数据输出接口Y0~Y7。 3.打开程序调试软件,下载运行编写好的软件程序,查看程序运行结果是否正确。 六、实验参考程序

ORG 8000H JMP MAIN ORG 8100H

MAIN: MOV SP,#60H MOV R4,#0 DJNZ R4,$ CLR P1.5 ;设置译码器使能 CLR P1.4 SETB P1.3 ;译码数据输入 CLR P1.0 ;A=0 CLR P1.1 ;B=0 SETB P1.2 ;C=1 SJMP $ END 七.实验思考题

在单片机电路里,74HC138是如何产生片选信号的?

14

实验八 并行的模数转换实验

一.实验目的

掌握A/D芯片ADC0809与单片机的接口方法,及ADC0809芯片性能,了解单片机实现

数据采集的方法。 二.实验设备及器件

IBM PC机 一台

DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合开发平台 一台

三.实验内容

编写程序,通过ADC0809实现单片机对电位器模拟电压的采集,使用采集到的数据控制蜂

鸣器的声调。 四.实验要求

使用DP—51PRO.NET上的ADC0809做AD转换,实验仪上的电位器提供模拟量输入,

编写程序将ADC0809采集到的模拟量转换成数字量改变蜂鸣器的声调. 五.实验步骤

1. 使用导线将A2区的J66接口与B4区的J1接口从A0~A2到ADDA~ADDC分别对应相连. 2. 使用导线将A2区的J63接口的A15与B4区J1接口的/CS相连. 3. 使用导线将A2区的J58接口的INT0与B4区J1接口的/EOC相连. 4. 使用导线将A2区的J58接口的T1与D4区的J8接口的BUZZ相连. 5. 使用导线将B4区的J1接口的+VREF,--VREF分别与VCC,GND相连. 6. 使用导线将B4区的J44接口的IN0与D2区的J18中间接口相连.

7. B2区J112的1/32分频与B4区J1的CLK连接,短接B2区JP20,X2上接上晶振. 8. 使用短路片把W2电位器与VCC,GND相连,原理如图所示: 9. 编写程序,实现本实验要求. 10. 使用TKStudy仿真器调试程序.

六.实验原理

15

七.实验参考程序

AD0809 TIME0H TIME0L DAT0809

ORG AJMP ORG AJMP ORG

EQU EQU EQU DATA

7000H 0H 0H 30H

;存放采集到的数据

;A/D转换通道0的地址

0000H MAIN 0003H EXINT1

;外部中断0的入口地址

000BH ;定时器0入口地址

AJMP TIME0 ORG

0100H

MOV

SP,#60H

;设置外部中断0为边沿触发 ;中断INT0开放 ;总中断允许

;启动AD0809

MAIN:

SETB SETB SETB MOV

IT0 EX0 EA

DPTR,#AD0809

MOVX @DPTR,A MOV MOV MOV SETB

TMOD,#1

;设置定时器1为16位定时器 ;赋初值

TH0,#TIME0H TL0,#TIME0L ET0

16

;开定时器中断

SETB TR0 BUZZ:

MOV R7,DAT0809 SETB P3.5 MOV R6,3 DJNZ

R6,$

DJNZ R7,$ MOV R7,DAT0809 CLR

P3.5

MOV R6,3 DJNZ

R6,$

DJNZ R7,$

AJMP

BUZZ

EXINT1:

PUSH PSW

PUSH

ACC

CLR EX0 MOV

DPTR,#AD0809

MOVX A,@DPTR

MOV DAT0809,A SETB

EX0

POP ACC POP PSW

RETI

TIME0:

CLR TR0 MOV TH0, #TIME0H MOV TL0, #TIME0L MOV

DPTR, #AD0809

MOVX @DPTR, A

SETB TR0

RETI;

END

;定时器运行

;采样到的电压数据量,控制P3.5的翻转

;外部中断1服务子程序

;读取A/D转换的结果

;存放数据

;定时器0中断时间,为模数采样频率

;赋初值

;重新启动A/D转换

17

实验九 RS232串行通信实验

一.实验目的

利用单片机的TXD、RXD口,使用学会单片机串行口的使用。

二.实验设备及器件

IBM PC 机

一台 一台 2根

DP-51PRO.NET单片机综合仿真实验仪 串口线

三.实验内容

1. 编写一段程序,利用单片机的串行口向PC机发送0x55。

2. 编写一段程序,接收PC机向串行口发送的0x55(ASCII码为字母U),在单片机接收到

0x55的时候返回一个0x41(ASCII码为字母A)。在PC机一端,以接收到0x41(ASCII码为字母A)为完成。

四.实验要求

深刻理解SP232芯片的作用,学会使用单片机的串行口,如果有时间用户可以做一下单片机之间的串行通讯。 五.实验步骤

1. 用串口线连接PC机和DP-51PRO.NET。 ? 将TKStudy ICE仿真器与PC机的COM1连接 ? 将TKStudy ICE仿真器的仿真头插到A2区的U37;

? 将A2区J58的RXD与A1区JP15的第4脚连接,如图5.17; ? 将A2区J58的TXD与A1区JP15的第2脚连接,如图5.17; ? 再通过1根串口线,将PC区的COM2与A1区的串行口连接。 实验1

2. 编写一段程序,设置仿真器使用内部11.0592MHz晶振,利用单片机的串行口发送0x55,

波特率为9600 bps。

3. 设置PC机的串口软件使用COM2口,以9600bps通信。

4. 程序下载运行后,可以在PC的接收软件上看见接收到“UUUUU?”。

实验2

18

七.实验参考程序

ORG 0000H LJMP MAIN ORG 00F0H MAIN: MOV R7,#0 LOOP: MOV R6,#0 DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R6,$ DJNZ R7,LOOP

CPL P1.0 SJMP MAIN END 八.实验思考

改由OPEN2,CLOSE2,COM2完成本实验。

24

25

本文来源:https://www.bwwdw.com/article/8v4.html

Top