ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:78.91KB ,
资源ID:5015318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5015318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(广工单片机实验报告全部.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广工单片机实验报告全部.docx

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

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

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

4、ANC51实验装置,检查跳线,一般无需改动。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位定时器 MOV TH0

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

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

7、_1: SJMP MAIN_1INT_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),应怎么样修改程序?(改为2.5HZ)答:频率1HZ,周期为1S,就是每

8、次延时0.5S,源程序0.1S 延时 5次循环后,再开中断。频率为2HZ,周期为0.5S,就是每次延时0.25S,源程序0.1S 大概延时 2次循环后,再开中断。程序如下ORG 0000HSTART: AJMP MAIN ORG 000BH AJMP INT_T0 ORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#05H MOV R3,#02H SETB TR0 SETB ET0 SETB EAMAIN_1: SJMP MAIN_1INT_T0: DJNZ R2,INT ;当R2=5每次减1到为0才继续执行,开启中断

9、,也 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次 等待中断 _实验三 串行I/O扩展和LED数码管显示实验一、 实验目的掌握单片机的ISP串行I

10、/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,具体操作步骤参照实验一3. 参考电路图和流程图,编写程序,送数值到数码管以16进制形式显示。4. 编译程序,把生成的

11、HEX目标文件下载到AT89S51运行。5. 设置断点观察程序在AMC51实验装置的运行情况6. 代码DS0 EQU 3FHDS00 EQU 3EHDS000 EQU 3DHDS0000 EQU 3CH ORG 0000H AJMP MAIN ORG 0030HMAIN:LOOP: MOV DS0000,#01H MOV DS000,#02H MOV DS00,#03H MOV DS0,#04H ACALL DISP ACALL DELAY_100MS AJMP LOOPDELAY_100MS: MOV R6,#64HD22: MOV R5,#0F9HD21: DJNZ R5,D21 DJNZ

12、 R6,D22 RETDISP: MOV R7,#4 MOV R0,#DS0000DL0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,ADL1: JNB TI,DL1 CLR TI INC R0 DJNZ R7,DL0 RETTAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CH DB 7AH,9EH,8EH END原理:AT89S51单片机的UART在工作方式0下通过P30口将数据送到74LS164中锁存,并通过LED数码管显示出传输的数字。现象:数码管

13、显示数字。五、 思考题1. 修改程序使数码管显示16进制数?修改DS0000,DS000,DS00,DS0中的数值,将其改为相应的数字即可。例: MOV DS0000,#0AH MOV DS000,#02H MOV DS00,#0CH MOV DS0,#04H2. 为什么显示之后要加上延时?因为单片机一条指令执行的时间只有几微秒,如果不加上延时,数码管上的数字就会不断的闪烁,不稳定。不利于观察结果。六、 心得:了解了数码管个管脚与单片机的连接关系,以及如何使用单片机SPI的方式来扩展端口。实验四 A/D转换-亮度测量实验1实验目的 熟悉0809的工作原因,掌握A/D转换程序的设计方法以及以51

14、连接的接口电路设计方法。学习传感器件的应用。二实验内容和要求 按照硬件连接图和程序流程图,编写A/D转换程序,通过调节ADC0809的REF与转换值之间的关系,了解光敏电阻的电气特性。 光敏电阻特性:光敏电阻的阻值与亮度成反比,电气特性等效于一个可变电阻,如实验电路所示R13光敏电阻和电阻R16(4K7)串联,光敏电阻的阻值随环境亮度而变化,加在光敏电阻的电压也随之变化。变化的电压加分到0809的IN-0端和监视电路。单片机通过74LS373和与非门,访问0809,对IN-0端电压进行AD转换,并将数据处理后通过数码管显示出来。数码管的显示数值满足以下公式:显示数值=IN-0/REF+X256

15、.3实验主要仪器设备和材料:1.AMC51单片机综合开发系统一台 2.微机一台四实验方法,步骤及结果测试1.开启AMC51实验装置,检查跳线,一般无需改动。2.运行KEIL,具体操作步骤参照实验一。3.参考以下电路图和流程图编写程序。4.编译程序,把把生成的.HEX目标文件下载到AT89S51运行。5.观察程序在AMC51实验装置的实际运行情况。(1)同手挡住“亮度传感器”,改变亮度,观察数码管的数值变化。(2)调节ADC0809的REF+观察REF和采样电压的关系。先按一下液晶屏下方的“RESET”再按一下“MODES SWITCH”按钮,液晶屏切换到MODE1.。用一字小螺丝刀分别顺时针和

16、逆时针扭动“亮度传感器”下方蓝色长方体的变阻器上面的螺丝。从液晶屏观察到REF的变化。5实验报告要求1.实验原理分析,实验现象及结果。实验原理:光敏电阻的阻值与亮度成反比,电气特性等效于一个可变电阻,如实验电路所示R13光敏电阻和电阻R16(4K7)串联,光敏电阻的阻值随环境亮度而变化,加在光敏电阻的电压也随之变化。变化的电压加分到0809的IN-0端和监视电路。单片机通过74LS373和与非门,访问0809,对IN-0端电压进行AD转换,并将数据处理后通过数码管显示出来。数码管的显示数值满足以下公式:显示数值=IN-0/REF+X256.ADC0809的工作过程首先输入3位地址,并使ALE=

17、1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的

18、和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数

