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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实验报告概要.docx

1、单片机实验报告概要微控制器技术实验报告 专业班级: 学 号: 姓 名: 指导老师: 时 间: 2014.04 一、实验目的及要求 1二、实验基本内容 1三、实验设备 5四、实验设计思想和结果分析 84.1清零程序与拆字程序设计 84.2拼字程序与数据传送程序 104.3 排序程序与散转程序 124.4 数字量输入输出实验 144.5定时器/计数器实验 164.6 A/D、D/A转换实验 224.7 串行通讯实验 31五、结束语 40一、 实验目的及要求:1、 学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、熟练使用SST89C554RC单片机核

2、心板及I/O扩展实验系统;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单 片机控制器数字接口电路的硬件、软件设计与功能调试; 4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;二、实验基本内容(TD-51单片机实验系统实现)实验一清零程序与拆字程序设计根据实验指导书之“第二章 单片机原理实验”(P17P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。实验二拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。实验三排序程序与散转程序设计 汇编语言完成实验指导书P24思考题5、6题的基础实验

3、项目。实验四数字量输入输出实验基本部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。题目三:键盘扫描与数码管显示设计 要求:阅读、验证P69上的

4、C语言参考程序功能。用汇编语言完成编程与功能调试。实验五定时器/计数器实验 基本部分:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目(P40)。 提高部分:(任选一题完成) 题目一:定时器控制LED灯要求:由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个L

5、ED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮一直循环下去。 题目二:计数器实验要求:单片机内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。使用T1作定时器,50ms中断一次,看T0内每0.50来了多少脉冲,将其数值按二进制在LED灯上显示出来,5秒后再次测试。 题目三:急救车与交通灯(外部中断实验) 要求:完成交通灯基本功能基础上,当有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。本实验题以按键为中断申请,表示有急救车通过。实验六/、/转换实验 基本部分:阅读、验证C

6、语言程序功能。使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目(P67)。 提高部分:(要求:Proteus环境下完成)小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。实验七串行通讯实验基本部分:阅读、调试C语言程序功能。使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成)题目一:利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母

7、显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。题目二:进行实验六、实验七实验内容综合。三、 实验设备软件设备:KEIL uv2, PROTEUS7.4硬件设备:PC机,TD-51系统板(包括SST89E554RC单片机一片、串行通信线、接口等)1、TD-51系统板 系统构成TD-51 系统板为开放的最小单片机系统,采用具有在系统可编程和在应用可编程技术的增强型51 单片机,单片机内置仿真程序,可以实现调试、仿真功能,配合TD 系列微机接口教学 实验平台可开展单片机原理及应用的实验教学。 系统功能特点1. 取代硬件仿真器的增强型单型系统采用具有在系统可编程

8、(ISP)和在应用可编程(IAP)技术的增强型51 单片机,单片机内置仿真程序,完全取代传统的硬件仿真器和编程器。这种先进的单片机将仿真系统和应用系统合二为一,大大降低了应用开发成本,极大地提高了研发效率。把单片机的仿真开发和应用设计提高到一个崭新的技术领域。 2. 先进的集成开发调试调使用业界著名的Keil C51 集成开发环境作为实验设计、调试的工具。Keil C51 提供了强大的调试功能,可单步、断点、全速运行程序,可观察寄存器区、ROM 变量区、RAM 变量区等的内容。支持汇编语言和C 语言的源语言调试。 3. 灵活的组合组采用开放的系统板结构,可以灵活地配合各型号接口实验平台开展单片

9、机的应用教学。 4. 丰富的实验内容提供了丰富的原理及接口应用实验。配合接口实验平台可完成数字量输入/输出、中断、定时器/计数器、看门狗、低功耗、PCA、串口通讯、静态存储器、FLASH、A/D、D/A、键盘及数码显示、电子音响、点阵LED、LCD、步进电机、直流电机、温度控制等实验内容。2、SST89E554RC简介TD-51 系统板上提供了一片SST89E554RC,该器件是SST 公司推出的8 位微控制器FlashFlex51 家族中的一员,具有如下特征: u19982X8051 兼容,嵌入SuperFlash 存储器 软件完全兼容 开发工具兼容 引脚全兼容 u24037X作电压5V,工

