单片机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*课题:I /O口输出实验—LED流水灯实验
实验要求:利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。
实验目的:1、掌握单片机最小系统的构成;
2、掌握I/O口的使用及驱动能力的概念;
3、熟悉移位指令和软件延时程序。
教学课时:2
教学方法:板书,多媒体
教学内容与步骤:
1、实验电路及连线
2、主要知识点概述:
本实验涉及到三个知识点:单片机最小系统的构成、单片机I/O口的使用以及软件延时程序的编写。
1)单片机最小系统由单片机芯片、时钟电路以及复位电路构成。
2)I/O口的使用:P1口是准双向口。它作为输出口时与一般的双向口使用
方法相同,即当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据可能是不正确的。
3)延时子程序的延时计算问题。对于程序
DELAY:MOV R6,#200
DEL1:MOV R7,#250
DEL2:DJNZ R7,DEL2
DJNZ R6,DEL1
RET
由指令表可知MOV、DJNZ指令均需用两个机器周期,在采用12MHz晶振时,一个机器周期时间长度为1us,所以该段程序执行时间约为:[(250*2+2)*200+2]*1us=1000402≈100ms
3、实验流程图
4、实验步骤
a、建立实验程序并编译,加载hex文件,仿真;
b、如不能正常工作,打开调试窗口进行调试
参考程序:
ORG 0030H
START: MOV R2,#8
MOV A,#0FEH
LOOP: MOV P1,A
LCALL DELAY
RL A
DJNZ R2,LOOP
LJMP START
DELAY: MOV R5,#20 ;延时程序,延时0.2s D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
课题:BCD码译码的多位数码管扫描显示实验
实验要求:利用51单片机、BCD译码芯片74LS47和两位LED构成一个数码管扫描显示系统。
实验目的:1.掌握BCD译码电路的工作原理。
2.掌握多位数码管显示的编程。
教学课时:2
教学方法:板书,多媒体
教学内容与步骤:
1、实验电路及连线
2、主要知识点
二进制编码的十进制数,简称BCD码(Binary coded Decimal),此例中,74LS47完成BCD编码的功能。+
多位LED显示,先往段码端口输出段码,再选通位选,对应的LED显示。3.实验效果说明
两个数码管同时循环显示0~9。
4、实验程序流程图
5、实验步骤
a.建立实验程序并编译,加载hex文件,仿真;
b.如不能正常工作,打开调试窗口进行调试。
参考程序:
ORG 00H
L: MOV A, #0 ;设置显示初值
MOV R0, #10 ;设置显示个数START:MOV P0, A ;向P0口输出显示段码SETB P3.0
SETB P3.1 ;位选
LCALL DELAY
INC A
DJNZ R0, START
JMP L
DELAY: MOV R5, #50 ;延时程序
D1: MOV R6, #20
D2: MOV R7, #248
DJNZ R7, $ DJNZ R6, D2 DJNZ R5, D1 RET
END
课题:8051与PC之间串行通信实验
实验要求:51单片机的串行口经MAX232(实际使用MAX202,二者功能一样)电平转换后,与PC串口相连,实现51和PC的通信。
实验目的:1.掌握8051单片机串行口软件编程和硬件使用方法;
2.了解PC超级终端(串口调试助手)和RS232的使用。
教学课时:2
教学方法:板书,多媒体
1、实验电路图
使用CPU板,用串口延长线将其和PC相连。使用06板接入一按键到P3。5口线。
2、主要知识点概述
在简单的应用中,最常用的是MAX232电路。它只需要有3条线即可完成通信,分别是第二脚RXD , 第3脚TXD ,第5脚GND。串行通信与单片机之间的接口:由于串行通信的电平逻辑定义是+15V(高电平1)-15V(低电平0) 而单片机中分别用5V ,0V 来表示1,0 它们之间必须通过电平转换才可以完成通信。
实验流程图:
3、步骤
a、建立实验程序并编译,加载hex文件,仿真;
b、如不能正常工作,打开调试窗口进行调试
参考程序:
ORG 0000H
MOV SCON,#50H
MOV TMOD,#20H
MOV PCON,#00H
MOV TH1,#0FdH ;预置初值,设波特率为9600K
MOV TL1, #0FdH
SETB TR1
WRIT: JB P3.5,$
ACALL DELAY10
JB P3.5,WRIT
JNB P3.5,$
MOV A, #01H ;将16进制的字符01发送到串口去
MOV SBUF,A
AJMP WRIT
DELAY10: MOV R1,#20 ;10毫秒延时子程序
D2: MOV R2,#248
DJNZ R2,$
DJNZ R1,D2
RET
END