单片机实验报告
单片机实验报告一 单片机软件实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。
2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。
(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
(四)实验设备PC机,Keil C51集成开发环境。
(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。
其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。
下图中的寄存器窗口中可以显示计算结果为0x13ba。
调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。
(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。
第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。
(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。
实验报告(单片机实验报告)

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单元中。
单片机实验报告 附含说明书

第一章 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接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
单片机双机串行实验报告

单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。
实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。
常用的串行通信方式有同步串行通信和异步串行通信。
异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。
而同步串行通信是指通过外部时钟信号进行数据的同步传输。
实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。
2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。
3.在编程软件中,编写两个程序分别用于发送数据和接收数据。
4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。
然后利用串口发送数据的指令将数据发送出去。
5.在接收数据的程序中,同样要设置串口的参数。
然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。
实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。
发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。
实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。
否则,发送数据的单片机和接收数据的单片机无法正常进行通信。
同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。
实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。
掌握了串口的设置和使用方法,以及相关的指令和函数。
在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。
同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。
例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。
【报告】南邮单片机实验报告

【报告】南邮单片机实验报告一、实验目的本次南邮单片机实验旨在通过实际操作和实践,深入了解单片机的工作原理、编程方法以及其在实际应用中的功能实现。
通过完成一系列实验任务,提高我们对单片机系统的设计、开发和调试能力,为今后在电子信息领域的学习和工作打下坚实的基础。
二、实验设备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、调试与观察将传感器置于不同的温度环境中,观察数码管或液晶显示屏上显示的温度值是否准确。
单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
单片机实验报告二 单片机IO口实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。
2.熟练掌握STC型开发板的使用方法和注意事项。
3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。
其中流水灯的变化形式多样。
(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。
根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。
图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。
单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。
单片机串行口实验报告实验总结

单片机串行口实验报告实验总结一、实验目的本实验旨在让学生了解单片机串行口的基本原理和应用,掌握单片机串行口的编程方法,培养学生动手实践和解决问题的能力。
二、实验器材1. STC89C52单片机开发板2. 电脑串口线3. 电脑终端仿真软件Tera Term三、实验原理串行口是单片机与外部设备进行通信的重要接口之一。
串行口通信是指将数据一个位一个地传输,每个数据位之间有一个时钟脉冲来同步传输。
常见的串行通信协议有RS232、RS485、SPI等。
本实验主要涉及到RS232协议。
四、实验内容1. 实现单片机向电脑发送数据并显示。
2. 实现电脑向单片机发送数据并控制LED灯闪烁。
五、实验步骤1. 连接STC89C52单片机开发板和电脑,使用Tera Term打开串口终端。
2. 编写程序,设置单片机的串行口通信参数(波特率、数据位数、停止位数等),并利用SendData函数向电脑发送数据。
3. 在Tera Term中设置相应的串口参数,并打开“local echo”选项,以便观察单片机发送的数据。
4. 编写程序,接收电脑发送的数据,并根据接收到的数据控制LED灯闪烁。
5. 在Tera Term中输入相应的命令,向单片机发送数据,观察LED灯的闪烁情况。
六、实验结果1. 实现了单片机向电脑发送数据并显示。
2. 实现了电脑向单片机发送数据并控制LED灯闪烁。
七、实验总结本实验使我对串行口通信有了更深入的理解,掌握了单片机串行口编程方法。
同时也锻炼了我的动手能力和解决问题的能力。
在实验过程中还需要注意串口参数设置和通信协议选择等问题,加深了我对这些知识点的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验项目名称
五、矩阵键盘改变数码管显示
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
单片机技术
实验项目名称
六、单片机外部中断应用
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
while (--i)
{
j=250;
while(--j);
}
}
void main(void)
{
while(1)
{
P1 = 0x0F;
delay(1000);
P1 = 0xF0;
delay(1000);
if(P2 = 0xff)
{
P1 = 0x0F;
P3 = 0xF0;
}
else
{
P1 = 0xFF;
case 0xDE : keytemp = 9;break;
case 0xBE : keytemp = 8;break;
case 0x7E : keytemp = 7;break;
default : keytemp = 16; break; //无摁键反映*/
}
return keytemp;
}
六、实验结果及心得体会
//函数功能:摁键专用延时函数
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:
//*******************************************
void KeyDelay20ms( void )
{
uint uitime = 2000;
while (--uitime);
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
单片机技术
实验项目名称
四、数码管动态显示
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
1 2 3 12 7B BB DB EB
0 15 14 13 77 B7 D7 E7
四、实验线路
五、实验程序
#include "keyboard.h"
//*******************************************
//函数名称: void Delay20ms( void )
1)让发光二极管从左至右循环轮流点亮两只灯;
2)让8只光二极管从外向内循环轮流点亮;
3)让8只光二极管从内向外循环轮流点亮;
四、实验线路
图1实验线路图
五、实验程序
#include<reg52.h>
void delay(unsigned int i)
{
unsigned char j;
while (--i)
{
j=250;
while(--j);
}
}
void main(void)
{
unsigned char output = 0xfe;
while(1)
{
P1 = output ;
output = output << 1;
delay(1000);
output |= 1;
if(output == 0xff)
output = 0xfe;
{
uctmp1 = KeyScanIO; //第六步:扫描在哪一行,存于低四位
KeyScanIO = 0xf0;
uctmp2 = KeyScanIO; //第七步:扫描在哪一列,存于高五位
while ((KeyScanIO & 0xf0) != 0xf0);//第八步:等待按键释放
return (uctmp1 | uctmp2); //第九步:合并行列位置,并返回
KeyScanIO = 0x0f;//第二步:判断在哪一行
if ((KeyScanIO & 0x0f) != 0x0f) //第三步:为真时说明有摁键反应,判断第一次
{
KeyDelay20ms(); //第四步:延时20ms
if ((KeyScanIO & 0x0f) != 0x0f)//第五步:为真时真的有摁键反应,判断第二次
}
//*******************************************
//函数名称: uchar ScanKeyRead( void )
//函数功能:扫描键盘若有摁键有反应就返回键值
//形式参数:无
//行参说明:无
//返回参数:键值
//使用说明:
//键值:
//7E BE DE EE
P3 = 0xFF;
}
}
}
六、实验结果及心得体会
(按步骤记录调使其他的发光二极管实现亮灭,本部分手写,写不下可写在背面)
课程名称
单片机技术
实验项目名称
二、单片机控制流水灯
开课系(部)及实验室
实验日期
2015年3月31日
学生姓名
学号
班级
指导教师
三、实验内容及要求
单片机P3.0-P3.3口连接4只按键,利用以上按键,实现如下功能
1、动态改变数码管显示值
2、使用按键输入改变数码管显示的数字
3、设计按键输入与显示的交互控制(发挥)
四、实验线路
5、实验程序
六、实验结果及心得体会
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
三、实验原理
1、用KeilμVision编辑、编译简单的C51程序;
2、将编译好的的目标代码文件“*.HEX”,使用下载软件(STC_ISP)下载到开发板。
四、单片机控制发光二极管亮灭实验原理图:
五、实验程序:
#include<reg52.h>
void delay(unsigned int i)
{
unsigned char j;
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1、掌握一维数组定义和调用的方法;
2、掌握数码管的原理,学习定义数码管及LED各种图形组合数组的技巧;
3、学习程序组合和函数调用方法,进一步提高编程能力
二、主要仪器设备
1、安装KeilμVision及Protues软件的计算机一台;单片机开发板一套。
}
else
return 0;//无按键标志
}
else
return 0;//无按键标志
}
//*******************************************
//函数名称: uchar KeyValOpe( uchar ucKeyval )
//函数功能:转换键值,并返回键号
//形式参数:无
uchar KeyValOpe( uchar ucKeyval )
{
uchar keytemp;
switch (ucKeyval)
{
case 0xE7 : keytemp = 13; break;
case 0xD7 : keytemp = 14;break;
case 0xB7 : keytemp = 15;break;
case 0x77 : keytemp = 0;break;
case 0xEB : keytemp = 12;break;
case 0xDB : keytemp = 3;break;
case 0xBB : keytemp = 2;break;
case 0x7B : keytemp = 1;break;
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1、初步掌握C51的基本语法、基本控制语句的使用,函数调用等知识,学习按任务编写基本程序
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1.掌握单片机I/O口读写方法。
2.掌握独立按键的连接方法及使用。
3. C语言基本语句的编写,对I/O口基本操作。