当前位置:文档之家› 《单片机原理及应用》实验指导

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

《单片机原理及应用》实验指导控制技术实验室实验一 熟悉 Keil c51 集成开发环境及常用指令实验(2 课时,验证型)一、实验目的1) 了解 8051 典型应用系统的开发过程,熟悉 Keil C51集成开发环境。

2) 掌握单步执行程序,查看专用寄存器和单片机 RAM 的执行结果。

3) 掌握 8051 的寻址方式及常用指令的使用方法。

二、实验内容1) 基本指令练习。

2) 数据传送(循环方式) 。

3) 位操作指令。

4) 8051 内部 RAM 的 40H~4FH 置初值 A0H~AFH,然后将 40H~4FH 的内容传送到外部 RAM 中的 C000H~C00FH 单元,再把外部数据 RAM 中的C000H~C00FH 单元的内容传送到 8051 内部 RAM 中的 50H~5FH 单元。

5) 调试下列程序,熟悉程序调试手段,观测程序运行结果。

ORG 0000HSJMP MAINORG 0030HMAIN:MOV SP,#6FHMOV R0,#40HMOV R1,#30HMOV 30H,#40HMOV A,#40HMOV @R0,A ;哪一个存储单元的内容与 A 中内容相等INC AMOV A,@R1 ;A 中的内容?哪一个存储单元的内容传给 APUSH ACCPOP 32H ;SP 指针的变化?32H 中的内容MOV A,#5FHSWAP A ;A 中的内容;上面程序为顺序执行的程序XUNHUAN1:MOV R0,#30HMOV R7,#10HCLR A ;这 3 条指令的作用LOOP1:MOV @R0,AINC AINC R0DJNZ R7,LOOP1 ;R7 的作用;循环程序执行完之后,指出 32H,37H,3BH, 3FH 存储单元中的值,为什么?XUNHUAN2:MOV R0,#30HMOV R1,#40HMOV R2,#10HLOOP2:MOV A,@R0MOV @R1,ADJNZ R2,LOOP2 ;说明这段程序的功能;上面程序为 2 个循环程序;下面为 2 个数比较程序,最大值存放在 30H,最小值存放在 31H 中PANDUAN1:MOV 30H,#10HMOV 31H,#4BHMOV R0,#30HMOV R1,#31HPAN0:MOV A,@R0CLR CSUBB A,@R1JNC PAN1MOV A,@R0MOV 40H,@R1MOV @R0,40HMOV @R1,APAN1:NOP ;注意能不能继续往下运行,为什么END三、实验步骤1) 启动计算机。

2) 进入 Keil C51 集成开发环境。

3) 建立工程项目文件,选择单片机型号:PHILIPS 公司的 P80/P87C52X2。

4) 在 Keil C51 集成开发环境中, 编辑源程序;将源文件添加至工程项目的源文件组中。

5) 对源文件进行编译,生成目标代码。

6) 运行、调试程序和查看执行结果。

7) 分别采用单步、宏单步、执行到光标处等调试手段,调试用户程序,观察有关存储器单元中的内容。

8) 修改有关单元中的内容,再观察有关单元中的内容。

四、思考题1) 说明每段程序分别完成哪些任务。

2) 若比较程序为 3 个数比较,数据从大到小排列,最大值放在 30H,最小值放在 32H。

如果是 16 个数排序,如何排序,提出编程思路。

五、预习要求1) 阅读教科书中 8051 的指令系统,重点掌握的指令有数据传送、判断跳转指令的使用方法。

2) 阅读 Keil C51 集成开发软件说明书,掌握集成开发软件的进入、退出、源文件的编辑和编译等方法。

熟悉各种调试手段。

六、实验报告1) 将程序加上注释语句,写出程序执行的结果。

2) 回答思考题(第 2 题的第 2 个问题选作)。

实验二 8051 程序设计实验(3 课时,设计型)一、实验目的1) 掌握 8051 汇编语言程序设计基本方法。

2) 掌握 8051 汇编语言程序的调试方法。

二、实验内容1) 完成二字节加法程序的设计与调试。

要求:加数首地址由 R0 指出,被加数和结果的存贮单元首地址由 R1 指出,字节数 由 R2 指出,地址可以任意指定。

2) 完成 2 个存储单元中的四位 BCD 码十进制数拆分为 4 个存储单元的四位BCD 码十进制数,如下图所示:要求:将 30H 、31H 中四位 BCD 码十进制数拆分为 4 个存储单元的四位 BCD 码十进制数,分别存放在 40H (个位),41H (十位),42H (百位),43H (千位)中。

或者由 R0 指出四位 BCD 码十进制数存放个位和十位的首地址, R1 指出 拆分后 4 个存储单元的四位 BCD 码十进制数的个位首地址。

三、实验步骤1) 针对 2 个实验内容提出的要求设计相应的程序。

2) 写出实验步骤及调试方法。

四、预习要求1) 阅读教科书中 8051 的指令系统及程序的设计方法,重点掌握算术运算,转移等 指令。

2) 熟悉 Keil C51 开发环境, 重点掌握连续运行程序的方法和设置断点运行程序的方 法。

3) 写出预习报告。

五、思考题如何将 8 位二进制数转换为 BCD 码十进制数以及双字节二进制数转换成 BCD 码? 六、实验报告1) 写出实验步骤及调试方法。

2) 整理好执行正确的程序和数据。

3) 对思考题提出自己的基本思路。

百位 千位 千位 个位个位十位 0 0 0 百位 十位 0实验三 中断、定时器与 I/O 口控制实验(3 课时,设计型)一、实验目的1) 掌握定时/计数器计数初值的计算和中断初始化程序的设计。