10、作时钟040MHz 1Kbyte 内部RAM u20004X块SuperFlash EEPROM,主块32Kbyte,从块8Kbyte,扇区为128Byte u26377X三个高电流驱动端口(每个16mA) u19977X个16 位的定时器/计数器 u20840X双工、增强型UART 帧错误检测 自动地址识别 u20843X个中断源,四级优先级 u21487X编程看门狗定时器(WDT) u21487X编程计数阵列(PCA) u21452XDPTR 寄存器 u20302XEMI 模式(可禁止ALE) SPI 串行接口 u26631X准每周期12 个时钟,器件提供选项可使速度倍增,达到每周期6 个

11、时钟 u20302X功耗模式 掉电模式,可由外部中断唤醒 空闲模式 SST89E554RC 的功能框图如图1-2-1 所示,外部引脚如图1-2-2 所示。 SST89E554RC 的特殊功能寄存器如表1-2-1 所列。 四、实验设计思想与结果分析 实验一到实验四为软件编程实验,需要熟练掌握KEIL uv2编程工具的使用,通过编写程序实现实验要求。实验四到实验八为硬件接口实验,需要利用TD-51系统板,通过KEIL uv2编写好程序,下载到所给的SST89E554RC单片机中,按原理接好硬件接线图,完成实验要求。4.1实验一清零程序与拆字程序设计 实验调试步骤及结果分析:(1)编写好实验程序后,

12、采用ISP模式调试。(2)运行程序,使用Keil51模拟器中的虚拟存储器监视内容变化。(访问片外存储器,用“X:+地址”的格式)。(3)在清零实验中。用单步跳过的调试方式。7000H-7FFFH中内容先被写入0FFH;然后全部清零。(4)在拆子程序实验中,单步进入调试,先在7000H中,写入1FH,首先送低位0FH至7001H,然后送高位1H至7002H。程序流程图: 清零程序流程图 拆字程序流程图程序清单:清零程序:ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV A, #00H MOV DPTR,#7000H ;赋给首地址 MOV R1,#100H ;循环次数

13、,完成对7000H-70FFH的置一 MOV R2, #10HLOOP1: MOVX DPTR,A INC DPTR DJNZ R1,LOOP1 DJNZ R2,LOOP1 ; 因为都是先减一之后再做比较,所以0FFH、0FH个数要100H、10H次 SJMP $ END 拆字程序: ORG 0000H LJMP MAIN ORG 1000HMAIN: MOV DPTR,#7000H MOVX A,DPTR ;赋值 MOV R0,A ANL A,#0F0H ;得到高四位SWAP A INC DPTR MOVX DPTR,A ;高位给7001H MOV A,R0 ANL A,#0FH ;得到低四

14、位 INC DPTR MOVX DPTR,A ;低位给7002H SJMP $ END4.2实验二拼字程序与数据传送程序设计实验步骤及结果分析:(1)编写好实验程序后,采用ISP模式调试。(2)拼字程序里,将两个字节内容分别存为12H,34H。低位相拼,结果是24H。(3)运行程序,使用Keil51模拟器中的虚拟存储器监视内容变化。(访问片外存储器,用“X:+地址”的格式)。程序流程图: 拼字程序流程图 数据传输程序流程图程序清单:拼字程序ORG 0000H LJMP MAIN3ORG 1000HMAIN3: MOV DPTR,#7000HMOVX A,DPTR ;原值给A ANL A,#0F

15、H ;取低四位 SWAP A ;将原低四位移到高四位 MOV B,AINC DPTRMOVX A,DPTR ;再取7001H的值 ANL A,#0FH ;取低四位ADD A,B INC DPTR MOVX DPTR,A ;获得结果SJMP $END数据传输程序 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV R2,#10H ;源RAM区的第一个地址 MOV R3,#19H ;源RAM区的第二个地址 MOV R4,#22H ;目的RAM区的第一个地址 MOV R5,#2BH ;目的RAM区的第二个地址 MOV R6,#02H ;第一次传输的字节数据个数 MOV R7

