广工-单片机实验报告全部

上传人:F****n 文档编号:100497237 上传时间:2019-09-23 格式:DOC 页数:11 大小:130.50KB
返回 下载 相关 举报
广工-单片机实验报告全部_第1页
第1页 / 共11页
广工-单片机实验报告全部_第2页
第2页 / 共11页
广工-单片机实验报告全部_第3页
第3页 / 共11页
广工-单片机实验报告全部_第4页
第4页 / 共11页
广工-单片机实验报告全部_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《广工-单片机实验报告全部》由会员分享,可在线阅读,更多相关《广工-单片机实验报告全部(11页珍藏版)》请在金锄头文库上搜索。

1、 实验报告 课程名称_单片机原理及应用 _ 学生学院 信息工程学院 专业班级13级应用电子专业4班 学号 姓名 陈文威 指导教师 李优新 2015 年 12月 12 日 实验一:开发软件使用与调试方法 1 实验目的: 学习KEIL 的使用方法,用Keil 开发工具编译C 源码、汇编源程序。掌握单片机的编程及调试。 2 实验内容和要求: 编写C语言程序,用Keil 将程序编译并生成HEX 文件调试程序。通过并口通信线连接PC 与实验箱,用Easy 51Pro 把程序下载到AT89S51 观察实验箱LED 的变化。 3 实验要求程序代码: ORG 0000H AJMP MAIN ORG 0030H

2、 MAIN: MOV P2,#0FFH MOV A,#0FEH MOV P0,A LOOP: JB P2.0,LOOP ACALL DELAY_100MS JB P2.0,LOOP RR A HRER: JNB P2.0,HRER MOV P0,A AJMP LOOP DELAY_100MS: MOV R6,#64H D22: MOV R5,#0F9H D21: DJNZ R5,D21 DJNZ R6,D22 RET END 4 实验心得: 通过本次试验,熟悉了keil软件的使用。初步掌握单片机的编程及调试 实验二 定时器和中断应用程序设计与调试 1 实验目的: 掌握单片机的定时器,中断功能系

3、统的应用 2 实验内容和要求: 编写程序,用AT89C51的内部定时器/计数器T0的方式1产生周期为0.2秒的TTL脉冲(TCH和TCL溢出的时候,产生一个中断),从P05输出。计算如下: 振荡器的频率f=6M=,方式1计数器的长度为L=16.2的16次方即65536 定时时间(溢出时间)t=0.1s 定时常数TC=65536-x0.1/12=65536-50000=15536,将15536转换成16进制为3CB0, TCH=3CH(高八位),TCL=B0H(低八位)。 三实验主要仪器设备和材料: 1 AMC51单片机综合开发系统一台 2.微机一台 4 实验方法,步骤及结果测试 1. 开启AN

4、C51实验装置,检查跳线,一般无需改动。 2. 运行Keil调试程序,具体操作步骤参考实验一。 3. 参考以下电路图和流程图编写程序。 4. 编译程序,把生成的.HEX目标文件下载到AT89S51运行。 5. 观察AMC51实验装置的LED在运行程序时闪烁的情况。 参考程序代码: ORG 0000H ;下一条指令的地址为0000H START: AJMP MAIN ;跳入主程序 ORG 000BH ;下一条指令的地址为000BH AJMP INT_T0 ;定时器0中断程序 ORG 0030H ;下一条指令的地址为0030H MAIN: MOV TMOD,#01H ;设定时器T0为16位定时器

5、MOV TH0,#3CH ;设定T0的定时值(0.1s) MOV TL0,#0B0H ;设定T0的定时值(0.1s) SETB TR0 ;启动定时器T0 SETB ET0 ;开定时/计数器0允许 SETB EA ; CPU开放中断 MAIN_1: SJMP MAIN_1 INT_T0:PUSH ACC ;保护现场 PUSH PSW MOV TH0,#3CH ;设定T0的定时值(0.1s) MOV TL0,#0B0H ;设定T0的定时值(0.1s) CPL P0.5 ;取反,流水灯闪烁 POP PSW ;恢复现场 POP ACC RET1 ;中断返回 END 5 实验报告要求 1. 实验原理分析

6、,实验现象。 通过启动T0中断,设定定时值为0.1S,当定时器溢出后,重新置位,并将P05取反,其中P05口对应的发光二极管将造成闪烁的结果。 2. 按思考题修改程序,修改程序后的调试结果;程序流程图;源程序及注释。 思考题 1. 如果要输出一个周期为1秒的方波,应怎么样修改程序? 答:周期为1S,就是每次延时0.5S,源程序0.1S 延时 5次循环后,再开中断。 ORG 0000H START: AJMP MAIN ORG 000BH AJMP INT_T0 ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#05

7、H SETB TR0 SETB ET0 SETB EA MAIN_1: SJMP MAIN_1 INT_T0: DJNZ R2,INT ;当R2=5每次减1到为0才继续执行,开启中断,也 MOV R2,#05H 就是延时5次,一共0.5S,周期就是1S,频率1HZ CPL P0.5 INT: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETI END 程序流程图 主程序: 开始 中断程序: P0.5取反 初始化 分别延时循环5次,2次 等待中断 _ 2. 如果要同时输出多个频率不同的方波(f1=1HZ f2=2HZ

