@R1,A; 注意是否可以继续运行,为什么 2)进入Keil C51集成开发环境。 3) 创建工程文件,选择单片机型号:PHILIPS 公司的 P80/P87C52X2。 4)在Keil C51集成开发环境中,编辑源程序; 将源文件添加到项目的源文件组中。 5) 编译源文件并生成目标代码。 6) 运行、调试程序并查看执行结果。 7) 采用单步、宏单步、执行到光标等调试方式来调试用户程序,观察相关内存单元的内容。 8)修改相关单元中的内容,然后观察相关单元中的内容。 4.思考问题 1)解释每个程序完成什么任务。 2)如果比较程序比较三个数,则数据从大到小排列,最大值放在30H,最小值放在32H。 如果16个数字排序,如何排序并提出编程思路。 五、预习要求 1)熟读教材中的8051指令系统。 需要掌握的关键指令包括数据传输和判断跳转指令的使用。 2)阅读Keil C51集成开发软件手册,掌握进入、退出集成开发软件、编辑编译源文件等方法,熟悉各种调试方法。 6、实验报告 1)在程序中添加注释语句,写出程序执行的结果。
2)回答思考题(选择问题2的第二题)。 实验二 8051 编程实验(3 课,设计型) 一、实验目的 1)掌握8051 汇编语言编程的基本方法。 2)掌握8051汇编语言程序的调试方法。 2、实验内容 1)完成两字节加法程序的设计与调试。 R0 指出加数的首地址,R1 指出加数和结果存储单元的首地址,R2 指出字节数,地址可以任意指定。 要求:2)将2个存储单元中的四位BCD码十进制数补全,拆分为4个存储单元中的四位BCD码十进制数,如下图: 千位百位十位单位0千位位 0 百位 位 0 十位 0 个位 位数要求:将 30H、31H 中的四位 BCD 码十进制数拆分为 4 个四位 BCD 码十进制数存储单元,分别存储在 40H(个位)、41H(十位数)分别。 42H(百位)、43H(千位)。 或者R0表示存储个位和十位的四位BCD码十进制数的首地址,R1表示四个存储单元的四位BCD码十进制数的个位首地址分裂后。 3、实验步骤 1)根据两个实验内容的要求设计相应的程序。 2)写出实验步骤和调试方法。 4、预习要求 1)阅读教材中的8051指令系统和程序设计方法,重点掌握算术运算、传送等指令。
2)熟悉Keil C51开发环境,重点掌握连续运行程序的方法和设置断点运行程序的方法。 3)撰写预览报告。 5、问:如何将8位二进制数转换成BCD码十进制数和双字节二进制数转换成BCD码? 6、实验报告 1)写出实验步骤和调试方法。 2)组织并执行正确的程序和数据。 3)针对思考题提出自己的基本思路。 中断、实验3 中断、定时器与I/O口控制实验(3课,设计型) 一、实验目的 1)掌握定时器/计数器初值的计算和中断初始化程序的设计。 2)掌握定时器/计数器的多种编程方法。 3)掌握定时器/计数器中断的编程方法。 4)掌握硬件仿真条件下Keil C51集成开发环境各项参数的设置。 2、实验电路可以利用P1口控制8个LED的显示。 3、实验内容:控制P 1 口连接的8 个发光二极管循环闪烁(“跑马灯”显示)。 每个LED闪烁时间间隔为1秒。 要求: 1)选择定时器T0的工作模式为模式1,工作在定时模式; 采用定时器中断方式产生50ms定时,使P1口连接的8个发光二极管循环闪烁。
2)利用定时器/计数器串联产生1秒定时时间。 a) 使T0工作在定时模式(产生50ms定时),在T0中断服务程序中,控制单片机P3.2引脚产生一个100ms的方波,并将该方波信号作为T1的计数脉冲。 b)使T1工作在计数模式(计数10次,正好1秒); T1计数溢出后控制P1口的8个LED循环闪烁。 4、实验准备 1)按要求连接实验电路,分析二极管发光的条件。 2)根据实验任务设计相应的程序。 3)写出实验步骤和方法。 5、实验设备 1)DP-51RPO单片机综合仿真实验仪。 2)计算机。 六、预习要求 1)熟悉定时器/计数器的基本结构和工作流程; 熟悉定时器/计数器的工作方式和定时器/计数器中断服务程序的设计方法。 2)熟悉Keil C51集成开发环境中硬件仿真的要求和特点,掌握连续运行程序的方法。 3) 计算定时器/计数器时间常数。 4) 撰写预览报告。 7.思考题 1)修改T0计时时间参数,T1计数初始参数,观察二极管闪烁速度的变化。 2)定时器工作在模式1,模式2最大定时时间是多少(假设单片机晶振为11.0592MHZ)。
8、实验报告 1)写出设计思路。 2)组织并执行正确的程序和数据。 3)回答思考题。 实验4 扩展并行接口8155 实验(3 课,设计型) 1、实验目的 1)掌握8051 单片机与8155 的接口方法。 2)掌握硬件仿真条件下Keil c51 集成开发环境各种参数的设置。 3)掌握软件延时和定时器中断的编程方法。 4)熟悉软件延时、定时器中断的编程方法。 2.实验设备 1)DP-51RPO单片机综合仿真实验仪。 2)联想奔跃2000电脑。 3、实验内容:根据实验电路图,计算出并行接口8155在相应电路中的端口地址; 编写相应的汇编程序,控制8155芯片PA口连接的发光二极管循环闪烁(并“跑马灯”显示),循环闪烁的时间间隔为50ms和1s。 4. 实验参考电路 5. 实验步骤 1) 根据实验电路原理图连接实验电路。 2)计算8155的端口地址,并根据需要计算8155的控制字。 3) 选择定时器/计数器及其工作模式,并计算定时器/计数器的计数初始值。 4)根据要求编写实验程序并调试。 6.预览要求 1)仔细阅读8155的数据手册。
2)计算8155的端口地址,并根据需要计算8155的控制字。 应该采取什么方法? 步骤 3) 当计时时间超出定时器/计数器可计时的范围时,如何编程? 7、需要考虑的问题 当改变8155、8051的片选端与IO/M端的连接时,程序应该如何设计? 实验五 并行A/D 转换实验(3 课,综合型) 1、实验目的 1)掌握并行A/D 芯片ADC0809 与单片机的接口方法。 2)了解ADC0809芯片的性能。 3)通过实验了解单片机采集数据的方法。 2、实验设备 1)P-51RPO型单片机综合模拟实验仪。 2)联想奔跃2000电脑。 3、实验内容:实验系统上使用ADC0809作为A/D转换器。 实验系统上的电位器提供模拟输入。 编写程序将模拟量转换为数字量,并通过连接到单片机P1口的8个引脚。 LED显示相应的数字量。 4. 实验参考电路 5. 实验步骤 1) 用导线将CLK 连接到B2 区域的1/32 分频器。 2)根据本实验要求编写汇编语言程序和C语言程序。 3)记录并分析实验现象。 6.实验预习:了解本实验的硬件结构,编写实验程序,并在Keil C51环境下进行硬件仿真。
7、提问:A/D转换器将模拟量转换为数字量后,通过8155 PA口连接的8个LED显示相应的数字量时,硬件应该如何设计,程序应该如何编写? 实验六 并行D/A转换实验(3课,设计型) 1、实验目的:掌握并行D/A芯片DAC0832与单片机的接口方法以及DAC0832芯片的性能,了解基本方法在微控制器系统中扩展D/A芯片。 2、实验设备 1)P-51RPO型单片机综合模拟实验仪。 2)联想奔跃2000电脑。 3、实验内容在实验系统上使用DAC0832作为D/A转换器,编写程序,利用查表法使单片机控制DAC0832产生电压值在0~5V之间的正弦波。 4、实验参考电路 5、实验步骤 编写实验程序,利用查表法使单片机控制DAC0832产生正弦波,并用示波器观察波形。 6、预习需要了解本次实验的硬件结构,先编译汇编语言程序和C语言程序,并在Keil C51环境下进行软件仿真。 7、思考题:如果要产生方波、三角波、锯齿波,如何编写程序? 实验7 图形液晶显示实验(3 课,设计型) 1、实验目的 了解图形液晶模块的控制方法,实现汉字和数字的显示。
2、实验设备 1)P-51RPO型单片机综合模拟实验仪。 2)联想奔跃2000电脑。 3、实验内容:在液晶模块上显示学生的院系、班级、姓名等。 4、实验参考连接图 5、实验步骤 1)计算显示地址和显示位置。 2)建立需要显示的数据表,利用查表的方法将显示内容显示在LCD上。 6. 实验预览 1) 创建汉字库表。 2)计算显示地址。 7、问:如何并行平移显示内容? 实验八点阵LED显示实验(3课,综合型) 1、实验目的:了解点阵LED的控制方法,实现图形和数字显示。 2、实验设备 1)P-51RPO型单片机综合模拟实验仪。 2)联想奔跃2000电脑。 3、实验内容:在点阵LED上显示简单的图形和数字。 1、实验参考连接图 2、实验步骤 建立需要显示的数据表,利用查表的方法将需要显示的内容显示在8×8的LED上。 3. 预览要求 1) 创建图形和数字的数据表。 2) 计算显示端口地址。 4. 思考如何水平和垂直移动显示内容。