单片机实验PPT(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
的COM端口号,以备在KEIL C软件中做相应的设置。
5、Keil C 软件的使用 1)设置Keil C51仿真机的工作参数 这里拿keil c51 V6.14来说明(keil c51 v6.02,v6.10,v6.12的设置跟v6.14是一样的)。. 打开一个工程文件。如果你没有工程文件就要先建立一个。这里拿keil c51提供的hello.prj为例 子说明。
UB3 1
D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27
D0 D1 D2 D3 D4 D5 D6 D7
RD
5
WR 36
A0
9
A1
8
RST 35
6
RD WR A0 A1 RES ET CS
Y0
825 5CS
RB3 1
4.7K
VCC 825 5
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
mov a, #90h
;命令字:PA-输入
movx @dptr,a
;
PB-输出
m: mov dptr,#8000h ;PA口地址
movx a,@dptr
;读PA口状态
lcall delay
mov dptr,#8001h ;PB口地址
movx @dptr,a
;写PB口数据
lcall delay
ajmp m
JNB P3.3 , INT1PRO
RETI
DELAY_100MS: MOV R1,#199 ;延时子程序
DL2: MOV R2, #250
DL1:
DJNZ R2,DL1 ;内循环
DJNZ R1,DL2 ;外循环
RET
DELAY: MOV R1,#50
;短延时子程序
D2: MOV R2, #50
//接收中断
;汇编查询方式 ORG 0000H AJMP MAIN ORG 0030H
MAIN: MOV SCON,#50H MOV TMOD,#21H MOV TH1,#0fdH MOV TL1,#0fdH SETB TR1
LOOP: JNB RI,LOOP CLR RI MOV R0,SBUF INC R0 MOV SBUF,R0 JNB TI,$ CLR TI SJMP LOOP END
DJNZ R7,DELAY1 RET END
;实现按键控制继电器通断
ORG 0000H
AJMP START
ORG 0030H
START: JNB P1.7, JZD ;P1.7-K1
SETB P1.0 ;高电平常闭
SJMP START
JZD: CLR P1.0 ;低电平常开
SJMP START
V CC
9 0 13 QD3 1
JZ
V CC
J D Q1
JK
L1
JB
L2
G ND
二、实验内容与步骤
利用P1 1、把8031的P1.0插孔接到JIN端。 2、把继电器的JZ(中心轴头)接VCC,JB常闭开关接L1,JK常开开关接L2。 3、编制程序,使P1.0电平变化,低电平时继电器吸合,常开触点接上L1熄灭,L2点亮,高电平
(1)用鼠标点击菜单的project,选择open project。如图
(2)选择keil\c51\examples\hello\hello,点击打开,如图:
(3)选择菜单的Project->Option for Target‘Simulator’,如图:
(3.1)选择C51栏的设置如图:删掉define:里的MONITOR51这几个字母,如果define栏是空的, 可以跳过这一步:
unsigned char data c; if (_testbit_(TI)) { LED=1;
} if (_testbit_(RI)) {
c=SBUF; LED=0; SBUF=c+1; } }
void main(void) {
INIT_TMR(); INIT_SCI(); while(1); }
B_485
7 8
2
3 7
4 8
9
5
GND
2 32 /48 5
1
6
//串口调试程序 //功能比较简单,PC发送一个字符,单片机收到后将收到的字符的下一个字符发送给PC, 如PC发一个"A",单片机将发还一个"B"。通信参数为9600,8N1。*/ #include <reg51.h> #include <intrins.h> sbit LED=P1^3; void INIT_SCI() {
D1: DJNZ R2,D1 ;内循环
DJNZ R1,D2 ;外循环
RET
一本、实实验验采原用理JZC实—验2三3F继型电继器电控器,制其实验控制电压为5V。继电器电路中一般要在继电器的线圈两头加 一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。
P1 .0
J IN
R D3 4 1K
DD3 1 IN40 0 1
LOOP: MOV P1,A ;点亮一位LED
ACALL DELAY_100MS ;延时100ms
RL A
;左移一位,为下次显示作准备
AJMP LOOP
;跳回去循环
INT1PRO: SETB P2.7 ;int1中断服务程序(蜂鸣器响)
ACALL DELAY
CLR P2.7
ACALL DELAY
第一部分 51系统部分及仿真器使用说明
一、51单片机仿真部分使用说明 系统专配的仿真器是一个支持keil c51设计软件的软件断点仿真机。该仿真器使用一片
SST89C58AT90S8515来实现仿真功能(主CPU CPU),两片CPU之间通过一根I/O引脚通讯 (通讯速率在33兆晶振时约100KBPS),主CPU负责跟keil c51通讯,用户CPU只跟 主CPU通 讯,仿真器结构框图如下:
LOOP: MOV P1,A
;点亮一位LED
ACALL DELAY_100MS ;延时100ms
RL A ;左移一位,为下次显示作准备
AJMP LOOP
;跳回去循环
DELAY_100MS: MOV R1,#199 ;延时子程序
DL2: MOV R2, #250
DL1: DJNZ R2,DL1 ;内循环
1、 实验原理图
2、实验步骤 1)P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。 2)调试、运行程序test1中的MCUIO.ASM。 3)开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。
思考题:流水灯程序设计
ORG 0000H
MOV A,#0FEH ;点亮第1个LED的初值
实验一五、实并验行原I/理O接口8255应用实验
用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB 通过PA口接8个开关K1~K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显
示,拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。
实验接线图:
1、仿真机的连接 1)将随机配备的专用仿真器按标志字符向上的方向插到51CPU仿真区的JFZ位置; 2)仿真器上的8位开关1和8在ON位置,其余在OFF位置。
2、使用USB接口的仿真器特别说明 1)先运行 USB_DRV.EXE程序,以安装USB驱动; 2)打开电源; 3)将随机配备的USB通信线一头连仿真器,另一头连电脑; 4)电脑显示找到新设备,让系统自己找驱动并且安装。 5)安装完成后,到控制面板->系统->硬件->设备管理器->端口 里面确认一下USB转串口
SCON=0X50; ES=1; EA=1; }
void INIT_TMR() {
TMOD=0X21; TH1=0xfd; /* 4800bps=0xfa, 9600=0xfd, 1200=0xe8, 2400=0xf4*/ TL1=0xfd; TR1=1; }
void serial_int(void) interrupt 4 {
4
PA0
3
PA1
2
PA2
1
PA3
40 PA4
39 PA5
38 PA6
37 PA7
K1 K2 K3 K4 K5 K6 K7 K8
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
18 PB0 19 PB1 20 PB2 21 PB3 22 PB4 23 PB5 24 PB6 25 PB7
L0 L1 L2 L3 L4 L5 L6 L7
CC81
2 24
1
3
4
5
CC82
2 24
11
SWt 12
10 9
UC8
C1+ C3+
C1-
C3-
C2-
C4-
C2+ C4+
TLIN RSOT TLOT RSIN
TLIN RSOT TLOT RSIN
RS23 2
C17 GND
6 2 24
C19
15
0 .1
16
2
C18 1 4 2 24
VCC
13
A_485
Baudrate:设置为57600,仿真机固定使用57600bps跟keil通讯。 Serial Interrupt:选中它。 Cache Options: 可以选也可以不选,推荐选它,这样仿真机会运行的快一点。 最后点击ok后确定,再关闭你的设置窗口。
(6)编译你的程序,选择Project -> Rebuild all target files
DJNZ R1,DL2 ;外循环
RET
END
实验二 单片机I/O口应用实验 1、 实(验工内业容顺序控制)
8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效, 设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟 开关,P3.3为0时不断告警,P1.7为报警声音输出。
(4)选择debug栏的设置项目: Use: Keil Monitor-51 Driver 。 Load Application at Start:选择这项之后,keil才会自动装载你的程序代码。 Go till main:调试c语言程序时可以选择这一项,pc会自动运行到main程序处。
(5)点击上图的Settings,打开新的窗口: Port:设置你的串口号,在“使用USB接口的仿真器特别说明”中的第四点里确认的 串口号。
END
实验四 8051串行接口与PC机通信实验 一、实验原理
实验时需将8051串行接收信号线P3.0(RXD)连到RS232通信区的RXD_232插孔,8051的 P3.1(TXD)连到RS232通信区的TXD_232插孔上。
TPC P3. 1 TXD_2 3 2
CPU
RPC P3. 0 RXD_2 3 2
2、实验电路图
修改程序:
ORG 0000H
Baidu Nhomakorabea
AJMP MAIN
ORG 0013H
;INT1中断入口
LJMP INT1PRO
ORG 0030H
MAIN: SETB EA
;INT1中断初始化
SETB EX1
SETB IT1
JB P3.4 ,$
;当K1为低电平时运行
MOV A,#0FEH ;点亮第1个LED的初值
时继电器不工作,常闭触点闭合,L1点亮,L2 4、调试运行程序中的JDQ.ASM,L1、L2交替亮灭。
附:参考程序 ORG 0000H AJMP START ORG 0030H
START: SETB P1.0 LCALL DELAY CLR P1.0 LCALL DELAY SJMP START
DELAY: MOV R7,#0FFH DELAY1: MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2
delay: mov r6,#00h
djnz r6,$
ret
//PA口输入,8255驱动B口LED发光
#include <reg51.h>
#include <absacc.h>
#define COM8255 XBYTE[0x8FFF] /*命令口地址*/
#define PA8255 XBYTE[0x8FFC] /*口A地址*/
(7)编译完毕之后,选择Debug->Start/Stop Debug Session,就进入仿真了。
(8)装载代码之后,在左下角显示如图: Connected to Monitor-51 V1.0 表示连接到仿真机,仿真机的版本号为1.0 。
第二部分 实验指导
实验一 单片机I/O口应用实验 ( P3.3口输入 P1口输出)
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 PC0 15 PC1 16 PC2 17 PC3 13 PC4 12 PC5 11 PC6 10 PC7
附:参考程序
org 0000h
ajmp main
org 0030h
main: mov sp,#60h
mov dptr,#8003h ;命令口地址
5、Keil C 软件的使用 1)设置Keil C51仿真机的工作参数 这里拿keil c51 V6.14来说明(keil c51 v6.02,v6.10,v6.12的设置跟v6.14是一样的)。. 打开一个工程文件。如果你没有工程文件就要先建立一个。这里拿keil c51提供的hello.prj为例 子说明。
UB3 1
D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27
D0 D1 D2 D3 D4 D5 D6 D7
RD
5
WR 36
A0
9
A1
8
RST 35
6
RD WR A0 A1 RES ET CS
Y0
825 5CS
RB3 1
4.7K
VCC 825 5
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
mov a, #90h
;命令字:PA-输入
movx @dptr,a
;
PB-输出
m: mov dptr,#8000h ;PA口地址
movx a,@dptr
;读PA口状态
lcall delay
mov dptr,#8001h ;PB口地址
movx @dptr,a
;写PB口数据
lcall delay
ajmp m
JNB P3.3 , INT1PRO
RETI
DELAY_100MS: MOV R1,#199 ;延时子程序
DL2: MOV R2, #250
DL1:
DJNZ R2,DL1 ;内循环
DJNZ R1,DL2 ;外循环
RET
DELAY: MOV R1,#50
;短延时子程序
D2: MOV R2, #50
//接收中断
;汇编查询方式 ORG 0000H AJMP MAIN ORG 0030H
MAIN: MOV SCON,#50H MOV TMOD,#21H MOV TH1,#0fdH MOV TL1,#0fdH SETB TR1
LOOP: JNB RI,LOOP CLR RI MOV R0,SBUF INC R0 MOV SBUF,R0 JNB TI,$ CLR TI SJMP LOOP END
DJNZ R7,DELAY1 RET END
;实现按键控制继电器通断
ORG 0000H
AJMP START
ORG 0030H
START: JNB P1.7, JZD ;P1.7-K1
SETB P1.0 ;高电平常闭
SJMP START
JZD: CLR P1.0 ;低电平常开
SJMP START
V CC
9 0 13 QD3 1
JZ
V CC
J D Q1
JK
L1
JB
L2
G ND
二、实验内容与步骤
利用P1 1、把8031的P1.0插孔接到JIN端。 2、把继电器的JZ(中心轴头)接VCC,JB常闭开关接L1,JK常开开关接L2。 3、编制程序,使P1.0电平变化,低电平时继电器吸合,常开触点接上L1熄灭,L2点亮,高电平
(1)用鼠标点击菜单的project,选择open project。如图
(2)选择keil\c51\examples\hello\hello,点击打开,如图:
(3)选择菜单的Project->Option for Target‘Simulator’,如图:
(3.1)选择C51栏的设置如图:删掉define:里的MONITOR51这几个字母,如果define栏是空的, 可以跳过这一步:
unsigned char data c; if (_testbit_(TI)) { LED=1;
} if (_testbit_(RI)) {
c=SBUF; LED=0; SBUF=c+1; } }
void main(void) {
INIT_TMR(); INIT_SCI(); while(1); }
B_485
7 8
2
3 7
4 8
9
5
GND
2 32 /48 5
1
6
//串口调试程序 //功能比较简单,PC发送一个字符,单片机收到后将收到的字符的下一个字符发送给PC, 如PC发一个"A",单片机将发还一个"B"。通信参数为9600,8N1。*/ #include <reg51.h> #include <intrins.h> sbit LED=P1^3; void INIT_SCI() {
D1: DJNZ R2,D1 ;内循环
DJNZ R1,D2 ;外循环
RET
一本、实实验验采原用理JZC实—验2三3F继型电继器电控器,制其实验控制电压为5V。继电器电路中一般要在继电器的线圈两头加 一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。
P1 .0
J IN
R D3 4 1K
DD3 1 IN40 0 1
LOOP: MOV P1,A ;点亮一位LED
ACALL DELAY_100MS ;延时100ms
RL A
;左移一位,为下次显示作准备
AJMP LOOP
;跳回去循环
INT1PRO: SETB P2.7 ;int1中断服务程序(蜂鸣器响)
ACALL DELAY
CLR P2.7
ACALL DELAY
第一部分 51系统部分及仿真器使用说明
一、51单片机仿真部分使用说明 系统专配的仿真器是一个支持keil c51设计软件的软件断点仿真机。该仿真器使用一片
SST89C58AT90S8515来实现仿真功能(主CPU CPU),两片CPU之间通过一根I/O引脚通讯 (通讯速率在33兆晶振时约100KBPS),主CPU负责跟keil c51通讯,用户CPU只跟 主CPU通 讯,仿真器结构框图如下:
LOOP: MOV P1,A
;点亮一位LED
ACALL DELAY_100MS ;延时100ms
RL A ;左移一位,为下次显示作准备
AJMP LOOP
;跳回去循环
DELAY_100MS: MOV R1,#199 ;延时子程序
DL2: MOV R2, #250
DL1: DJNZ R2,DL1 ;内循环
1、 实验原理图
2、实验步骤 1)P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。 2)调试、运行程序test1中的MCUIO.ASM。 3)开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。
思考题:流水灯程序设计
ORG 0000H
MOV A,#0FEH ;点亮第1个LED的初值
实验一五、实并验行原I/理O接口8255应用实验
用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB 通过PA口接8个开关K1~K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显
示,拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。
实验接线图:
1、仿真机的连接 1)将随机配备的专用仿真器按标志字符向上的方向插到51CPU仿真区的JFZ位置; 2)仿真器上的8位开关1和8在ON位置,其余在OFF位置。
2、使用USB接口的仿真器特别说明 1)先运行 USB_DRV.EXE程序,以安装USB驱动; 2)打开电源; 3)将随机配备的USB通信线一头连仿真器,另一头连电脑; 4)电脑显示找到新设备,让系统自己找驱动并且安装。 5)安装完成后,到控制面板->系统->硬件->设备管理器->端口 里面确认一下USB转串口
SCON=0X50; ES=1; EA=1; }
void INIT_TMR() {
TMOD=0X21; TH1=0xfd; /* 4800bps=0xfa, 9600=0xfd, 1200=0xe8, 2400=0xf4*/ TL1=0xfd; TR1=1; }
void serial_int(void) interrupt 4 {
4
PA0
3
PA1
2
PA2
1
PA3
40 PA4
39 PA5
38 PA6
37 PA7
K1 K2 K3 K4 K5 K6 K7 K8
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
18 PB0 19 PB1 20 PB2 21 PB3 22 PB4 23 PB5 24 PB6 25 PB7
L0 L1 L2 L3 L4 L5 L6 L7
CC81
2 24
1
3
4
5
CC82
2 24
11
SWt 12
10 9
UC8
C1+ C3+
C1-
C3-
C2-
C4-
C2+ C4+
TLIN RSOT TLOT RSIN
TLIN RSOT TLOT RSIN
RS23 2
C17 GND
6 2 24
C19
15
0 .1
16
2
C18 1 4 2 24
VCC
13
A_485
Baudrate:设置为57600,仿真机固定使用57600bps跟keil通讯。 Serial Interrupt:选中它。 Cache Options: 可以选也可以不选,推荐选它,这样仿真机会运行的快一点。 最后点击ok后确定,再关闭你的设置窗口。
(6)编译你的程序,选择Project -> Rebuild all target files
DJNZ R1,DL2 ;外循环
RET
END
实验二 单片机I/O口应用实验 1、 实(验工内业容顺序控制)
8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效, 设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟 开关,P3.3为0时不断告警,P1.7为报警声音输出。
(4)选择debug栏的设置项目: Use: Keil Monitor-51 Driver 。 Load Application at Start:选择这项之后,keil才会自动装载你的程序代码。 Go till main:调试c语言程序时可以选择这一项,pc会自动运行到main程序处。
(5)点击上图的Settings,打开新的窗口: Port:设置你的串口号,在“使用USB接口的仿真器特别说明”中的第四点里确认的 串口号。
END
实验四 8051串行接口与PC机通信实验 一、实验原理
实验时需将8051串行接收信号线P3.0(RXD)连到RS232通信区的RXD_232插孔,8051的 P3.1(TXD)连到RS232通信区的TXD_232插孔上。
TPC P3. 1 TXD_2 3 2
CPU
RPC P3. 0 RXD_2 3 2
2、实验电路图
修改程序:
ORG 0000H
Baidu Nhomakorabea
AJMP MAIN
ORG 0013H
;INT1中断入口
LJMP INT1PRO
ORG 0030H
MAIN: SETB EA
;INT1中断初始化
SETB EX1
SETB IT1
JB P3.4 ,$
;当K1为低电平时运行
MOV A,#0FEH ;点亮第1个LED的初值
时继电器不工作,常闭触点闭合,L1点亮,L2 4、调试运行程序中的JDQ.ASM,L1、L2交替亮灭。
附:参考程序 ORG 0000H AJMP START ORG 0030H
START: SETB P1.0 LCALL DELAY CLR P1.0 LCALL DELAY SJMP START
DELAY: MOV R7,#0FFH DELAY1: MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2
delay: mov r6,#00h
djnz r6,$
ret
//PA口输入,8255驱动B口LED发光
#include <reg51.h>
#include <absacc.h>
#define COM8255 XBYTE[0x8FFF] /*命令口地址*/
#define PA8255 XBYTE[0x8FFC] /*口A地址*/
(7)编译完毕之后,选择Debug->Start/Stop Debug Session,就进入仿真了。
(8)装载代码之后,在左下角显示如图: Connected to Monitor-51 V1.0 表示连接到仿真机,仿真机的版本号为1.0 。
第二部分 实验指导
实验一 单片机I/O口应用实验 ( P3.3口输入 P1口输出)
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 PC0 15 PC1 16 PC2 17 PC3 13 PC4 12 PC5 11 PC6 10 PC7
附:参考程序
org 0000h
ajmp main
org 0030h
main: mov sp,#60h
mov dptr,#8003h ;命令口地址