16、,#03H ;第二次传输的字节数据个数 L1: MOV B,R2 MOV R0,B MOV A,R0 MOV B,R4 MOV R1,B MOV R1,A INC R2 INC R4 DJNZ R6,L1 ;完成第一路的数据传输L2: MOV B,R3 MOV R0,B MOV A,R0 MOV B,R5 MOV R1,B MOV R1,A INC R3 INC R5 DJNZ R7,L2 ;完成整个的数据传输 SJMP $ END结果分析:在拼字程序中,用了SWAP A,方便实现了数据高四位与低四位的交换。数据传送实验中,其重点是对地址变化的把握。将初始地址与及传送地址都用加1指令实现地址变

17、化。4.3实验三排序程序与散转程序设计实验步骤及结果分析:排序实验:(1)编写实验程序,编译、链接无误后联机调试;(2)为 30H39H 赋初值,如:在命令行中键入 E CHAR D:30H9, 11H, 5, 31H, 20H, 16H,1, 1AH, 3FH, 8 后回车,可将这 10 个数写入 30H39H 中;(3)将光标移到语句行命令,将程序运行到该行;(4)查看存储器窗口中 30H39H 中的内容,验证程序功能;(5)重新为 30H39H 单元赋值,反复运行实验程序,验证程序的正确性。实验流程图程序清单:散转程序: ORG 0000H LJMP MAIN ORG 0100HMAIN

18、 : MOV A,#01H MOV R2,A RL A ADD A,R2 MOV DPTR,#PTAB JMP A+DPTRPTAB: LJMP PM0 LJMP PM1 LJMP PM2 LJMP PM3 PM0: 程序体0 PM1: 程序体1PM2: 程序体2PM3: 程序体3 SJMP $ END冒泡排序子程序: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0,#10H ;初始地址 MOV R7,#04H ;外循环次数(参与比较的数的个数-1) ACALL MAOP SJMP $ MAOP: L1: MOV A,R0 ;赋给初始地址 MOV R1,A

19、 INC R1 ;取第二个数的地址 MOV A,R7 MOV R6,A L2: MOV A,R0 CLR C SUBB A,R1 ;两数进行比较 JC L3 ;前数小于后数则保持位置不变 MOV A,R0 ;否则,交换位置 XCH A,R1 MOV R0,A L3: INC R1 DJNZ R6,L2 ;内循环是否完成 INC R0 DJNZ R7,L1 ;外循环是否完成 RET ;返回主程序 END4.4实验四 数字量输入输出实验实验步骤:(1)按图11接好试验线路图,图中圆圈表示不要通过排线连接(2)编写实验程序,编译链接无误后进入调试状态(3)运行实验程序,观察实验现象,验证程序正确性(

20、4)按复位键,结束程序运行,退出调试状态实验硬件接线图:程序清单:基础部分: ORG 0000H LJMP MAIN ORG 0100H MAIN : MOV P1,#0FFH ;初始化 MOV A,P1 ;将输入写进累加器A SWAP A ANL A,#0FH MOV P1,A ;输出显示 LJMP MAIN ;循环不断检测P1口输入端的新状态 SJMP $ ENDLED灯控制: ORG 0000HLJMP MAINORG 0100HMAIN: MOV TMOD, #60H ;设置T1为模式2,外部计数方式 MOV TH1,#0FFH ;T1计数器赋初值 MOV TL1,#0FFH MOV

21、DPTR,#7300H MOV A,#80H MOVX DPTR,A MOV DPTR,#7100H SETB TR1 ;开启计数器LEFT: MOV R0,#08H ;左循环 MOV A,#01H A1: MOVX DPTR,A LCALL DELAY RL A DJNZ R0,A1 JBC TF1,RIGHT ;查询T1溢出标志,TF1=1时转移 JMP LEFTRIGHT: MOV R0,#08H ;右循环 MOV A,#80H A2: MOVX DPTR,A LCALL DELAY RR A DJNZ R0,A2 JBC TF1,SHANSHUO ;查询T1溢出标志,TF1=1时转移

22、JMP RIGHTSS: MOV R0,#08H ;闪烁 LP1: MOV A,#55H MOVX DPTR,A LCALL DELAY MOV A,#0AAH MOVX DPTR,A LCALL DELAY DJNZ R0,LP1 JBC TF1, LEFT ;查询T1溢出标志,TF1=1时转移 JMP SHANSHUODELAY: MOV R1,#0FFH DEL1: MOV R2,0FFH DEL2: DJNZ R2, DEL2 DJNZ R1,DEL1 RET SJMP $ END结果分析:基本数字量输入输出实验其重点在于对单片机的准双向口的理解。即在用作输入时,口锁存器必须先写入“1

