单片机原理及应用实验教程.doc
文本预览下载声明
单片机原理及应用
实 验 教 程
计算机科学学院硬件技术实验室
2011.9
单片机应用开发步骤
实验一 P1口输出实验
(参考QTH-2008XS 系列单片机实验仪说明书1.2节)
【实验名称】
P1口输出实验。
【实验内容】
P1口是一个准双向口,外接八个发光二极管,设计电路和程序,使得发光二极管循环变亮。
【实验目的】
学习P1口的使用方法。
【实验电路】
【实验连线】
P10~P17分别接L1~L8。
【连线所在位置】
P10(P1.0),P11(P1.1),P12(P1.2),P13(P1.3),P14(P1.4),P15(P1.5),P16(P1.6),P17(P1.7)8根线在仿真主机部件区。
L1~L8在LED显示区。
注意:P10~P17是实验仪器上的标号,P1.0~P1.7是和P10~P17对应的标准标号。另外几个并行接口也是这样对应的,在此说明,在后面的实验中不再重复。
【实验程序】项目文件:P1.HPJ/CP1.HPJ,源程序文件:P1.ASM/CP1.C。
汇编语言程序P1.ASM:
ORG 0000H
AJMP RIGHT
ORG 0030H
RIGHT: MOV R0,#08H
MOV A,#0FFH
CLR C
RIGHT1: RRC A
MOV P1,A
CALL DELAY
DJNZ R0,RIGHT1
AJMP RIGHT
;*****************************************************************************
; /* 延时子程序 */
;*****************************************************************************
DELAY: MOV R5,#10
DELAY1: MOV R6,#50
DELAY2: MOV R7,#250
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
C51语言程序CP1.C:
#include reg51.h
#define uchar unsigned char
#define uint unsigned int
uchar rrc(uchar a,n);
uchar rrc(uchar a,n) //循环右移子程序
{
uchar b,c;
b=a(8-n);
c=an;
a=c|b;
return(a);
}
void main()
{
uchar i,temp;
uint j;
P1=0xff;
loop:
temp=0x7f;
for(i=0;i8;i++)
{
P1=rrc(temp,i);
for(j=0;j30000;j++); //延时
}
goto loop;
}
【连机调试】
主要步骤如下:(以项目文件CP1.HPJ和文件CP1.C为例)
1. 将微机的串口和单片机的串口连接(单片机的串口在单片机的仿真主机部件区最右边)。
2. 连接实验导线。
3. 连接单片机电源线并打开单片机电源。
4. 在桌面上找图标,启动。如果出现说明单片机电源未开。
5. 在“项目菜单”中打开项目文件CP1.HPJ。
6. 在“文件菜单”中打开源程序文件CP1.C。
7. 在“项目菜单”中编译连接装载。
8. 选择“!”执行,观察发光二极管的变化。
9.关闭项目。
【思考题】
分析CP2.C,比较CP2.C和CP1.C的差别。
② 打开p1.DSN,在仿真软件PROTEUS中观察此实验。
实验二 P1P3口输入输出实验
(参考QTH-2008XS 系列单片机实验仪说明书1.3节)
【实验名称】
P1P3口输入输出实验。
【实验内容】
P3口作为输入口读取开关状态,P1口作为输出口,发光二极管显示开关状态。P34(P3.4),P35(P3.5)不接开关,原因见调试部分的说明,也就是说,只使用上图中的6个开关。
【连线所在位置】
P10(P1.0),P11(P1.1),P12(P1.2),P13(P1.3),P14(P1.4),P15(P1.5),P16(P1.6),P17(P1.7)8根线在仿真主机部件区。
P30(P3.0),P31(P3.1),P32(P3.2),P33(P3.3),P34(P3.4),P35(P3.5),P36(P3.6),P37(P3.7)8根线在仿真主
显示全部