19、据送上数据总线,供单片机接受。实验现象:(1)通过手挡住“亮度传感器”,降低亮度,数码管的逐渐数值变大,大到255就不再增加,因为显示数值=IN-0/REF+X256.,随着亮度的变小,光敏电阻的阻值随环境亮度变小而变大,加在光敏电阻的电压也随之变化,变化的电压加分到0809的IN-0端也变大(具体数值已经通过A/D转换输出,可以从液晶屏直接读出),从而数码管的数值在参考电压REF+没有变的情况下,显示数值也增加,输入电压IN-0最大等于基准电压REF+,因而显示值大约是256,实验显示最大是255.(2)调节REF+的,同理,因为显示数值=IN-0/REF+X256.,调节REF+,可以改变

20、数码管的显示值,最大依然是256,调节REF+的具体数字也可以直接从液晶屏读出,REF+越大,数码管的显示值越小,基准电压REF+越小,数码管的显示值越大,最大为256,实验显示最大是255.,存在一定误差。结果:通过调节ADC0809的参考电压REF(以及亮度传感器)与转换值之间的关系,了解光敏电阻的电气特性,光敏电阻的阻值与亮度成反比,电气特性等效于一个可变电阻。2.完成思考题,修改后的程序代码清单(详细注释)程序代码如下CHENL EQU 5CH ;A/D转换通道地址 DISPLAY_BUFFER EQU 5DH ;显示缓存DS0 EQU 3FH ;数码管个位DS00 EQU 3EH ;

21、数码管十位DS000 EQU 3DH ;数码管百位DS0000 EQU 3CH ;数码管千位 ORG 0000H ;下一条指令的地址为0000H AJMP MAIN ;跳转到MAIN函数 ORG 0013H ;外部中断INTI AJMP INT_1 ;跳转到INT_1 函数ORG 0030H ;下一条指令的地址为0030H MAIN: ;初始化程序 SETB IT1 ;INTI边沿触发 SETB EX1 ;开INTI中断SETB EA ;CPU开放中断MOV CHENL,#0F8H ;通道0口地址MOV DPH,#7FH ;ADC0809高位地址#7FH MOV DPL,CHENL ;ADC0

22、809低位地址放AD转换数据MOV A,#0 ;A清除数据MOVX DPTR,A ;启动A/DLOOP_MAIN: ;等待子程序AJMP LOOP_MAIN ;等待INTI中断INT_1: PUSH PSW ;外部中断1程序PUSH ACC ;保护现场 PUSH DPH PUSH DPLMOV DPH,#7FH ;重新设置ADC0809高位地址#7FH MOV DPL,CHENL ;继续放AD转换数据MOVX A,DPTR ;读取A/D转换值MOV DISPLAY_BUFFER,A ;保存A/D的数值ACALL TRAN_BCD ;将A/D的数值转换成BCD码ACALL DISP ;调用串行显

23、示子程序ACALL DELAY ;调用延时程序MOV DPH,#7FH ;再次设置ADC0809高位地址#7FHMOV DPL,CHENL ;再次放AD转换数据MOV A,#0 ;A清除数据MOVX DPTR,A ;再次A/D启动程序POP DPL ;恢复现场POP DPHPOP ACC POP PSW ;弹出标志位RETI ;中断返回DELAY: MOV R6,#64H ;R5,R6为临时延时变量D22: MOV R5,#0F9H ;6M晶振延时0.1SD21: DJNZ R5,D21 ;R5减为0继续DJNZ R6,D22 ;R6减为0继续RET ;子程序返回TRAN_BCD:MOV A,

24、DISPLAY_BUFFER ;读入缓冲MOV R7,#0AH ;R7为10MOV B,R7 ;送10到BDIV AB ;求数码管个位MOV DS0,B ;将个位数字送到显示发送缓冲MOV B,R7 ;送10到BDIV AB ;求数码管十位MOV DS00,B ;将十位数字送到显示发送缓冲MOV B,R7DIV AB ;求数码管百位MOV DS000,B ;将百位数字送到显示发送缓冲MOV B,R7DIV AB ;求数码管千位MOV DS0000,B ;将千位数字送到显示发送缓冲RET ;子程序返回DISP:MOV R7,#4 ;串行显示程序(4位数码管) MOV R0,#DS0000 ;千位

25、数据先放在R0DL0: MOV A,R0 ;取待显示的数据MOV DPTR,#TAB ;查表MOVC A,A+DPTR ;查得相应的七段代码MOV SBUF,A ;启动串行口发送数据DL1:JNB T1,DL1 ;等待一帧发送结束 CLR TI ;清串行口中断标志 INC R0 ;指向下一个数据 DJNZ R7,DL0 ;R7为零继续 RET ;共阴七段数码管代码表TAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H ;(0-6段码) DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CH ;(7-9 A B C段码) DB 7AH,9EH,8EH ;(D-F

26、段码)END 思考题1.在0809的IN-1段已接入热敏电阻,要测量温度的变化应将原程序如何修改? 答:将MOV DPH,#7FH;通道0口地址 改为通道1口地址,使其通道一接受数据并进行AD转化。通道1口地址暂时不会求。2.为何从数码管观察到,在亮度没有变化的情况下,随着ADC0809的REF+的变化,AD转化结果发生变化。 答:因为D转化结果显示数值=IN-0/REF+X256.,随着ADC0809的REF+的变化,调节REF+,可以改变数码管的显示值,最大依然是256,调节REF+的具体数字也可以直接从液晶屏读出,REF+越大,数码管的显示值越小,基准电压REF+越小,数码管的显示值越大,最大是当输入电压IN-0等于基准电压REF+时为256,实验显示最大是255.,存在一定误差。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1