23、”。而作为输出时则可直接使用。利用计数器T1外部技术方式,当外部输入脉冲引脚上出现电平负跳变时,T1计数器加一,溢出标志TF1置一,然后改变LED灯亮的方式,同时,将标志位TF1复位,进入下一轮的计数溢出等待。因此,而形成三种亮灯方式的自动循环。若是用开关实现三种方式的亮灯,则需要在最开始和每种亮灯之后通过8255对开关状态进行采集并进行判断。因此事先还要先设置好哪个开关的闭合表示哪种亮灯方式。4.5实验五 定时器/计数器实验实验步骤:(1)编写实验程序,编译、链接后联机调试;(2)运行实验程序,使用示波器观察 P1.0引脚上的波形并记录周期;(3)改变计数初值,观察实验现象,验证程序功能。实

24、验硬件接线图: 定时器LED控制PROTEUS仿真接线图程序流程图: 程序清单:定时器程序(汇编版)ORG 0000H LJMP MAINORG 001BHLJMP INTT1ORG 0030HMAIN: MOV SP,#60H ;设置堆栈 MOV TH1,#3CH ;T1定时器初始化 MOV TL1,#0B0H ;50ms MOV TMOD,#10H ;T1工作在方式一 SETB TR1 ;开始计时 SETB ET1 ;开定时器中断 SETB EA ;开总中断 MOV DPTR,#TABLE ;数据段指向存储点亮顺序的数据表 MOV R1,#00H ;指针清零,指向第一个元素 MOV R0,

25、#20 ;设置循环次数 LED: MOV A,R1 MOVC A,A+DPTR ;依次读取TABLE里的值 MOV P1,A ;赋给P1口点亮LED AJMP LED ;循环执行等待INTT1: ;T1定时器中断服务程序 PUSH ACC ;入栈保护,保护累加器 PUSH PSW ;保护状态寄存器的值 MOV TH1,#3CH ;重新初始化T1 MOV TL1,#0B0H ;50ms DJNZ R0,RETT1 ;循环次数到(用于实现1s定时)中断返回 MOV R0,#20 ;重新设置R0=20 INC R1 ;指针自增 MOV A,R1 ANL A,#07H ;判断指针是否到8,若是则清零,

26、达到循环 的作用 MOV R1,ARETT1:POP PSW POP ACC RETI TABLE:DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFHEND 定时器程序(C语言版)#include /包含头文件,一般情况不需要改动,头文件包 含特殊功能寄存器的定义sbit LED1=P10; / 定义LED端口 void Init_Timer1(void) TMOD |= 0x10; /使用模式1,16位定时器,使用|符号可以在使 用多个定时器时不受影响 TH1=0x3C; /给定初值,这里使用定时器最大值从0开始计数一 直到65535溢出 TL1=0xB0; EA

27、=1; /总中断打开 ET1=1; /定时器中断打开 TR1=1; /定时器开关打开/*- 主程序-*/unsigned char a=10,b=8;main() Init_Timer1(); /初始化 while(1);/*- 定时器中断子程序-*/void Timer1_isr(void) interrupt 3 using 1 TH1=0x00; /重新赋值 TL1=0x00; a-; if(a=0) a=10; if(b=8) P1=0xa0; if(b=7) P1=0x50; if(b=6) P1=0x0a; if(b=5) P1=0x05; if(b=4) P1=0xaa; if(b=3) P1=0x55; if(b=2) P1=0x00; if(b=1) /b=1时重新设置b=9达到循环的目的 P1=0xff; b=9; b- 4.6实验六 /、/转换实验实验步骤:(1)按图18 连接实验线路,AD 的时钟线需要与实验平台中的系统总线单元的CLK 相连;(2)编写实验程序,经编译、链接无误后装入系统,启动调试;(3)将变量ADV 添加到变量监视窗口中;(4)在Delay()处行设置断点,使用万用表测量ADJ 端的电压值,计算对应的采样值,然

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

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