《微控制器实验报告》由会员分享,可在线阅读,更多相关《微控制器实验报告(19页珍藏版)》请在金锄头文库上搜索。
1、微控制器技术实验报告班级:姓名:学号:微控制器技术实验说明一、 实验目的及要求:1、学习 Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、熟悉 TD-51单片机系统板及实验系统的结构及使用;3、进行 MCS51单片机指令系统软件编程设计与硬件接口功能设计;4、学习并掌握 Keil C51与 Proteus 仿真软件联机进行单片机接口电路的设计与编程调试;5、完成指定 MCS51单片机综合设计题二、 实验基本内容 (TD-51 单片机实验系统实现 )实验一 清零程序与拆字程序设计根据实验指导书之“第二章 单片机原理实验” ( P17P23页)内容,熟
2、悉实验环境及方法,完成思考题 1、 2( P23)基础实验项目。实验二 拼字程序与数据传送程序设计汇编语言完成实验指导书 P24思考题 3、 4 题的基础实验项目。实验三 排序程序与散转程序设计汇编语言完成实验指导书 P24思考题 5、 6 题的基础实验项目。实验四 静态存储器扩展实验基本部分: 阅读、 验证 C语言程序功能。 使用汇编语言编程, 完成实验指导书之“ 4.1 静态存储器扩展实验”基本实验项目( P57) 。提高部分: 阅读、验证 C语言程序功能。 使用汇编语言编程,完成实验指导书之“ 4.2 FLASH 存储器扩展实验”实验项目( P60) 。实验五 数字量输入输出实验基本部分
3、: 阅读、 验证 C语言程序功能。使用汇编语言编程,完成实验指导书之“ 3.1 数字量输入输出实验”基本实验项目( P36) , 。提高部分: (任选一题)题目一: LED交通灯控制 (使用 8255 接口芯片)要求: 使用汇编语言编程, 功能为: 通过开关实现 LED灯工作方式即时控制, 完成 LED交通灯的开关控制显示功能和 LED交通灯自动循环显示功能。题目二: LED灯控制 (使用 8255 接口芯片)要求: 使用汇编语言编程, 功能为: 通过 KK1实现 LED灯工作方式即时控制,完成 LED开关控制显示和 LED灯左循环、右循环、间隔闪烁功能。题目三: 键盘扫描与数码管显示设计(要
4、求: 阅读、验证 P69 上的 C 语言参考程序功能。使用汇编语言完成编程与功能调试。实验六 定时器 / 计数器实验基本部分: 阅读、 验证 C语言程序功能。 使用汇编语言编程, 完成实验指导书之“ 3.3 定时 / 计数器实验”基本实验项目( P40) 。提高部分: (任选一题完成)题目一:定时器控制 LED灯要求: 由单片机内部定时器 1,按方式 1 工作,即作为 16 位定时器使用每 0.05 秒钟 T1 溢出中断一次。 P1 口的 P1.0-P1.7 分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟 L1, L3 亮,第二秒钟 L2, L4亮,第三秒钟 L5, L7 亮,
5、第四秒钟 L6, L8 亮,第五秒钟 L1, L3, L5, L7 亮,第六秒钟 L2, L4, L6, L8 亮,第七秒钟八个 LED灯全亮,第八秒钟全灭,以后又从头开始, L1, L3 亮,然后 L2, L4 亮 , 一直循环下去。题目二:计数器实验要求: 单片机内部定时计数器,按计数器模式和方式 1 工作,对 P3.4(T0)引脚进行计数。使用 T1 作定时器, 50ms中断一次,看 T0 内每 0.50 来了多少脉冲,将其数值按二进制在 LED灯上显示出来, 5 秒后再次测试。题目三:急救车与交通灯(外部中断实验)要求: 完成交通灯基本功能基础上,当有急救车到达时,两向交通信号为全红,
6、 以便让急救车通过。 假定急救车通过路口时间为 10 秒, 急救车通过后,交通灯恢复中断前状态。本实验题以按键为中断申请,表示有急救车通过。实验七 / 、 / 转换实验基本部分: 阅读、 验证 C语言程序功能。 使用汇编语言编程, 完成实验指导书之 “ 4.3 A/D 转换实验” 项目 ( P64) 和 “ 4.4 D/A 转换实验” 项目 ( P67) 。提高部分: (要求: Proteus 环境下完成)小键盘给定(并显示工作状态) ,选择信号源输出波形类型( D/A转换方式) ,经过 A/D 采样后,将采样数据用 LED灯,显示当前模拟信号值大小及变化状态。实验八 串行通讯实验基本部分:
7、阅读、调试 C语言程序功能。使用汇编语言编程,完成实验指导书之“ 3.7 串口通讯实验”项目。 (要求:实验仪器上完成)提高部分: (要求: Proteus 环境下完成)题目一: 利用单片机实验系统,实现与 PC机通讯。功能要求:将从实验系统键盘上键入的数字, 字母显示到 PC机显示器上, 将 PC机键盘输入的字符( 0-F )显示到单片机实验系统的数码管上。题目二: 进行实验七、实验八实验内容综合。三、 实验报告基本内容要求1、 实验题设计内容、目的和要求; 2、软件、硬件环境要求; 3 、给出硬件电路原理图并分析; 4 、程序设计框图及程序清单; 5 、实验调试步骤及结果分析; 6、结论实
8、验系统简介:随着单片机技术的发展, 八位单片机的功能发生了很大的变化。 由简单的 MCS-51 向嵌入式、增强型 51 内核单片机发展,使用在系统可编程( ISP)技术、在应用可编程技术( IAP)以及内嵌仿真功能的单片机层出不穷。先进技术的发展使得单片机调试、开发的手段发生了天翻地覆的变化。 TD-51 系统板是西安唐都科教仪器公司为 TD 系列微机接口教学平台配套推出的扩展件, 使用该系统板配合接口教学实验平台可以完成单片机原理及应用的学习。 TD-51 系统板的出现为广大师生用户提供了一套廉价、实用的单片机实验教学方案。TD-51 系统板的构成及特点:1、 系统构成TD-51 系统板为开
9、放的最小单片机系统,采用具有在系统可编程和在应用可编程技术的增强型 51 单片机, 单片机内置仿真程序,可以实现调试、仿真功能, 配合 TD 系列微机接口教学 实验平台可开展单片机原理及应用的实验教学。2 系统功能特点1. 取代硬件仿真器的增强型单片机系统采用具有在系统可编程( ISP)和在应用可编程( IAP)技术的增强型 51 单片机,单片机内置仿真程序, 完全取代传统的硬件仿真器和编程器。这种先进的单片机将仿真系统和应用系统合二为一,大大降低了应用开发成本,极大地提高了研发效率。把单片机的仿真开发和应用设计提高到一个崭新的技术领域。2. 先进的集成开发调试环境使用业界著名的 Keil C
10、51 集成开发环境作为实验设计、调试的工具。 Keil C51 提供了强大的调试功能, 可单步、 断点、 全速运行程序, 可观察寄存器区、 ROM 变量区、 RAM 变量区等的内容。支持汇编语言和 C 语言的源语言调试。3. 灵活的组合方式采用开放的系统板结构,可以灵活地配合各型号接口实验平台开展单片机的应用教学。4. 丰富的实验内容提供了丰富的原理及接口应用实验。配合接口实验平台可完成数字量输入 / 输出、 中断、定时器 / 计数器、看门狗、低功耗、 PCA、串口通讯、静态存储器、 FLASH、 A/D、 D/A、键盘及数码显示、电子音响、点阵 LED、 LCD、步进电机、直流电机、温度控制
11、等实验内容。通过 TD-51 系统板可以开展各种单片机实验,具体包括:1. 单片机原理原( 1)系统认识实验( 2)数码转换实验( 3)运算程序设计实验( 4)查表程序设计实验( 5)数据排序实验( 6)位操作实验2. 单片机集成功能模块模( 1)数字量输入 / 输出实验( 2)中断系统实验( 3)定时器 / 计数器实验( 4)看门狗实验( 5)低功耗实验( 6) PCA 实验( 7)串口通讯实验3. 单片机系统扩展扩( 1)静态存储器扩展实验( 2) FLASH 扩展实验( 3) A/D 转换实验( 4) D/A 转换实验( 5) 8255 键盘及数码显示实验( 6)电子发声实验( 7)点阵
12、 LED 实验( 8) LCD 图形液晶实验(选配)4. 单片机控制应用应( 1)步进电机实验(选配)( 2)直流电机实验( 3)温度闭环控制实验实验一到实验三:( 1) 清零程序:把 7000H 7FFFH 的内容清零。( 2) 折字程序:把 7000H 的内容拆开,高位送 7001H 低位,低位送 7002H 低位。7001H,7002H高位清零,一般本程序用于把数据送显示缓冲区时用。( 3) 拼字程序:把 7000H,7001H 的低位相拼后送人 7002H,一般本程序用于把显示缓冲区的数据取出拼装成个字节。( 4) 数据传输子程序:把( R2,R3)源 RAM 区首址内的( R6,R7
13、)个字节数据 , 传送到( R4,R5)目的 RAM 区。( 5) 编写散转程序,根据 8032 片内 20H 中的内容( 00 或 01 或 02 或 03 )进行散转。6) 编写并调试一个排序子程序,其功能为用冒泡法将内部 RAM 中几个单元字节无符号的正整数,按从小到大的次序重新排列。(1): 清零程序:把 7000H 7FFFH 的内容清零。程序清单:ORG 00H AJMP MAIN ORG 30H MAIN: MOV SP, #5FH MOV R1, #00H MOV DPTR, #7000H LOOP: CLR A MOVX DPTR, A INC DPTR INC R1 CJN
14、E R1, #0FFFH, LOOP MOV DPTR, #7000H MOV R1, #00H SJMP $ END ( 2)拆字程序:把 7000H 的内容拆开,高位送 7001H 低位,低位送 7002H 低位。7001H,7002H高位清零,一般本程序用于把数据送显示缓冲区时用。程序清单:ORG 0000H AJMP START ORG 000BH START:MOV A,#26H ; 给累加器 a 赋值MOV DPTR,#7000H ; 数据指针指向片外 7000h 单元MOVX DPTR,A ; 将 a 中的数送给 7000h 单元MOVX A,DPTR ; 将 7000h 单元中
15、的内容取出MOV R0,A ; 将内容保存起来ANL A,#0F0H ; 将低四位清零SWAP A ; 高低位转换MOV DPTR,#7001H ; 数据指针指向 7001h 单元MOVX DPTR,A ; 将高四位存入 7001h 中MOV A,R0 ; 取出 7000h 单元中的内容ANL A,#0FH ; 将高四位清零MOV DPTR,#7002H ; 数据指针指向 7002h 单元MOVX DPTR,A END ( 3)拼字程序:把 7000H,7001H 的低位相拼后送入 7002H,一般本程序用于把显示缓冲区的数据取出拼装成个字节。程序清单:ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV DPTR,#7000H MOV A,#26H MOVX DPTR,A MOV DPTR,#7001H MOV A,#5FH MOVX DPTR,A ; 给 7000h7001h 赋初值MOV DPTR,#7000H MOVX A,DPTR SWAP A ANL A,#0F0H MOV R1,A ; 取出 7000h 的低四位放入 r1 中 , 并作为高四位MOV DPTR,#7001H MOVX A,DPTR ANL A,#0FH ; 取出 7001h 的低四位作为低四位放入 A 中ORL A,R1 ;