《单片机原理及应用》实验报告
单片机原理及应用实验报告1
单片机原理及应用实验报告(一)姓名:###学号:*********班级:0902501班指导教师:###院系:信息与电气工程学院实验一熟悉菊阳JY2X00仿真开发系统一、实验目的1、了解单片机开发系统的作用、功能;2、了解、掌握单片机开发系统的窗口结构及菜单命令的使用;3、观察 P1 口的锁存功能。
二、实验内容1、了解主菜单的结构及使用;2、观察、修改内部/外部数据存储器、工作寄存器、特殊功能寄存器的内容;3、观察P1口的锁存功能。
三、实验设备及仪器1、单片机实验装置及开发系统一套;2、PC 机一台。
四、实验步骤1、启动菊阳开发系统运行应用程序JY2X00 IDE,在仿真器设置中选择‘使用软件仿真’。
进入菊阳单片机集成开发环境界面,该界面包括:主菜单、主窗口及观察窗口等。
2、观察、修改内部数据存储器的内容①观察内部数据存储器的内容主窗口左侧的观察窗口中,点击Idata选项,显示内部数据存储器单元的内容。
点击其它选项,可观察通用寄存器,特殊功能寄存器,外部存储器,可位寻址位等内容。
②修改内部数据存储器、工作寄存器、部分特殊功能寄存器将光标移至要修改的单元,,可以在选中的数据上直接修改设置某地址的数据值(十六进制)。
用同样的方法可以修改工作寄存器、特殊功能寄存器。
3、了解主菜单的功能与使用下面通过输入、修改、调试一个简单的程序,熟悉、掌握主菜单命令的功能和使用方法。
①建立/打开程序用鼠标单击主菜单“文件”命令,选择“新建…”,集成开发环境将打开一个编辑窗口。
在该窗口中可输入一个新程序。
对于新建程序,要在编辑完成后保存程序,“文件”栏中选择“保存文件”并输入文件名称(扩展名为.ASM),如:TEST.ASM。
②汇编程序建立工程文件,用‘添加模块到工程’将新建文件加入到当前工程中。
单击主菜单中“编译”命令,选择“编译”或“全部编译”命令。
汇编当前打开的编辑窗口中的汇编程序。
如果程序中存在错误,修改后再次汇编,直至汇编成功。
单片机原理及应用实验报告
《单片机原理及应用》实验报告姓名:学号:班级:应用物理指导教师:日期:实验1 计数显示器一、实验目的熟悉51单片机的基本输入输出应用,掌握Proteus模块的原理图绘图方法及单片机系统仿真运行方法二、实验原理由共阴极数码管LED1和LED2、P0口、P2口,上拉电阻RP1及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输入电路,该电路在编程软件的配合下,可实现计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制数形式显示出来;当显示值达到99后可自动从1开始,无限循环。
三、实验内容(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能(2)学会选择元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)验证计数显示器的功能四、实验要求提交实验报告并包括如下内容:电路原理图、电路原理分析、仿真运行截图及实验小结1.实验原理图2.仿真运行截图3.实验小结通过这次实验让我认识了kell和proteus软件的基本功能,学会了用kell编写程序用proteus仿真运行。
在这次实验中同时也遇到了很多问题。
比如因为第一次使用这两个软件对界面还不太熟悉,浪费了很多的时间也产生了很多错误,但之后与同学们的交流过程中,慢慢的对这两个软件有了更深入的了解,在后期仿真的时候才能得心应手的处理问题。
这个计数显示器的实验让我进一步了解了单片机与数码管的魅力,看到了电子元件的神奇之处,只要按动按键就能让数码管的数字逐次加一,这大大激发了我的学习单片机兴趣,这次实验也会成为我以后学习单片机的奠基石,因为它打开了我认识单片机的大门,让我认识到了单片机的魅力,并让我沉浸其中。
实验2 指示灯开关控制器一、实验目的学习51单片机I/O口基本输入输出功能,掌握汇编语言的编程与调试方法。
二、实验原理输入电路由外接在P1口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
单片机原理及应用实验报告
[i? «nen伯)
[£]:OOOTHCr)
⑶:0006畑
理]:0005H6)
⑸:00轴⑷
[6]:0003HG)
[7]:DOO2M(2)
[arDooixti)
实验二:流水灯控制实验
头验目的:1•验证性实验,P1口作输出口,接一个LED发光二极管,使其闪烁(0.5
秒亮,0.5秒灭)。
按两次键后,8路LED交替闪烁,具体循环顺序为:LEDF LED4 LEDP LED7~LEDM LED4tLED4 LEDILED1,如此重复循环下去。
按三次键后,回到初始的“从右至左流水点亮”工作状态。
实验接线图:
Sxik+5V
PLO
P1.1
Pl.2
Pl. 5
Pl. 6
PL 7
图3/流水灯控制
实验程序
{ Delayms(100);
}
break;
case 2:
for(i=0,P仁0 xfe; i<8; i++)
{ Delayms(100);
if(i==4) P1= 0xfd;
}
break;
}
P1=(P1<<1)+1;
P1=(P1»1)+0x80;
P1=(P1<<2)+0x3;
goto Loop;
}
uchar T200ms=4, i=0,k=0;
void ScanKey0( void);
main ()
{TMOD=0x01;//T0
为方式1定时
EA=1;//
允许CPU中断
ET0=1;//
允许T0中断
单片机原理及应用实验二报告
单片机原理及应用实验二报告实验二:单片机IO口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。
二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。
三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。
IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。
四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。
2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。
3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。
五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。
单片机原理与应用实验报告
单片机原理实验报告实验一计数显示[目的]熟悉Proteus仿真软件,掌握单片机原理图的绘制方法【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何使用ISIS模块,学习设置图纸、选择元件、画线、修改属性等基本操作(3)了解如何加载可执行文件和运行程序仿真(4)了解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制[实验步骤](1)观察Proteus软件的基本结构,如菜单、工具栏、对话框等。
(2)Proteus中绘制电路原理图,并根据表A.1将组件添加到编辑环境中(3)在Proteus中,观察仿真结果,检查电路图绘制的正确性【实验示意图】【实验源程序】#include <reg51.h>位 P3_7=P3^7;无符号字符 x1=0;x2=0 ;无符号字符数=0;无符号字符 idata buf[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};无效延迟(int时间){整数 k,j;for(;time<0;time--)for(k=200;k>0;k--)for(j=500;j<0;j--);}无效初始化(){P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);}无效的主要(){在里面();而(1){x1=计数/10;x2=计数%10;P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);如果(P3_7==0)// {延迟(10);而(!P3_7);如果(计数==99)计数=0;别的计数=计数+1;}}}[实验结果]阐明计数器的作用是按下K1后,数码管LED1和LED2会显示按键的按下次数, LED1代表一位, LED2代表十位。
当计数器达到99时,再次按下K1键,显示值再次从0开始。
实验2指示灯开关控制器[目的]学习如何编程和调试汇编语言【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何用汇编语言编程(3)ISIS 模块中输入、编译和调试汇编程序(4)了解MCU程序控制原理,实现指示灯/开关控制器的预期功能[实验步骤]( 1 ) 在ISIS中画出电路原理图, 并在编辑环境中添加相应的元器件 .( 2 )在ISIS中编写汇编语言程序( 3 ) 利用ISIS 的汇编调试功能检查程序的语法和逻辑错误( 4 )观察仿真结果,检查程序和电路的正确性【实验示意图】【实验源程序】#include <reg51.h> 无效延迟(int时间){整数 k,j;for(;time<0;time--) {for(k=100;k<0;j--) for(j=500;j<0;j--); }}无效初始化(){P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);}无效的主要(){在里面();P1=0x00;延迟(20);P1=0xff;延迟(20);而(1){P1=P2 ;}}[实验结果]阐明点击运行,8个LED 一起闪烁3次。
单片机原理及应用实验报告2
单片机原理及应用实验报告2单片机原理及应用实验报告2实验报告:单片机原理及应用实验一、实验目的1、了解单片机的基本工作原理;2、掌握单片机的编程方法和编写汇编语言程序的能力;3、学习单片机的应用实验。
二、实验原理单片机是一种集成电路,内部包含了中央处理器、存储器和各种输入输出端口。
单片机的工作原理是通过对输入信号的处理和对输出信号的控制来实现各种功能。
单片机的编程方法一般采用汇编语言编写程序。
汇编语言是一种低级语言,可以直接对单片机进行操作。
通过编写汇编语言程序,可以实现各种功能,如控制LED灯的亮灭、控制电机的转动等。
本次实验主要通过控制LED灯的亮灭来演示单片机的应用。
在实验中,我们将使用汇编语言编写程序,通过编程来控制LED灯的亮灭。
三、实验步骤2、编写汇编语言程序:打开编程软件,进入编程界面,编写程序代码;3、编译程序:将编写好的程序进行编译,生成机器码;4、烧录程序:用编程工具将编译好的机器码烧录到单片机中;5、连接电路:使用面包板将单片机与LED灯连接起来;6、测试程序:将单片机的电源接通,观察LED灯的亮灭情况。
四、实验结果与分析经过以上步骤,我们成功地编写了汇编语言程序,并将程序烧录到了单片机中。
在实验中,我们观察到LED灯根据程序的控制产生了相应的亮灭效果。
实验结果表明,通过编程可以实现对单片机的控制,从而实现各种功能。
单片机在嵌入式系统、自动控制系统、家电等方面有着广泛的应用。
五、应用实例1、家居智能化控制:通过编程控制单片机,可以实现对家电的智能化控制。
例如,可以根据日出日落时间控制窗帘的开闭,根据室内温度控制空调的开关等。
2、工业自动化:在工业生产中,单片机可以用来控制各种设备和机械,实现生产线的自动化控制。
例如,可以根据产品的规格和数量,自动调整机械的工作速度和工作时间。
3、智能交通系统:在交通领域,单片机可以用来控制信号灯、道闸等设备,实现交通流量的控制。
例如,可以根据道路的拥堵程度和车辆的行驶速度,调整信号灯的红绿灯时间,从而达到交通畅通的目的。
《单片机原理及应用》实训报告
目录一、设计目的--------------------------------------1二、设计课题--------------------------------------1三、课题分析--------------------------------------1四、硬件原理--------------------------------------2五、源程序清单-----------------------------------3六、实验过程及报告-----------------------------5七、设计体会--------------------------------------7一、设计目的1、熟悉单片机应用系统的开发、研制过程。
2、能运用MCS-51单片机进行简单的单片机应用系统的硬件设计。
3、能采用MCS-51单片机汇编语言进行简单的单片机应用系统的软件设计。
4、掌握单片机应用系统的硬件、软件调试方法。
5、熟悉单片机仿真开发系统的作用,基本掌握运用单片机仿真开发系统进行在线仿真、调试和目标程序固化的方法。
6、为今后从事单片机应用系统的开发、生产和维护工作奠定基础。
二、设计课题模拟霓虹灯控制系统的设计与制作用一个Φ5发光二极管代表一个灯。
将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字1—16为各灯的编号,让各灯循环交替显示,从而获得街上霓虹灯的显示效果。
三、课题分析程序实现的功能如下:①用一个Φ5发光二极管代表一个灯。
将16个红、黄、绿3色灯排成一排或排成一个环行,如:红1-黄2-绿3-红4-黄5-绿6-红7-黄8-绿9-红10-黄11-绿12-红13-黄14-绿15-红16,其中数字1—16为各灯的编号。
下面的叙述中用此编号表示不同的灯。
单片机的原理及应用实验报告
单片机的原理及应用实验报告一、引言单片机(Microcontroller Unit,简称MCU)是集成了微处理器核心、存储器、输入输出接口及其他外围设备的一种特殊集成电路芯片。
它具有存储能力、运算能力和控制能力,广泛应用于各种电子设备和系统中。
本实验旨在探究单片机的工作原理,并通过实际应用实验来进一步理解其使用技术与方法。
二、实验目的1.了解单片机的基本结构和工作原理;2.学习如何使用单片机进行控制和数据处理;3.掌握单片机的简单编程技巧;4.探索和实现基本的单片机应用。
三、实验仪器和材料•单片机开发板•USB数据线•LED灯•电阻、电容等基本电子元件四、实验步骤1.硬件连接步骤:–将单片机开发板连接到电脑上,通过USB数据线进行供电和通信。
–将LED灯接入单片机的IO引脚。
–连接其他所需的电子元件,如电阻、电容等。
2.单片机编程步骤:–打开开发环境,使用C语言编写所需的程序。
–确定需要使用的IO引脚和控制方式。
–编译并下载程序到单片机开发板上。
3.实验运行步骤:–按照程序设计的要求,进行相应的操作和观察。
–通过观察LED灯的亮灭、闪烁等情况,验证单片机的控制和运算能力。
五、实验结果与分析在实验过程中,我们成功地编程控制了单片机开发板上的LED灯。
通过修改程序代码中的控制参数,我们可以实现LED灯的不同状态,例如常亮、闪烁、呼吸灯等效果。
这验证了单片机的控制和运算能力。
六、实验总结通过本实验,我们对单片机的原理和应用有了初步的了解。
单片机作为一种功能强大的集成电路芯片,在各种电子设备和系统中都有广泛的应用。
掌握单片机的编程技巧和使用方法对于电子领域的学习和研究都是至关重要的。
七、参考文献无以上是本次实验的实验报告,通过本次实验,我们深入理解了单片机的原理和应用,并成功完成了LED灯的控制实验。
希望通过这次实验的学习,能够对单片机的应用有更深入的认识,并为未来的学习和研究打下基础。
单片机原理及应用实验报告
单片机原理及应用实验报告一、引言单片机(Microcontroller Unit,简称MCU)是一种集成电路芯片,内部集成了微处理器、存储器、输入输出接口和定时器等功能模块,广泛应用于各种电子设备和控制系统中。
本实验报告将介绍单片机的基本原理以及其在实际应用中的实验。
二、单片机的基本原理单片机的核心是微处理器,它负责执行程序指令。
单片机的存储器包括程序存储器(Program Memory)和数据存储器(Data Memory)。
程序存储器用于存储程序指令,数据存储器用于存储数据和中间结果。
单片机通过输入输出接口与外部设备进行通信,通过定时器来控制程序的执行时间。
三、单片机的应用实验1. LED闪烁实验LED闪烁实验是单片机入门实验的经典案例。
通过控制单片机的输出口,周期性地改变LED的状态,从而实现LED的闪烁效果。
这个实验可以帮助初学者了解单片机编程的基本概念和操作。
2. 温度测量实验温度测量实验可以通过连接温度传感器和单片机的输入口,实时地获取环境温度,并通过数码管或LCD显示器来显示温度数值。
这个实验可以帮助学生掌握单片机输入输出口的使用方法,以及模拟信号的处理和显示。
3. 蜂鸣器控制实验蜂鸣器控制实验可以通过连接蜂鸣器和单片机的输出口,实现对蜂鸣器的控制。
通过编写程序,可以使蜂鸣器发出不同的声音,如单调的蜂鸣声、警报声等。
这个实验可以帮助学生学习单片机的数字输出和PWM(脉冲宽度调制)技术。
4. 电机控制实验电机控制实验可以通过连接电机和单片机的输出口,实现对电机的控制。
通过编写程序,可以控制电机的转动方向和速度。
这个实验可以帮助学生理解单片机输出口的电流和电压特性,以及电机的控制原理。
5. 红外遥控实验红外遥控实验可以通过连接红外接收器和单片机的输入口,实现对红外遥控信号的解码和处理。
通过编写程序,可以实现对各种红外遥控器的解码和按键处理。
这个实验可以帮助学生学习单片机输入口的中断处理和红外通信原理。
单片机原理及应用实验报告
单⽚机原理及应⽤实验报告单⽚机原理及应⽤实验报告⼀、选题意义 (2)⼆、单⽚机AT89C52结构介绍 (2)三、实验内容 (3)四、实验步骤 (3)五、在uvision环境下软件程序设计 (4)六、Proteus仿真 (6)七、实验器件 (9)⼋、焊接电路实物图 (10)九、实验⼼得 (10)⼀、选题意义1.熟悉使⽤AT89C52单⽚机进⾏系统设计;2.通过对单⽚机⼯作原理的深⼊理解,运⽤所学知识解决实际问题;3.通过实际系统的设计,加深对单⽚机的微计算机系统设计的理解和掌握。
⼆、单⽚机AT89C52结构介绍AT89C52是⼀个低功耗,⾼性能CMOS 8位单⽚机,⽚内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采⽤ATMEL公司的⾼密度、⾮易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,256×8bit内部RAM,低功耗空闲和省电模式,32个双向I/O⼝,3个16位可编程定时/计数器,全双⼯UART串⾏中断⼝线,2个外部中断源。
图2-2是AT89C52引脚图。
图2-2 A T89C52引脚图三、实验内容本实验利⽤单⽚机的计数器原理,通过采⽤protuas仿真软件来模拟实现。
利⽤AT89C52单⽚机芯⽚实现计数功能(0~10)并显⽰当前计数值,还能够实现秒表的启动/暂停,复位功能。
四、实验步骤1、先确定好设计的内容,⽤protuas设计电路图。
2、编写代码,编译并调试正确。
将⽣成的.hex⽂件加载到单⽚机中,运⾏电路并调试使电路功能正确。
3、设计完成后,制作计数器实物,并使得运⾏正确。
五、在uvision环境下软件程序设计#include#define uchar unsigned char#define uint unsigned intsbit K1 = P3^7;uchar i, Second_Counts, Key_Flag_Idx;bit Key_State;char DSY_CODE[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // delayvoid DelayMS(uint time){while(time--){uchar t;for(t=0;t<120;t++);}}// handle button events ,处理按键事件void Key_Event_Handle(){if(Key_State == 0) //Trigger key function when key pressed{Key_Flag_Idx = (Key_Flag_Idx + 1) % 3;switch(Key_Flag_Idx){case 1: EA = 1;ET0 = 1; TR0 = 1; break;case 2: EA = 0;ET0 = 0; TR0 = 0; break;case 0: P0 = 0x3f; P2 = 0x3f;i = 0;Second_Counts = 0;}}}// main ,主程序void main(){P0 = 0x3f; //initial state of LED 显⽰00P2 = 0x3f;i = 0;Second_Counts = 0;Key_Flag_Idx = 0; //times of the press (Firstr, second, third respectively stand for different meanings)按键次数Key_State = 1; // 按键状态TMOD = 0x01; //T0 work in mode 1 定时器0⽅式1TH0 = (65536 - 50000) / 256; //Set 50ms timer 定时器0:50msTL0 = (65536 - 50000) % 256;while(1){if(Key_State != K1) //Key is pressed or released{DelayMS(10);Key_State = K1; //update key stateKey_Event_Handle();}}}// T0 interrupt functionvoid DSY_Refresh() interrupt 1{TH0 = (65536 - 50000) / 256; //恢复定时器0初值TL0 = (65536 - 50000) % 256; if(++i == 2) //100ms //50ms*2=0.1s转换状态{i = 0;Second_Counts++;P0 = DSY_CODE[Second_Counts / 10];P2 = DSY_CODE[Second_Counts % 10];if(Second_Counts == 100)Second_Counts = 0; //满100(10s)后显⽰00 }}六、Proteus仿真1、初始值2、按下第⼀次按钮,记时截图3、按下第⼆次按钮,计数器停⽌4、按下第三次按钮,数值清零初始七、实验器件⼋、焊接电路实物图九、实验⼼得通过这次试验,让我对单⽚机有了新的认识。
单片机原理与应用实验报告——温度测量显示及设定
单片机原理与应用实验报告——温度测量显示及设定实验目的:掌握单片机温度测量的原理和方法,了解温度传感器的工作原理,学会通过单片机控制显示屏显示温度,并可以通过按键设定温度。
实验器材:1.单片机(如STC89C52)2.温度传感器(如DS18B20)3.电阻、电容等基本元件4.1602液晶显示屏5.按键开关6.杜邦线、面包板等实验原理:1.单片机温度测量原理:单片机温度测量原理主要是通过温度传感器将温度转化为电压信号,然后单片机通过模拟口接收信号并进行数字转换得到温度数值。
2.温度传感器工作原理:温度传感器内部有一个温度敏感元件,它能根据温度的变化产生相应的电压信号,然后通过数字转换将电压信号转化为数值。
3.单片机与1602显示屏的连接:将1602显示屏的数据线接到单片机的IO口,通过控制IO口输出不同的信号来控制1602的显示。
实验步骤:1.连接电路:将单片机、温度传感器、1602显示屏等元件连接在一起,确保电路正确连接。
2.编写程序:编写单片机程序,根据单片机型号和编程软件的不同,具体编写方式可能会有所不同,但主要目的是通过单片机读取温度传感器的值,并将其转化为温度,最后通过1602显示屏显示温度。
3.调试程序:4.实验数据:在实验过程中需要记录下实验数据,包括温度传感器的电压值、转化的温度值等。
5.结果分析:根据实验数据和实验结果进行分析,对实验结果进行分析和总结。
实验总结:通过本次实验,我掌握了单片机温度测量的原理和方法,了解了温度传感器的工作原理,并成功通过单片机控制1602显示屏显示温度。
通过实验,我体会到了实验设计和实验过程中的困难和挑战,但我也学到了很多知识和技能,提高了实验能力和动手能力。
在今后的学习和工作中,我会继续努力,不断学习和探索,提高自己的实验能力和创新能力。
单片机原理及应用实验报告
ET0=1;
TR0=1;
while (1)
{
ScanKey0( );
keyscan( ); //按键扫描
time_pro( ); //时间处理
display( ); //显示时间
}
}
实验结果:
数码管可以显示时钟的时分秒,按下按键1,可以在时钟的时分秒为切换,按下按键2,可以在选择的任意位+1,从而实现时间的修改。
实验接线图:
实验程序:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xf8,0x80,0x90};
loop:
Dsplay();
goto loop;
}
void Dsplay() //动态扫描显示
{uchar i;
for(i=0,P1=0x01;i<6;i++)
{ P0=cDsCode[mDS[i]];//输出段
Delayms(2);
P1=P1<<1; //选通下一位
}
P1=0x00; //关闭位选通
实验五:存储器系统设计
实验目的:掌握存储器工作原理及特点。通过该实验让学生掌握单片机存储器系统的硬件设计,存储器在系统中的地址分配,地址总线、数据总线与控制总线的连接。
实验内容:1.在实验板上将一片6264RAM芯片设计成8K的外部数据存储器,地址为0000H—1FFFH。
《单片机原理及应用》实验报告
《单片机原理及应用》实验报告一、实验目的本次实验旨在深入理解单片机的工作原理,掌握其基本的编程和应用方法,通过实际操作提高我们对单片机系统的设计和调试能力。
二、实验设备1、计算机一台2、单片机开发板一套3、下载线一根4、相关软件,如 Keil C51 等三、实验原理单片机是一种集成在一个芯片上的微型计算机,它包含了中央处理器(CPU)、存储器(ROM、RAM)、输入输出接口(I/O 口)等基本组件。
通过编写程序,可以控制单片机的各个引脚输出高低电平,实现对外部设备的控制和数据采集。
单片机的工作原理是基于时钟信号,按照程序指令的顺序依次执行操作。
程序通常使用 C 语言或汇编语言编写,经过编译后下载到单片机的存储器中,由单片机的 CPU 读取并执行。
四、实验内容1、点亮单个 LED 灯首先,我们将单片机的一个 I/O 口与一个 LED 灯相连。
通过编写程序,设置该 I/O 口输出高电平,使 LED 灯点亮;输出低电平,使 LED 灯熄灭。
程序代码如下:```cinclude <reg51h> //包含 51 单片机的头文件void main(){P1_0 = 1; //设置 P10 口为高电平,点亮 LED 灯while(1);//无限循环,保持 LED 灯常亮}```2、流水灯实验在这个实验中,我们使用多个 LED 灯,通过依次控制每个 LED 灯的点亮和熄灭,实现流水灯的效果。
程序代码如下:```cinclude <reg51h>void delay(unsigned int i) //延时函数{unsigned int j, k;for (j = 0; j < i; j++)for (k = 0; k < 125; k++);}void main(){unsigned char led ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//定义 LED 灯的控制码unsigned char i;while (1){for (i = 0; i < 8; i++){P1 = ledi; //依次输出控制码,点亮相应的 LED 灯delay(500);//延时一段时间}}}```3、按键控制 LED 灯我们将一个按键连接到单片机的一个I/O 口,通过检测按键的状态,控制 LED 灯的亮灭。
单片机原理及应用实验报告
单片机原理及应用实验报告实验课程:单片机原理及应用实验项目:单片机控制LED灯亮灭专业班级:学号:姓名:实验日期:实验一单片机控制LED灯实验.一、实验目的1、进一步掌握Keil的使用,熟悉单片机C语言编程。
2、学习I/O口的使用方法。
二、实验原理发光二级管是半导体二极管的一种,可以把电能转化为光能,常简写为LED。
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
只要加在发光二极管两端的电压超过它的导通电压(一般为1.7V-1.9V)它就会导通,而当流过它的电流超过一定电流时(一般2-3mA)它就会发光。
LED常用在MCS-51单片机中指示单片机的某个开关量的状态。
对单片机的控制,其实就是对I/O口(单片机引脚)的控制。
单片机共四个端口,P0、P1、P2、P3;每个端口分别有8个引脚P0.0-P0.7、P1.0-P1.7、P2.0-P2.7、P3.0-P3.7;这32个引脚既可以作输出脚,又可以作输入脚。
作输出脚时,单片机可以控制指示灯、数码管、电机等外部器件;作输入脚时,可以“感受”按键、开关、传感器等外部器件(例如接收数据-此就是作为输入脚的),单片机的每个引脚都是可以分开控制的,即独立的给高或者低电平。
想要点亮一个小灯,首先要将小灯与单片机的一个I/O 口连接好,然后将此引脚给高或者低电平,接着这个小灯就可以按照你给的电平实现点亮或熄灭了。
三、硬件电路设计LED模块排线接口如图3-1所示。
依据实验原理,只要将所需控制的LED 对应排线引脚连接到单片机一个I/O口即可。
1、连接方法:JP11(P2)和JP1和LED灯的JP1用8PIN排线连接起来。
2、硬件说明:使用单片机的P2口来驱动8个LED,发光二极管的阳极接高电平,故P2口为低电平时,就可以驱动其点亮。
四、软件设计1.单灯D3闪烁#include<reg51.h>void delay(void) //延时程序{unsigned int i;for(i=0;i<20000;i++);}void main(void){while(1){}2、双4只 LED 灯(D1、D3、D5、D7 与D2、D4、D6、D8)交替闪烁#include<reg51.h> P2=0xfb; //灯亮delay(); //延时P2=0xff; //灯灭 delay(); //延时 }#define uint unsigned int#define uchar unsigned charvoid delay();void main(){while(1)}void delay() //延时程序{}3、8只LED灯(D1、D2、D3、D4、D5、D6、D7、D8)流水灯显示 #include<reg51.h>void delay(void){unsigned char i,j;for(i=0;i<250;i++) } for(j=0;j<250;j++); uint x,y; for(x=100;x>0;x--) for(y=600;y>0;y--); { } P2=0xaa; //1010 1010 delay(); P2=0x55; //0101 0101 delay();void main(){while(1)} { P2=0xfe; delay(); P2=0xfd; delay(); P2=0xfb; delay(); P2=0xf7; delay(); P2=0xef; delay(); P2=0xdf; delay(); P2=0xbf; delay(); P2=0x7f; delay(); }三、实验结果分析:刚开始不是很熟悉,无法按照老师所讲的进行试验,反复操作后,完成了试验。
单片机原理与应用实验报告
单片机原理与应用实验报告摘要:本实验报告主要介绍了单片机的原理及其在实际应用中的一些常用实验。
首先简要介绍了单片机的基本原理和工作方式,然后详细说明了几个单片机应用实验,包括LED灯控制、数码管显示和温度测量等。
通过这些实验的学习和实践,我们更好地理解了单片机的原理和应用。
1.引言单片机是一种完整系统集成在一个芯片上的微型计算机,具有存储器、时钟、输入输出接口以及运算器等功能。
随着科技的不断发展,单片机在各个领域得到了广泛的应用,例如家电控制、通信、仪器设备等。
本实验主要通过一系列实验来深入理解单片机的原理和应用。
2.单片机基本原理单片机是由微处理器、存储器、I/O接口和时钟电路组成的,其工作原理如下:首先,根据程序存储器中的指令,将指令送到控制器中进行译码和执行;然后,通过数据总线将数据从存储器中读取到寄存器中进行运算;最后,将结果通过I/O接口送出。
3.实验一:LED灯控制实验目的:通过控制单片机的I/O接口,控制LED灯的亮灭。
实验原理:单片机的I/O接口是与外部设备进行数据交流和控制的重要通道。
通过控制I/O接口的高低电平,可以实现对外部设备的控制。
本实验中,我们通过控制I/O接口的高低电平,实现了对LED灯的亮灭控制。
实验步骤:1)连接电路:将LED灯的一端连接到单片机的I/O口,另一端接地。
2)编写程序:使用C语言编写程序,设置相应的I/O口为输出并控制其高低电平。
4)调试程序:通过观察LED灯的亮灭情况,调试程序,确保LED灯的控制正确。
4.实验二:数码管显示实验目的:通过控制单片机的I/O接口,实现对数码管的数字显示。
实验原理:数码管由多个LED灯组成,通过控制不同的LED灯亮灭,可以实现对数字的显示。
本实验中,我们通过控制单片机的I/O接口,将相应的LED灯控制为亮或灭,从而实现数字的显示。
实验步骤:1)连接电路:将数码管的共阴极连接到单片机的I/O口,并用电源提供共阳极的电源。
单片机原理及应用实验的实验总结
单片机原理及应用实验的实验总结实验一:单片机基本原理•实验目的:了解单片机的基本原理•实验内容:–学习单片机的基本结构和工作原理–掌握单片机的基本操作指令•实验步骤:1.搭建实验电路,连接单片机与开发板2.下载并安装开发环境3.编写简单的程序,使用LED等外设进行实验4.烧录程序到单片机,观察实验结果•实验结果:通过实验,我们对单片机的基本原理有了初步了解,能够进行简单的实验操作。
实验二:单片机应用实验•实验目的:掌握单片机的应用实验方法•实验内容:–学习使用单片机控制各种外设–实现对按键、数码管、继电器等设备的控制•实验步骤:1.搭建实验电路,连接单片机与相应的外设2.编写相应的控制程序3.烧录程序到单片机,观察实验结果•实验结果:通过实验,我们能够灵活运用单片机控制各种外设,实现各种应用实验。
实验三:单片机通信实验•实验目的:学习单片机的通信原理与方法•实验内容:–学习串口通信、SPI通信等通信方式–实现单片机与计算机、其他外设的通信•实验步骤:1.搭建实验电路,连接单片机与计算机或其他外设2.编写相应的通信程序3.烧录程序到单片机,观察实验结果•实验结果:通过实验,我们掌握了单片机的多种通信方式,并能够实现单片机与计算机、其他外设的通信。
实验四:单片机应用开发•实验目的:学习单片机应用开发的方法与技巧•实验内容:–学习使用开发板、传感器等进行应用开发–实现具体的单片机应用程序•实验步骤:1.选择合适的开发板和传感器2.编写相应的应用开发程序3.烧录程序到单片机,观察实验结果•实验结果:通过实验,我们能够独立进行单片机应用开发,并实现具体的应用功能。
实验总结通过以上实验,我们对单片机的原理和应用有了全面的了解。
通过实际操作,我们掌握了单片机的基本操作指令、各种外设的控制方法、通信方式以及应用开发的技巧。
这些都为我们今后在单片机项目中的应用打下了坚实的基础。
同时,通过实验,我们培养了动手能力、团队协作精神和解决问题的能力。
单片机原理及应用实验报告
单片机原理及应用实验报告单片机是一种集成了微处理器核心、存储器、输入输出接口和时钟电路等基本功能于一芯片上的微型计算机系统。
它具有体积小、功耗低、性能强大、易于编程等特点,广泛应用于电子产品中。
本文将介绍单片机的原理及应用,并通过实验来验证其功能。
一、单片机的原理单片机的主要组成部分包括:1.CPU(中央处理器):负责执行指令、控制程序运行和数据处理等任务。
2.存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存放程序指令和数据。
3.输入输出接口:负责与外部设备进行信息交换,包括数字输入输出口、模拟输入输出口和通信接口等。
4.时钟电路:提供时钟信号,用于控制指令的执行速度和计算机的工作节奏。
5.系统总线:用于连接CPU、存储器和输入输出接口等组件,实现数据传输和控制信号的传递。
单片机的工作原理如下:1.时钟信号通过时钟电路提供给CPU,指令从程序存储器中读取,经过解码后执行相应的操作。
2.CPU根据指令给出的地址从存储器中读取数据并进行运算,运算结果存放在数据存储器中。
3.输入输出接口负责将输入设备的信号转换为数字信号输入到CPU,将CPU的输出信号转换为合适的形式输出给外部设备。
4.单片机通过系统总线进行内部各组件的协调与控制,实现数据传输、地址传递和控制信号的传递。
二、单片机的应用单片机具有广泛的应用领域,包括电子产品、工业控制、通信系统、汽车电子、医疗仪器等。
下面以LED灯控制实验为例进行应用介绍。
1.实验目的:通过控制单片机的输出口控制LED灯的亮灭。
2.实验原理:单片机的输出口可以输出高电平(5V)和低电平(0V),通过控制输出口的电平来控制LED灯的亮灭。
3.实验器材:单片机开发板、面包板、LED灯、电阻等。
4.实验步骤:(1)将单片机开发板连接到电脑上,并用编程软件编写控制LED灯亮灭的程序。
(2)将LED灯的正极连接到单片机的输出口,负极接地。
(4)通过程序控制单片机的输出口电平,实现LED灯的亮灭。
单片机原理及其应用实验报告
程序:
C语言程序
#include <AT89X52.H> //89S52 寄存器定义头文件
void delay(unsigned char n)
{ unsigned char i,j,k;
当P0.1和P0.0的状态为01时,8路LED从左至右流水点亮,具体循环顺序为:
L8L7L6L5L4L3L2L1L8,如此重复循环;
当P0.1和P0.0的状态为10时,8路LED交替闪烁,具体循环顺序为:L1、L3、L5、L7L2、L4、
L6、L8L1、L3、L5、L7,如此重复循环下去;
当P0.0和P0.1的状态为11时,8路LED一起闪烁,具体循环顺序为:全灭全亮全灭,如此重复下去。
DJNZ R2,$
DJNZ R1,D2
DJNZ R0,D1
RET
END
实验现象:
可以看到在没有中断的时候,8路LED从右至左流水点亮,当外部中断脉冲到来以后8路LED全部点亮一段时间,之后恢复流水点亮状态。
(2)实验内容:
定时器实验,8路LED所表示的二进制数每定时0.5s增1。
有关说明:
实验箱单片机使用的晶振频率为11.0592MHz,在计算定时器初值的时候要注意。在汇编语言中,数据长度只支持到8位,因此在用定时器定时的时候要注意到这一点。
ET0=1; //开定时器中断0
TR0=1; //开启定时器0并开始工作
while(1); //等待中断
}
/*---定时器0中断服务函数---*/
void time0() interrupt 1
单片机原理及应用实验报告1
单片机原理及应用实验报告1单片机原理及应用实验报告1摘要:本实验通过对单片机的原理及应用进行探究,掌握单片机的工作原理和基本应用。
实验中使用Keil C编译器和STC89C52单片机开发板进行编程和实验。
实验结果表明,单片机具有功能强大、用途广泛的特点,能够应用于各种实际场景中。
一、引言单片机是一种集成电路芯片,其内部包含了存储器、时钟、输入输出端口以及中央处理器等功能模块,具有自主控制能力。
单片机被广泛应用于各种电子设备和系统中,例如家电控制、工业自动化、智能交通等领域。
本实验旨在通过对单片机原理及应用的学习与实验,深入了解单片机的工作原理和基本应用,并利用所学知识完成一系列实际操作和程序设计。
二、实验目的1.了解单片机的基本原理和架构;2.掌握单片机的基本编程方法和语法规则;3.实践掌握单片机的IO端口操作、模拟量输入输出等基本应用。
三、实验内容1.学习单片机的工作原理和基本构成;2.熟悉Keil C编译器的使用方法和环境配置;3.利用Keil C编写简单的程序,实现单片机的IO端口操作;4.学习模拟量输入输出的基本概念和实现方法;5.设计并实现一个简单的单片机应用程序。
四、实验仪器和设备1.STC89C52单片机开发板;2.计算机;3.Keil C编译器。
五、实验原理单片机是由CPU、存储器、输入输出接口以及系统总线等构成的嵌入式微处理器系统。
在本实验中,我们使用的是STC89C52单片机,其主要特点如下:1.CPU部分:采用8051内核,具有5个通用寄存器、2个堆栈指针、1个程序计数器等;2.存储器部分:具有8KBROM和256B的RAM;3.输入输出部分:具有32个IO口、3个定时器、1个串口等;4.中断部分:具有6个中断源和2个中断请求端。
六、实验步骤1.学习Keil C编译器的使用方法和环境配置;2.熟悉STC89C52单片机开发板的引脚分布和接口规范;3.编写一个简单的程序,实现单片机的IO端口初始化和输入输出操作;4.验证程序功能的正确性,观察LED灯的亮灭情况;5.学习模拟量输入输出的基本概念和实现方法;6.设计并实现一个简单的单片机应用程序,例如温度检测、灯光控制等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用》实验报告2017/2018 学年第1 学期系别计算机学院专业软件工程班级17软件工程班姓名XXXXXX学号8888888888授课老师******实验一:流水灯实验1.实验目的(1)学习编译和仿真环境使用(2)学习P3口的使用方法(3)学习延时子程序的编写2实验内容(1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口;(2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯时间。
3.实验运行结果图4.源代码//流水灯实验#include<reg51.h> //包含单片机寄存器的头文件sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机//的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的操作/****************************************函数功能:延时一段时间*****************************************/void delay(void){unsigned char i,j;for(i=0;i<255i++)for(j=0;j<255j++); //利用循环等待若干机器周期,从而延时一段时间 }/*****************************************函数功能:主函数******************************************/void main(void){while(1){x=0xfe; //第一个灯亮delay(); //调用延时函数x=0xfd; //第二个灯亮delay(); //调用延时函数x=0xfb; //第三个灯亮delay(); //调用延时函数x=0xf7; //第四个灯亮delay(); //调用延时函数x=0xef; //第五个灯亮delay(); //调用延时函数x=0xdf; //第六个灯亮delay(); //调用延时函数x=0xbf; //第七个灯亮delay(); //调用延时函数x=0x7f; //第八个灯亮delay(); //调用延时函数}}实验二:中断实验1.实验目的(1)熟悉51单片机中断初始化编程方法。
(2)掌握51单片机外部中断源的设计使用。
(3)中断处理应用程序的设计与调试技巧。
2.实验内容通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。
3.实验运行结果图4.源代码/用外中断0的中断方式进行数据采集和处理#include<reg51.h> //包含51单片机寄存器定义的头文件sbit S=P3^2; //将S位定义为P3.2,/*******************************************函数功能:主函数******************************************/void main(void){EA=1; //开放总中断EX0=1; //允许使用外中断IT0=1; //选择负跳变来触发外中断P1=0xff;while(1); //无限循环,防止程序跑飞}/**************************************************************函数功能:外中断T0的中断服务程序**************************************************************/void int0(void) interrupt 0 using 0 //外中断0的中断编号为0{P1=~P1; //每产生一次中断请求,P1取反一次。
}//用外中断0的中断方式进行数据采集和处理#include<reg51.h> //包含51单片机寄存器定义的头文件#define uchar unsigned charvoid Delay(unsigned int i){uchar j;for(;i>0;i--)for(j=0;j<125;j++){;}}//sbit S=P3^2; //将S位定义为P3.2,/*******************************************函数功能:主函数******************************************/void main(void){uchar display[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned int a;while(1){EA=1; //开放总中断EX0=1; //允许使用外中断EX1=1;IT0=1; //选择负跳变来触发外中断IT1=1;IP=0;for(a=0;a<9;a++){Delay(500);P1=display[a];}}}/**************************************************************函数功能:外中断T0的中断服务程序**************************************************************/ void int0_isr(void) interrupt 0 using 1 //外中断0的中断编号为1 {uchar n;for(n=0;n<10;n++){p1=0x0f;Delay(500);P1=0xf0;Delay(500);}}void int1_isr (void) interrupt 2 using 2{uchar n;for(n=0;n<10;n++){p1=0xff;Delay(500);P1=0;Delay(500);}}实验三:定时器/计数器实验1.实验目的(1)熟悉51单片机中断初始化编程方法(2)熟悉51单片机定时计数器的初始化编程方法(3)掌握定时计数器的应用2.实验内容通过使用定时器T0的中断来控制P2.0引脚的的LED的灯闪烁,要求闪烁时间2S,既亮1 S,灭1 S。
3.实验运行结果图M1M2ABCDX1CRYSTALC11uFXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R1330RR2330RM1M2VCCC233PC333PR310kD1LED-YELLOWD2LED-YELLOW4.源代码#include<reg51.h> // 包含51单片机寄存器定义的头文件sbit D1=P1^4; //将D1位定义为P1.4引脚unsigned char Countor; //设置全局变量,储存定时器T0中断次数/************************************************************** 函数功能:主函数**************************************************************/ void main(void)EA=1; //开总中断ET0=1; //定时器T0中断允许TMOD=0x01; //使用定时器T0的模式2TH0=(65536-15536)/256; //定时器T0的高8位赋初值TL0=(65536-15536)%256; //定时器T0的高8位赋初值TR0=1; //启动定时器T0Countor=0; //从0开始累计中断次数while(1)//无限循环等待中断;}/**************************************************************函数功能:定时器T0的中断服务程序**************************************************************/void Time0(void) interrupt 1 using 0 //"interrupt"声明函数为中断服务函数//其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器{Countor++; //中断次数自加1if(Countor==20) //若累计满20次,即计时满1s{D1=~D1; //按位取反操作,将P2.0引脚输出电平取反Countor=0; //将Countor清0,重新从0开始计数}TH0=(65536-15536)/256; //定时器T0的高8位重新赋初值TL0=(65536-15536)%256; //定时器T0的高8位重新赋初值}实验四:串行口实验1.实验目的(1)掌握单片机的串行口的工作原理(2)掌握单片机串行口收发数据的方法2.实验内容本实验要求单片机U1通过其串行口TXD向单片机U2发送数据。
单片机U1的P1口接8个开关,U2的P1口接8个发光二极管。
U1设置为只能发送不能接收,U1读入P1口的8个开关状态后,通过串行口发送到U2,U2将接收到的数据送入P1口,由P1口上连接的8个发光二极管显示8个开关的状态。
3.实验运行结果图4.源代码/*********发送单片机的发送程序***********/#include<reg51.h> //包含寄存器的头文件/*********向PC发送一个字节数据**************/void Send(unsigned char date){SBUF=date;while(TI==0);TI=0;}/*********延时约150ms*********/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*******函数功能:主函数*********/void main(void){unsigned char temp;TMOD=0x20; //定时器T1工作于方式2SCON=0x40; //串口工作方式1PCON=0x00; //波特率9600TH1=0xfd; //根据规定给定时器T1赋初值TL1=0xfd; //根据规定给定时器T1赋初值TR1=1; //启动定时器T1P1=0xff; //读取P1端口数据while(1){temp=P1;Send(temp); //发送数据idelay(); //50ms发送一次检测数据}}/**********接收单片机的接收程序***********/#include<reg51.h> //包含单片机寄存器的头文件/**接收一个字节数据******/unsigned char Receive(void){unsigned char date;while(RI==0) ; //只要接收中断标志位RI没有被置“1” //等待,直至接收完毕(RI=1)RI=0; //为了接收下一帧数据,需将RI清0date=SBUF; //将接收缓冲器中的数据存于dat return date;}/*****主函数*******/void main(void){TMOD=0x20; //定时器T1工作于方式2SCON=0x50; //SCON=0101 0000B,串口工作方式1,REN=1 PCON=0x00; //PCON=0000 0000B,波特率9600TH1=0xfd; //根据规定给定时器T1赋初值TL1=0xfd; //根据规定给定时器T1赋初值TR1=1; //启动定时器T1REN=1; //允许接收while(1){P1=Receive(); //将接收到的数据送P1口显示}}实验五:输入接口实验1.实验目的(1)掌握共阴极、共阳极LED的使用方法(2)掌握矩阵键盘输入扫描和识别程序编写2.实验内容设计一个4X4的矩阵键盘,键盘的号码0~15,要求编写出一个键盘输入扫描程序,要求单片机能根据键盘排列顺序,能将按下去键盘号正确识别出来,并采用两个数码管分别键盘号码的个位和十位。