单片机原理及应用实验指导书11春 下载本文

实验一 仿真系统的使用与程序的调试

1. 实验目的:

(1)了解Keil uVision2环境的基本使用方法

(2)了解实验板的资源分布及各个资源之间的工作关系 (3)了解51TRACER仿真器的基本原理及使用方法

(4)练习基本的单片机指令,掌握简单程序的软件仿真方法 (5)掌握在Keil uVision2环境下实现实验板上流水灯的控制

2. 实验器材:

安装有中文版Keil uVision2的计算机、51TRACER仿真器、实验板、杜邦插线若干

注意:51TRACER仿真器通过USB给实验板供电,实验板不需要单独通过变压器供电(除了DA实验)

3. 实验内容:

(1)双击桌面上的Uv2.exe快捷图标

,打开KEIL uVISION2开发环境。点击

桌面上的“实验一软件环境的基本练习.exe”,与视频教程同步学习KEIL uVISION2开发环境的基本使用方法。学会使用播放程序控制面板上的暂停功能,学会使用“alt+tab”组合键实现视频教程和KEIL uVISION2开发环境之间的切换。(视频教程中提到的单片机选型ATMEL89S51可以用ATMEL89C51代替;视频教程里提到的项目在我们的软件里是指“工程”)除了视频教程,也可以参考阅读附录1中的“51Tracer仿真器的使用及Keil uVision2快速入门”中的“Keil快速入门”一节)

视频中使用的参考程序:

ORG 0000H ACALL DEL LJMP MAIN AJMP MAIN ORG 080H ORG 0200H MAIN: MOV P0,#00H DEL: MOV R5,#04H MOV P1 ,#00H F3: MOV R6,#0FFH MOV P2 ,#00H F2: MOV R7,#0FFH MOV P3 ,#00H F1: DJNZ R7,F1 ACALL DEL DJNZ R6,F2 MOV P0 ,#0FFH DJNZ R5,F3 MOV P1 ,#0FFH RET MOV P2 ,#0FFH END MOV P3 ,#0FFH

注意:尝试使用KEIL uVISION2菜单栏外围设备中的软仿真工具“51实验仿制板”及“键盘LED”仿制板

(2)阅读附录1中的“51Tracer仿真器的使用及Keil uVision2快速入门”,之后自己分别设计流水灯的汇编和C控制程序,正确连接51Tracer仿真器及实验板,观察实验结果。

汇编流水灯参考程序:

ORG 0000H MOV P1,#0FFH MOV A,#0FEH

LOOP: MOV P1,A ACALL DELAY RL A SJMP LOOP DELAY: MOV R0,#0FFH

C51流水灯参考程序:

#include #include

void delayms(unsigned char ms) // 延时子程序 { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); } }

main() {

DL0: DL1: NOP MOV NOP DJNZ DJNZ RET END

R1,#0FFH R1,DL1 R0,DL0

unsigned char LED; LED = 0xfe; P1 = LED;

while(1) { delayms(800); LED = _crol_(LED,1); //循环左移1位,点亮下一个LED;_cror_为循环右移1位

P1 = LED; } }

5

实验二 编程练习

1. 实验目的:

(1)进一步熟悉MCS-51单片机的各类指令

(2)进一步熟悉Keil uVision2编程环境及软件仿真工具 (3)进一步熟悉51TRACER仿真器的使用

2. 实验器材:

安装有中文版Keil uVision2的计算机、51TRACER仿真器、实验板、杜邦插线若干

3. 实验内容:

在教材中选择一到两个长度适中,具有代表性的程序进行调试。进一步熟悉51单片机的汇编及C语言的编写方法,进一步熟悉软硬件开发环境。

选择的程序能够对软件的各种指令有兼顾,并且对数字量输入及数字量输出有应用

4.程序由学生自己在预习报告中编好,在实验室进一步调试。

5. 实验步骤:

(1)输入程序,进行编译,调试,完成软件仿真环节。

(2)在未通电情况下,按照实验线路连线,连好后经指导老师检查后方可接入硬件仿真器。

注意:请勿带电插拔仿真器。

实验三

定时器、中断系统

4. 实验目的:

(1)建立数字量输入输出控制的基本概念 (2)应用单片机的中断功能编写简单的程序 (3)掌握定时中断与外部中断的概念

5. 实验器材:

安装有中文版Keil uVision2的计算机、51TRACER仿真器、实验板、杜邦插线若干

6. 实验内容:

(1)定时中断:使用定时中断功能,使单片机总可以实现P1.0~P1.3的按键在被按下后,相应的P4.0~P1.7的灯会由亮变灭

6

汇编参考程序:

ORG 0000H SJMP MAIN ORG 000BH SJMP ITOP MAIN: MOV SP,#40H MOV TMOD,#01H MOV TH0,#0FH MOV TL0,#0FFH

SETB ET0 SETB EA SETB TR0 ITOP: MOV C,P1.0 CPL C MOV P1.4,C

C51参考程序: #include #include

char code a[3] _at_ 0X003b; sbit p10= P1^0; sbit p11= P1^1; sbit p12= P1^2; sbit p13= P1^3; sbit p14= P1^4; sbit p15= P1^5; sbit p16= P1^6; sbit p17= P1^7; main() {

TMOD=0x01 ; TH0=0X4C;

7

MOV C,P1.1

CPL C MOV P1.5,C MOV C,P1.2 CPL C MOV P1.6,C MOV C,P1.3 CPL C MOV P1.7,C MOV TH0,#0FH MOV TL0,#0FFH

RETI END

TL0=0X00; EA=1; ET0=1; TR0=1; while(1) ; }

void Time1(void) interrupt 1 {

TH0=0X4C; TL0=0X00; p14=~p10; p15=~p11; p16=~p12; p17=~p13; }