2) 掌握定时/计数器的工作于各种方式的编程方法。

3) 掌握定时/计数器中断的编程方法。

4) 掌握 Keil C51 集成开发环境在硬件仿真条件下各参数的设置。

二、实验电路可以应用 P1 口控制 8 个 LED 的显示。

三、实验内容控制连接在 P1 口上的八个发光二极管循环闪亮( “走马灯”显示) 。

各发光二极 管的闪亮的时间间隔为 1 秒钟。

要求:1) 选择定时器 T0 工作方式为方式 1,且工作于定时方式;采用定时器中断方式产生 50ms 定时,使连接在 P1 口的八个发光二极管循环闪亮。

2) 使用定时/计数器串联的方式产生 1 秒钟的定时时间。

a) 使 T0 工作于定时方式(产生 50ms 定时),在 T0 中断服务程序中,控制单片机引脚 P3.2 产生 100ms 的方波,并将此方波信号作为 T1的计数脉冲。

b) 使 T1 工作于计数方式(计数 10 次,正好 1 秒);并在 T1 计数溢出后控制 P1 口的八个发光二极管循环闪亮。

四、实验准备1) 根据要求连接实验电路,分析二极管闪亮的条件。

2) 根据实验任务设计出相应的程序。

3) 写出实验步骤和方法。

五、实验设备1) DP-51RPO 型单片机综合仿真实验仪。

2) 计算机。

六、预习要求1) 熟悉定时器/计数器的基本结构和工作过程; 熟悉有关定时器/计数器的工作方式和定时/计数器中断服务程序的设计方法。

2) 熟悉 Keil C51 集成开发环境中硬件仿真的要求和特点,掌握连续运行程序的方法。

3) 计算定时器/计数器时间常数。

4) 写出预习报告。

七、思考题1) 修改 T0 定时时间参数,T1 计数初始参数,观看二极管闪亮的速度变化。

2) 定时器工作于方式 1,方式 2 时其最大定时时间是多少(设单片机的晶振为 11.0592MHZ)。

八、实验报告1) 写出设计思路。

2) 整理好执行正确的程序和数据。

3) 回答思考题。

实验四 扩展并行接口 8155 实验(3 课时,设计型)一、实验目的1) 掌握 8051 单片机与 8155 的接口方法。

2) 掌握 Keil c51 集成开发环境在硬件仿真条件下各参数的设置。

3) 掌握软件延时和定时器中断的编程方法。

4) 熟悉软件延时和定时器中断的编程方法。

二、实验设备1) DP­51RPO 型单片机综合仿真实验仪。

2) 联想奔月 2000 计算机。

三、实验内容根据实验电路图接线,计算相应电路中并行接口 8155 的端口地址;编写相应的汇, 编程序,控制连接在8155 芯片 PA口上的发光二极管循环闪亮(及“走马灯”显示) 循环闪亮的时间间隔为 50ms 和 1s。

四、实验参考电路五、实验步骤1) 根据实验电路原理图连接实验电路。

2) 计算 8155 的端口地址,根据要求计算 8155 的控制字。

3) 选择定时/计数器和它的工作方式,计算定时/计数器的计数初值。

4) 根据要求编写实验程序,并调试。

六、预习要求1) 认真阅读 8155 的数据手册。

2) 计算 8155 的端口地址,根据要求计算 8155 的控制字。

3) 当定时时间超过一个定时/计数器所能定时的范围时,采取什么方式?程序如何编制?七、思考题当改变 8155的片选端和 IO/M 端与 8051 的连接时,程序该如何设计?(3 课时,综合型)一、实验目的1) 掌握并行 A/D 芯片 ADC0809 与单片机的接口方法。

2) 了解 ADC0809 芯片性能。

3) 通过实验了解单片机实现数据采集的方法。

二、实验设备1) P­51RPO 型单片机综合仿真实验仪。

2) 联想奔月 2000 计算机。

三、实验内容利用实验系统上的 ADC0809做 A/D 转换器,实验系统上的电位器提供模拟量的输入, 编写程序,将模拟量转换成数字量,并通过连接在单片机 P1 口上的 8 个发光二极管显示相 应的数字量。

四、实验参考电路五、实验步骤1) 使用导线将 CLK 与 B2区的 1/32 分频相连。

2) 根据本实验的要求编写汇编语言程序和 C语言程序。

3) 记录并分析实验现象。

六、实验预习理解本实验的硬件结构,编写实验程序,并在Keil C51 环境下进行硬件仿真。

七、思考题A/D 转换器将模拟量转换成数字量后,通过连接 8155 的 PA 口上的 8 各发光二极管显 示相应数字量时,硬件该怎样设计,程序怎样编写?(3 课时,设计型)一、实验目的掌握并行 D/A 芯片 DAC0832 与单片机的接口方法及 DAC0832 芯片的性能,了解单片 机系统中扩展 D/A芯片的基本方法。

二、实验设备1) P­51RPO 型单片机综合仿真实验仪。

2) 联想奔月 2000 计算机。

三、实验内容利用实验系统上的DAC0832 做 D/A转换器,编写程序,使用查表的方法使单片机控制 DAC0832 产生一个电压值在 0~5V之间的正弦波。

四、实验参考电路五、实验步骤编程实验程序,使用查表法,使单片机控制 DAC0832 产生一个正弦波,并用示波器观 察波形。

六、预习要求理解本实验的硬件结构,将汇编语言程序和 C 语言程序先编好,并在Keil C51 环境下进 行软件仿真。

相关主题