《单片机原理及应用》实验指导控制技术实验室实验一 熟悉 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) DP51RPO 型单片机综合仿真实验仪。
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) P51RPO 型单片机综合仿真实验仪。
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) P51RPO 型单片机综合仿真实验仪。
2) 联想奔月 2000 计算机。
三、实验内容利用实验系统上的DAC0832 做 D/A转换器,编写程序,使用查表的方法使单片机控制 DAC0832 产生一个电压值在 0~5V之间的正弦波。
四、实验参考电路五、实验步骤编程实验程序,使用查表法,使单片机控制 DAC0832 产生一个正弦波,并用示波器观 察波形。
六、预习要求理解本实验的硬件结构,将汇编语言程序和 C 语言程序先编好,并在Keil C51 环境下进 行软件仿真。