8、),应怎么样修改程序?(改为2.5HZ) 答:频率1HZ,周期为1S,就是每次延时0.5S,源程序0.1S 延时 5次循环后,再开中断。频率为2HZ,周期为0.5S,就是每次延时0.25S,源程序0.1S 大概延时 2次循环后,再开中断。 程序如下 ORG 0000H START: AJMP MAIN ORG 000BH AJMP INT_T0 ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#05H MOV R3,#02H SETB TR0 SETB ET0 SETB EA MAIN_1: SJMP MAIN_1

9、 INT_T0: DJNZ R2,INT ;当R2=5每次减1到为0才继续执行,开启中断,也 MOV R2,#05H 就是延时5次,一共0.5S,周期就是1S,频率1HZ CPL P0.5 DJNZ R3,INT ; 当R3=2每次减1到为0才继续执行,开启中断, MOV R3,#02H 就是延时2次,一共0.2S,周期就是0.4S,频率2.5HZ CPL P0.2 INT: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H POP PSW POP ACC RETI END 程序流程图: 主程序: 开始 中断程序: P0.5取反 初始化 延时循环5次 等

10、待中断 _ 实验三 串行I/O扩展和LED数码管显示实验 一、 实验目的 掌握单片机的ISP串行I/O扩展和LED数码管显示的原理和应用。 二、 实验内容和要求 AT89S51的UART由P30(EXD)和P31(TXD)组成,当UART以方式0工作的时候就是以SPI的方式工作。用SPI的方式0工作的时候就是以SPI的方式工作。用SPI的方式来扩展低速的I/O,就可以节省P口。 三、 实验主要仪器设备和材料 1. AMC51单片机综合开发系统一台 2. IBM-PC微机一台 四、 实验方法、步骤及结果测试 1. 开启AMC51实验装置,检查跳线,J5,J4:2-3相连。 2. 运行KEIL,具

11、体操作步骤参照实验一 3. 参考电路图和流程图,编写程序,送数值到数码管以16进制形式显示。 4. 编译程序,把生成的HEX目标文件下载到AT89S51运行。 5. 设置断点观察程序在AMC51实验装置的运行情况 6. 代码 DS0 EQU 3FH DS00 EQU 3EH DS000 EQU 3DH DS0000 EQU 3CH ORG 0000H AJMP MAIN ORG 0030H MAIN: LOOP: MOV DS0000,#01H MOV DS000,#02H MOV DS00,#03H MOV DS0,#04H ACALL DISP ACALL DELAY_100MS AJMP

12、 LOOP DELAY_100MS: MOV R6,#64H D22: MOV R5,#0F9H D21: DJNZ R5,D21 DJNZ R6,D22 RET DISP: MOV R7,#4 MOV R0,#DS0000 DL0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A DL1: JNB TI,DL1 CLR TI INC R0 DJNZ R7,DL0 RET TAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CH DB 7AH,9EH,8EH

13、END 原理:AT89S51单片机的UART在工作方式0下通过P30口将数据送到74LS164中锁存,并通过LED数码管显示出传输的数字。 现象:数码管显示数字。 五、 思考题 1. 修改程序使数码管显示16进制数? 修改DS0000,DS000,DS00,DS0中的数值,将其改为相应的数字即可。 例: MOV DS0000,#0AH MOV DS000,#02H MOV DS00,#0CH MOV DS0,#04H 2. 为什么显示之后要加上延时? 因为单片机一条指令执行的时间只有几微秒,如果不加上延时,数码管上的数字就会不断的闪烁,不稳定。不利于观察结果。 六、 心得: 了解了数码管个管脚

14、与单片机的连接关系,以及如何使用单片机SPI的方式来扩展端口。 实验四 A/D转换-亮度测量实验 1 实验目的 熟悉0809的工作原因,掌握A/D转换程序的设计方法以及以51连接的接口电路设计方法。学习传感器件的应用。 二实验内容和要求 按照硬件连接图和程序流程图,编写A/D转换程序,通过调节ADC0809的REF与转换值之间的关系,了解光敏电阻的电气特性。 光敏电阻特性:光敏电阻的阻值与亮度成反比,电气特性等效于一个可变电阻,如实验电路所示R13光敏电阻和电阻R16(4K7)串联,光敏电阻的阻值随环境亮度而变化,加在光敏电阻的电压也随之变化。变化的电压加分到0809的IN-0端和监视电路。单

15、片机通过74LS373和与非门,访问0809,对IN-0端电压进行AD转换,并将数据处理后通过数码管显示出来。数码管的显示数值满足以下公式:显示数值=IN-0/REF+X256. 3 实验主要仪器设备和材料: 1.AMC51单片机综合开发系统一台 2.微机一台 四实验方法,步骤及结果测试 1.开启AMC51实验装置,检查跳线,一般无需改动。 2.运行KEIL,具体操作步骤参照实验一。 3.参考以下电路图和流程图编写程序。 4.编译程序,把把生成的.HEX目标文件下载到AT89S51运行。 5.观察程序在AMC51实验装置的实际运行情况。 (1)同手挡住“亮度传感器”,改变亮度,观察数码管的数值变化。 (2)调节ADC0809的REF+观察REF和采样电压的关系。 先按一下液晶屏下方的“RESET”再按一下“MODES SWITCH”按钮,液晶屏切换到MODE1.。用一字小螺丝刀分别顺时针和逆时针扭动“亮度传感器”下方蓝色长方体的变阻器上面的螺丝。从液晶屏观察到REF的变化。 5 实验报告要求 1. 实

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号