实验报告(单片机实验报告)
电子实习单片机实验报告

一、实验目的1. 理解单片机的基本工作原理和组成结构。
2. 掌握单片机编程的基本方法,包括汇编语言和C语言。
3. 学会使用Keil uVision等集成开发环境进行单片机程序的开发和调试。
4. 通过实验,了解单片机在实际应用中的功能和使用方法。
二、实验仪器设备1. 单片机实验板2. 电脑3. 示波器4. 信号发生器5. 电源6. 电阻、电容、电位器等电子元器件三、实验内容1. 单片机最小系统搭建- 搭建单片机最小系统,包括时钟电路、复位电路、电源电路等。
- 测试单片机是否能够正常工作。
2. LED流水灯实验- 利用单片机的I/O口控制LED灯的亮灭,实现流水灯效果。
- 通过编程实现LED灯的移位控制,观察流水灯的动态效果。
3. 按键输入实验- 设计按键输入电路,实现按键控制LED灯的亮灭。
- 编写程序,实现按键去抖动功能,确保按键信号的稳定性。
4. 定时器实验- 利用单片机的定时器实现定时功能,例如定时闪烁LED灯。
- 编写程序,设置定时器的时间间隔,观察LED灯的闪烁频率。
5. 串口通信实验- 配置单片机的串口通信参数,实现单片机与电脑之间的数据传输。
- 编写程序,实现数据的发送和接收,测试串口通信的稳定性。
四、实验步骤1. 单片机最小系统搭建- 根据实验板说明书,连接时钟电路、复位电路、电源电路等。
- 测试单片机的电源电压和复位功能。
2. LED流水灯实验- 编写程序,初始化I/O口,设置LED灯的移位控制方式。
- 编写延时函数,实现LED灯的动态效果。
- 将程序烧录到单片机中,观察LED流水灯效果。
3. 按键输入实验- 设计按键输入电路,连接到单片机的I/O口。
- 编写程序,实现按键的读取和去抖动功能。
- 将程序烧录到单片机中,测试按键输入功能。
4. 定时器实验- 配置单片机的定时器参数,设置定时器的时间间隔。
- 编写程序,实现定时器的中断处理,控制LED灯的闪烁。
- 将程序烧录到单片机中,观察LED灯的闪烁频率。
单片机实验报告 附含说明书

第一章 DICE-5208K开发型单片机综合实验仪概述一、系统简介DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。
是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。
新增加了几乎所有最实用、新颖的接口电路(如1 WIRE /I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。
可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。
二、主要特点1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。
可运行于WIN98/2000/NT/XP操作系统平台。
2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。
(可在线编程AT89S51/52/53系列单片机)。
3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。
4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。
5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
单片机中断实验报告

通过单片机的下载接口,将可执行的二进制文件 下载到单片机中。
实验测试
通过按键触发外部中断,观察LED灯的状态变化, 验证程序的正确性。
04
实验结果与分析
中断响应时间测试
总结词
响应时间快
详细描述
在测试中,我们发现单片机的中断响应时间非常快,能够在极短的时间内对外 部事件做出响应。这主要得益于单片机的硬件架构和中断处理机制,使得单片 机能够迅速识别并处理外部事件。
提高编程能力
通过本次实验,我们认识到自己的编程能力还有很大的提升空间。在未来的学习中,我们将注重提高自 己的编程能力,包括代码的优化、调试技巧等方面。
THANKS
感谢观看
实验中的问题与解决方案
在实验过程中,我们遇到了一些问题,如中断触发条件不 稳定等,通过调整相关参数和优化代码,最终解决了这些 问题。
对实验的反思与建议
01
实验操作流程的不足
在实验过程中,我们发现操作流程仍存在一些不足之处,如某些步骤的
描述不够清晰,导致实验过程中出现了一些不必要的困惑。建议在后续
的实验指导书中对操作流程进行更加详细的描述。
深入学习单片机中断机制
通过本次实验,我们对单片机的中断机制有了初步的了解。在未来的学习中,我们计划深入学习单片机的中断机制, 了解更多关于中断的细节和应用技巧。
探索更多中断应用场景
除了本次实验中实现的按键中断和定时器中断外,我们还计划探索更多的中断应用场景,如串口中断、ADC中断等 ,以拓宽我们的知识面和应用能力。
05
结论与建议
实验结论
实验目标达成情况
实验目标是通过单片机实现外部中断和定时器中断,实验 过程中成功实现了外部按键中断和定时器中断,验证了单 片机的中断处理机制。
单片机双机通信实验报告

单片机双机通信实验报告
实验目的:
1. 了解单片机之间的串口通信原理;
2. 掌握单片机之间的双机通信方法;
3. 实现单片机之间的数据互相传输。
实验器材:
1. 单片机开发板(两块);
2. USB转串口模块(两个);
3. 杜邦线若干;
4. 电脑。
实验步骤:
首先,将单片机开发板和USB转串口模块进行连接,具体的连接方法如下:
1. 将USB转串口模块的TXD引脚连接到单片机开发板的RXD引脚上;
2. 将USB转串口模块的RXD引脚连接到单片机开发板的TXD引脚上;
3. 将USB转串口模块的GND引脚连接到单片机开发板的GND引脚上;
4. 将USB转串口模块的VCC引脚连接到单片机开发板的VCC引脚上。
接下来的步骤如下:
1. 打开两台电脑上的串口调试助手软件,并分别将波特率设置为相同的数值(例如9600);
2. 在一台电脑上,发送数据给另一台电脑。
具体的操作是在串口调试助手软件上输入要发送的数据,然后点击发送按钮;
3. 在另一台电脑上,接收来自第一台电脑发送的数据。
具体的操作是在串口调试助手软件上点击接收按钮,然后可以看到接收到的数据。
实验结果:
通过实验可以看到,单片机之间成功地实现了数据的双向传输。
一台单片机发送的数据可以被另一台单片机接收到。
实验总结:
本实验通过串口通信的方式实现了单片机之间的双机通信。
通过这种方式,可以方便地实现单片机之间的数据互相传输,可以用于各种应用场景,如传感器与控制器之间的数据传输等。
同时要注意,串口通信的波特率要设置一致,否则数据将无法正确接收。
单片机生产实习报告

单片机生产实习报告(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作计划、工作总结、合同协议、条据书信、规章制度、应急预案、策划方案、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as work plans, work summaries, contract agreements, document letters, rules and regulations, emergency plans, planning plans, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!单片机生产实习报告单片机生产实习报告精选7篇单片机生产实习报告篇1一、实习目的单片机是一种集成电路芯片,采用超大规模集成电路技术把CPU、ROM、RAM等功能集成到一块硅片上构成一块小而完善的微型计算机系统,在工业控制领域广泛应用。
51单片机实验报告

51单片机实验报告51单片机是一款非常流行的单片机芯片,被广泛应用于各种电子产品中。
在这篇文章中,我们来探讨一下51单片机的一些实验,以及对于这些实验的理解和体会。
第一部分:实验内容我们进行的51单片机实验主要包括以下几个方面:1. 闪烁LED灯实验:这个实验是入门级别的,主要是为了熟悉51单片机的基本操作和编程方法。
在这个实验中,我们使用了一块51单片机开发板和几个LED灯,通过控制单片机的IO口信号来实现LED灯的闪烁。
2. 按键控制LED实验:这个实验是在闪烁LED实验的基础上进一步延伸的,主要是为了了解如何通过外部按键来控制单片机的输出。
在这个实验中,我们运用了单片机的外部中断和定时器等功能,实现了按键控制LED灯的亮灭。
3. LCD1602显示屏实验:这个实验是为了让我们熟悉如何在51单片机中使用LCD1602液晶显示屏。
在这个实验中,我们使用了I2C总线来与LCD1602进行通信,通过向LCD1602发送命令和数据来实现字符的显示。
4. 电机驱动实验:这个实验是让我们了解如何使用51单片机来控制电机的运转。
在这个实验中,我们运用了单片机的PWM控制功能,通过改变PWM波的占空比来控制电机的转速和方向。
第二部分:实验体会通过这些实验,我对于51单片机有了更深刻的理解和体会。
在这里,我想分享一下我的一些体会。
首先,我认为51单片机具有非常强大的控制能力和灵活性。
通过编写程序,我们可以控制单片机的各种IO口、定时器、PWM输出等功能,从而实现各种复杂的控制任务。
同时,由于其能够直接操作硬件,所以可以快速响应各种外部事件,对实时性要求较高的应用场景有很好的适应性。
其次,我发现在51单片机开发中,良好的软硬件结合非常重要。
由于51单片机具有丰富的外部中断、定时器等功能,因此我们可以很好地利用这些硬件资源来实现各种功能。
同时,在编写程序时,我们也需要充分发挥51单片机的硬件优势,例如使用定时器来完成计时任务,使用外部中断来完成输入检测等等。
单片机流水灯实验报告

实验目的:实现单片机流水 灯功能
实验结果:LED灯按照预设 顺序依次点亮,实现流水灯
效果
分析与讨论:实验结果与预 期相符,验证了单片机流水
灯功能的实现。
实验结果分析
实验目的:验证单片 机流水灯控制电路的
设计与实现
实验设备:单片机、 LED灯、电阻、电源
等
实验步骤:编写程序、 连接电路、运行程序、
观察现象
实验过程中,对实验结果 的分析不够全面,容易导 致实验结论不准确。
实验过程中,对实验数据 的记录不够详细,容易导 致实验数据丢失。
实验过程中,对实验设备 的维护不够重视,容易导 致实验设备损坏。
实验过程中,对实验环境 的控制不够严格,容易导 致实验结果不准确。
对未来实验的展望
创新实验方法:尝试新的实 验方法,提高实验效果
掌握流水灯电路 的搭建方法
学习单片机的编 程和调试方法
掌握流水灯电路 的调试方法
添加标题
添加标题
添加标题
添加标题
培养实践操作和问题解决能力
通过实验操作, 提高动手能力
学习单片机的基 本原理和编程方
法
培养发现问题、 分析问题和解 决问题的能力
提高团队合作和 沟通能力
02
实验设备
单片机开发板
添加标题 添加标题 添加标题 添加标题 添加标题 添加标题
编写流水灯程序
确定流水灯的 硬件连接方式
编写流水灯控 制程序
编译并下载程 序到单片机
调试程序,确 保流水灯正常 工作
0
0
0
0
1
2
3
4
烧录程序到单片机
准备烧录器:选择合适的烧录器,如USB烧录器 连接单片机:将烧录器连接到单片机的烧录接口 打开烧录软件:启动烧录软件,选择要烧录的程序文件 开始烧录:点击烧录按钮,开始烧录程序到单片机 检查烧录结果:烧录完成后,检查单片机的运行情况,确保程序正常运行
【报告】南邮单片机实验报告

【报告】南邮单片机实验报告一、实验目的本次南邮单片机实验旨在通过实际操作和实践,深入了解单片机的工作原理、编程方法以及其在实际应用中的功能实现。
通过完成一系列实验任务,提高我们对单片机系统的设计、开发和调试能力,为今后在电子信息领域的学习和工作打下坚实的基础。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil C51)4、下载器5、示波器6、万用表三、实验内容(一)点亮 LED 灯1、原理通过控制单片机的引脚输出高低电平,来控制连接在引脚上的 LED 灯的亮灭。
2、编程实现使用 C 语言编写程序,设置相应引脚为输出模式,并通过循环语句实现 LED 灯的闪烁效果。
3、调试与观察将程序下载到单片机中,观察 LED 灯的闪烁情况,使用示波器测量引脚的电平变化,以验证程序的正确性。
(二)数码管显示1、原理数码管由多个发光二极管组成,通过控制不同段的发光二极管的亮灭,可以显示不同的数字和字符。
2、编程实现编写程序,实现数码管的动态扫描显示,将需要显示的数字或字符转换为对应的段码,并通过定时中断实现动态刷新。
3、调试与观察下载程序后,观察数码管的显示效果,检查是否能够正确显示预定的数字和字符。
(三)按键控制1、原理按键连接到单片机的引脚,当按键按下时,引脚的电平发生变化,通过检测引脚电平的变化来实现按键的识别和响应。
2、编程实现设置引脚为输入模式,采用查询或中断的方式检测按键状态,根据按键的不同操作执行相应的功能。
3、调试与观察按下不同的按键,观察系统的响应是否符合预期,如 LED 灯的状态改变、数码管显示内容的变化等。
(四)温度传感器采集与显示1、原理使用数字式温度传感器(如 DS18B20)采集环境温度,传感器将温度转换为数字信号,单片机通过特定的通信协议读取温度数据。
2、编程实现编写驱动程序,实现与温度传感器的通信,读取温度值,并将其转换为合适的显示格式。
3、调试与观察将传感器置于不同的温度环境中,观察数码管或液晶显示屏上显示的温度值是否准确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 双字节无符号数加法例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5),R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。
已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)假设其和不超过16位。
请编程。
org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1, #79hmov R2,#25hmov R3, #0a4hmov A,R1ADD A,R3mov R5,Amov A,R0ADDC A,R2mov R4,Ass: jmp ssend2双字节无符号数减法例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。
R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。
同学自己可以设置被减数与减数数值org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1,#79hmov R2,#25hmov R3,#0a4hmov A,R1CLR CSUBB A,R3mov R5,Amov A,R0SUBB A,R2mov R4,Ass: jmp ssend3双字节数乘以单字节数例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。
若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。
30H,31H,32H内容 12H,34H,56H ;org 0000hLjmp startorg 0050hstart:mov 30h,#12hmov 31h,#34hmov 32h,#56hmov a,(30h)mov b,(32h)mul abmov R3,bmov R4,amov a,(31h)mov b,(32h)mul abadd A,R3mov R3,Amov A,bADDC A,#00hmov R2,Ass: jmp ssend4. 把8位二进制数转换为3位BCD例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD 数, 并以压缩形式存放在地址M1、 M2单元中。
设A中放A8H ,M1、 M2单元地址是 30H,31Horg 0000hLjmp startorg 0050hstart:mov A ,#0A8hmov b,#64hdiv Abmov (30h),Amov A,bmov b,#0Ahdiv Abswap Aadd A,bmov (31h),Ass: jmp ssend5双字节压缩BCD码加法例6: 双字节压缩BCD码加法。
设R5(高)、 R4(低)为被加数; R3(高)、 R2(低)为加数, 相加和的结果存入: R6(万)、 R5(千、百)、 R4(十、个)。
被加数98H,76H;加数 54H,32Horg 0000hLjmp startorg 0050hstart:mov R5,#98h ;R5mov R4,#76h ;R4mov R3,#54h ;R3mov R2,#32h ;R2mov A,R4add A,R2DA Amov R4,Amov A,R5ADDC A,R3DA Amov R5,Amov A,#0hmov R6,#0haddc a,R6mov R6,Ass: jmp ssend6 利用DPTR取数据,并保持DPTR原数不变例6: 若在外部ROM/EPROM中2000H单元开始依次存放0~9的平方值, 原来数据指针(DPTR)=3A00H, 请用查表指令取出2003H单元的数据后, 要求保持DPTR中的内容不变。
org 0000hLjmp startstart:mov DPTR,#3a00hpush DPHmov DPTR,#TABLEmov a, #03hmovc a,@A+DPTRpop DPHss: jmp ssorg 2000hTABLE: DB 0,1,4,9,16,25,36,49,64,81End7 16 位数的算术左移16 位数的算术左移。
16位数在内存中低 8 位存放在M1单元, 高 8 位存放在M1+1单元。
16位数是1234H ,M1为30H,M2为31Horg 0000hljmp startorg 0050hstart:mov (30h),#34Hmov (31h),#12hmov a,30hmov b,#02hmul abmov 30h,amov r1,bmov a,31hmov b,#02hmul abadd a,r1mov 31h,ass:jmp ssend8 比较内部RAM I、J单元中A、B两数的大小例 3: 比较内部RAM I、 J单元中A、 B两数的大小,设A、 B数均为带符号数, 以补码数存入I、 J中, 若A=B, 则使内部RAM的位K 置 1; 若A≠B, 则大数存M单元, 小数存N单元。
设内部RAM I、 J 是30H,40H;(A)=58H,(B)=97HM单元=50H,N单元=60H,位K=00H该带符号数比较子程序的比较过程示意图如图 3 ― 9 所示。
org 0000hljmp startorg 0050hstart:mov (30h),#58hmov (40h),#58hmov a,30hanl a,#80hjnz m ;a<0mov a,40hanl a,#80hjnz m2 ;b<0mov a,(40h) ;两个数字都大于0的情况subb a,(30h)jz m3jnc m1jc m2n1: ;两个数字都小于0的情况 mov a,(40h)subb a,(30h)jz m3jnc m2jc m1m: mov a,40hanl a,#80hjnz n1 ;b<0m1: mov (50h),(40h)mov (60h),(30h)jmp ssm2: mov (50h),(30h)mov (60h),(40h)jmp ssm3: mov (00h),#1ss:jmp ssend9 双字节压缩BCD码转换成二进制码例 2: 双字节压缩BCD码转换成二进制码子程序。
提示: 该转换的算法为: (d3d2d1d0)BCD=(d3×10+d2)×100+(d1×10+d0)实现该算法的参考子程序如下:入口: R5(千位、百位)、R4(十位、个位)为BCD码。
出口: R5R4(16 位无符号二进制整数)。
org 0000hljmp startorg 0050hstart:mov r5,#10hmov r4,#10hljmp BCD2Borg 2000hBCD2B:mov a,r5anl a,#0F0hswap amov b,#0ah;b>>10mul abmov r3,a ;暂存相乘结果 mov a,r5anl a,#0fhadd a,r3mov b,#64h;b>>100mul abmov r5,bmov r3,amov a,r4anl a,#0F0hswap amov b,#0ah;b>>10mul abmov r2,a ;暂存相乘结果 mov a,r4anl a,#0fhadd a,r2add a,r3mov r4,ass: ljmp ssend10 冒泡排序有8个数据存放在20H为首地址的内部RAM,进行升序排列编程,原始数据:39,27,13,44,78,22,6,51;设R7 为比较次数计数器,初始值为07H,F0为标志位,F0=0表明无互换发生,F0=1表明有互换发生org 0000hljmp startorg 0050hstart:mov (20h),#39;27hmov (21h),#27 ; 1Bhmov (22h),#13 ;0DHmov (23h),#44 ;2CHmov (24h),#78 ;4EHmov (25h),#22 ; 16Hmov (26h),#6 ; 06Hmov (27h),#51 ;33Ha0: mov r0,#20hmov r1,#1fhmov r7,#07hclr f0clr ca1:mov a,@r0inc r0inc r1mov b,asubb a,@r0jc a3a2: mov a,bxch a,@r0 mov @r1,a setb f0a3: djnz r7,a1 jb f0, a0ss: ljmp ssEnd11中断方式下定时器应用设计设单片机的晶振为12MHz,,定时器0方式0工作,产生1ms定时,在P1.0引脚上输出周期为2ms的方波,中断方式完成,试设计程序。
org 000BHLJMP INTorg 2000Hljmp startstart:mov TMOD ,#00Hmov th0 , #1chmov tl1 ,#18hsetb EAsetb ET0setb TR0sjmp $INT: CPL p1.0 ;输出方波MOV TH0,#1ch ;重新装入计数初值,如果是方式2就不需要重装。
MOV TL0,#18hRETIss:jmp ssend12查询方式下定时器应用设计设单片机的晶振为12MHz,,定时器0方式0工作,产生1ms定时,在P1.0引脚上输出周期为2ms的方波,查询方式完成,试设计程序。
org 2000Hljmp startstart:mov TMOD ,#00Hmov th0 , #1chmov tl1 ,#18hmov a,#00hmov IE ,#00Hsetb TR0loop: jbc tf0 ,loop1sjmp looploop1:clr tf0CPL p1.0 ;输出方波inc aMOV TH0,#1ch ;重新装入计数初值,如果是方式2就不需要重装。
MOV TL0,#18hsjmp loopss:jmp ssEnd13中断方式下定时器应用设计设片内RAM的70H单元的初值为01H,要求每1秒钟将其内容左环移一位,采用定时器T1,采用定时方式1,晶振频率为6MHz。
中断方式完成,试设计程序。
ORG 0000HLJMP MAINORG 001BH ;T1中断入口LJMP INT ;转至INT处ORG 2000H ;主程序MAIN:MOV TMOD,#10H ;T1工作于方式1MOV TH1,#3CH ;设置计数初值MOV TL1,#0B0HSETB EA ;CPU开中断SETB ET1 ;允许T1中断SETB TR1 ;启动T1定时MOV 70h,#01H ;将初值送入70H单元中MOV R0,#0AH ;设置软件计数器HALT: SJMP HALT ;等待中断INT: DJNZ R0,NEXT ;中断服务程序MOV A,70H ;时间已到,将70H单元内容送ARL A ;左环移一位MOV 70H,A ;回送MOV R0,#0AH ;重新设置软件计数器NEXT:MOV TH1,#3CH ;重新设置计数初值 MOV TL1,#0B0HRETI ;中断返回ss:jmp ssEND。