单片机原理与应用实验报告4
单片机原理及其应用实验报告

单片机原理及其应用实验指导书南通大学电气工程学院自动化教研室2011 年 3 月前言单片机目前已广泛应用在智能仪表、工业控制、家用电器等各个领域,成为现代电子系统的一个极其重要的组成部分,对于电类专业学生来说,掌握单片机知识,具备基本应用技能,才能符合当前社会对专业人才的要求。
单片机是一门应用性极强的课程,学生在掌握基本理论知识的基础上,更要通过实验训练,提高其调试动手能力,学会解决具体问题的思路和手段,具备初步的系统设计和调试能力。
因此,为了更好地做好单片机课程的软硬件实验,特编写本实验指导书,书中叙述了各实验的目的、要求,对于设计性实验,给出了列出了接线图、程序结构框图和清单。
学生按要求完成本实验指导书中的实验,可基本掌握MCS-51单片机的结构原理、接口技术以及程序设计技巧。
另外:一、所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学要求,选择相应实验。
二、对同一问题的解决方法往往不是唯一的,欢迎各位指导教师在使用本实验指导书的过程中提出更完善的实验方案,指出书中的错误和不足,并希望大家反馈给我们,以便及时修改。
目录第一章集成开发环境简介 (1)第二章演示程序 (9)第三章实验项目 (15)实验一仿真环境熟悉,清零、拆字程序设计 (15)实验二内部、外部RAM数据传送程序设计 (17)实验三单片机I/O口实验 (18)实验四A/D、D/A转换实验 (20)实验五并行接口扩展实验 (24)第一章 集成开发环境简介Super ICES-51 80C51单片机实验仪使用当前流行的Keil C51开发软件,采用uVision2集成开发环境。
1.1 Keil C51简介Keil C51软件是德国Keil 公司开发的功能完善的C51开发软件,近年来在国内得到了迅速普及。
Keil 包括以下几个部分:uVision2 IDE 、C51编译器、A51汇编器、LIB 库管理器、BL51连接器/定位器、uVision 硬件调试器、RTX51实时多任务操作系统。
单片机原理与应用实验报告

单片机原理与应用实验报告单片机是一种集成电路,可以在内部集成处理器、内存、输入/输出接口和时钟等多种功能,同时也可以通过编程实现各种应用。
单片机已经广泛应用于工业控制、家电控制、汽车电子、医疗设备等领域。
本实验旨在深入探究单片机的原理和应用,通过实验来加深对单片机的理解和认识。
实验原理单片机由CPU、存储器、I/O接口和时钟四个部分组成。
其中,CPU是单片机最核心的部分,它负责处理各种指令。
存储器包括ROM和RAM,ROM用于存储程序和常量数据,而RAM用于存储变量数据。
I/O接口用于连接外部设备,如传感器、执行器等,时钟用于提供CPU的时钟信号。
实验器材本实验采用的单片机为AT89S52,其主要特点包括:1. 8位CPU,运行频率为12MHz;2. 8KB Flash存储器,可存储程序和常量数据;3. 256字节RAM存储器,用于存储变量数据;4. 32个I/O口,可连接外部设备;5. 两个定时器/计数器,可用于计时和计数;6. 串口通信接口,可用于与PC机通信。
实验内容本实验共包括四个部分,分别是LED闪烁、数码管显示、按键输入和串口通信。
下面分别介绍每个部分的实验内容。
1. LED闪烁LED闪烁是单片机应用中最基本的实验之一。
本实验采用的是P0口控制LED的亮灭。
具体步骤如下:(1)设置P0口为输出口;(2)每隔一定时间,将P0口的值翻转一次,即可实现LED的闪烁。
2. 数码管显示数码管显示是单片机应用中比较常见的实验之一。
本实验采用的是P2口控制数码管的显示。
具体步骤如下:(1)设置P2口为输出口;(2)编写程序将要显示的数值转换成相应的数码管编码;(3)将编码输出到P2口,即可实现数码管的显示。
3. 按键输入按键输入是单片机应用中比较常见的实验之一。
本实验采用的是P3口控制按键输入。
具体步骤如下:(1)设置P3口为输入口;(2)编写程序检测P3口的状态,判断是否有按键按下;(3)如果有按键按下,则执行相应的操作。
单片机原理及应用实验报告

《单片机原理及应用》实验报告姓名:学号:班级:应用物理指导教师:日期:实验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只低电平驱动的发光二极管组成。
单片机原理与应用实验报告

单片机原理实验报告实验一计数显示[目的]熟悉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学时)

delay(10); //延时一小段时间
ZX=0xff; //
数码管消影
ZX=table[buffer[1]]; //显示ASCII的十位
ZW=table2[1];
delay(10);
ZX=0xff;
ZX=table[buffer[2]]; //显示ASCII值的个位
num++;
if(num==10) //定时1S时间到
{Hale Waihona Puke num=0;i++;
if(i==10) i=0; //数码管反复扫描
SBUF=~Table[i]; //取反,送数码管显示数字
}
}
实验四(二) 单片机与PC机串行通信实验(2学时)
一、实验目的
⑴掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。
0x49,0x41,0x1F,0x01,0x09}; //共阳数码管字段
void main()
{ TMOD=0x01; //定时器T0方式1
TH0=(65536-50000)/256;//定时器赋初值,定时100ms,(12MHz晶振)
TL0=(65536-50000)%256;
EA=1; //总中断打开
湖北民族学院科技学院
信息工程学院
单片机原理实验报告
实验名称:单片机串口应用
专业班级
学号
姓名
指导教师
实验四(一) 串并转换实验(2学时)
一、实验目的
⑴掌握8031串行口方式0工作方式及编程方法。
⑵掌握利用串行口扩展并行I/O通道的方法。
二、实验内容
(1)在实验箱上完成:
单片机原理及其应用实验报告

用导线将实验箱中的P1.0~P1.7分别与LED发光二极管L1~L8相连。INT0
与负脉冲相连(硬件在实验箱的具体位置可以参照文档最后面的附图)。
程序:
C语言程序
# include<regx51.h>
unsigned char STATE;
unsigned char s0;
/*---延时子程序(有参函数),t=n*10ms---*/
/*---定时器0中断程序---*/
ET0P:DEC A ;A减1
MOV TH0,#4CH
MOV TL0,#00H
RETI
END
实验现象:
可以看到用P1口所接的8路LED表示的二进制数每隔0.5s加1。
P1=P1<<1;
if(P0_1!=0|P0_0!=0)
break;
}
}
if(P0_1==0&P0_0==1)
{
P1=0x80;
for(i=1;i<=8;i++)
{delay(100);
P1=P1>>1;
if(P0_1!=0|P0_0!=1)
break;
}
}
if(P0_1==1&P0_0==0)
{
P1=0x01;
END
实验现象:
可以看到LED1大致亮1s后灭1s,如此循环。
(2)实验内容:
I/O口做输入口,一个I/O口接一个拨动开关,另一个I/O口接一个LED发光二极管,单片机读取开关的状态并通过LED显示出来。
有关说明:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口。
对端口写“1”可作为高阻抗输入端用。
北京信息科技大学单片机原理与应用实验4实验报告

实验报告课程名称单片机原理与应用实验项目串行通信指导教师学院信息与通信工程 _ 专业电子信息工程班级/学号学生姓名实验日期成绩______________________一、实验目的1、掌握串行口编程控制方法;2、掌握串口调试和仿真器的烧写方法;3、综合应用定时器、串行接口及中断等。
二、实验内容1、编写一个程序, 利用单片机的串行口向PC机循环发送0x55。
三、编写一个程序, 每当串行口接收到PC机发送的0x55(ASCII码为字母U)时, 返回一个0x41(ASCII码为字母A)。
在PC机一端, 以接收窗口收到0x41为完成(可以循环此过程)。
四、PC机向单片机发送0—9(无需编程, 在DPFlash的串口调试软件下配置即可), 单片机在接收到数据后送数码管显示;同时, 单片机每隔0.5S向PC机发送a—z的ASCII码(0x61~0x7a, 每秒发2个), 在PC机的串口调试软件中显示结果。
五、实验步骤1、新建工程, 编写程序, 实现通过串行口向PC机发送0x55(可采用串口模式1, 波特率2400), 注意工程的环境变量设置, Target窗口下code和xdata memory设置为空, 无须加入startup.A51, Output窗口下选中CreateHex选项, 编译生成HEX文件。
2、阅读网上的实验指导书及下面的说明, 掌握DPFlash软件的使用, 掌握仿真器的两种工作方式使用。
仿真器拨到load方式, 打开DPFlash软件,文件菜单中选择装载, 加入编译生成的*.HEX文件, 点击编程按扭, 使用默认配置即可, 烧入仿真器的Flash中。
3、关闭电源, 将仿真器拨到run方式, 并将连接在仿真器上的PC串口通信电缆拔下, 然后与实验仪上的单片机串口相连。
开机复位后将自动运行单片机程序, 在PC机的DPflash软件中的串口调试器下观察结果。
编写程序实现单片机接收到PC机发来的0x55后回送0x41,在串口调试软件的处理字符串中发送0x55,可以选中下栏的自动发送单选框来实现每隔1S发送一次, 观察结果。
单片机原理及应用的实验报告

单片机原理及应用的实验报告1. 引言在现代电子领域中,单片机技术的应用越来越广泛。
单片机(Microcontroller)是一种集成电路芯片,具有完整的处理器系统和外围设备。
它拥有小巧、灵活和强大的特点,适用于各种嵌入式系统的设计和应用。
本实验报告旨在介绍单片机的原理及其在实际项目中的应用。
2. 单片机的原理单片机是一种嵌入式微处理器,通常由中央处理器(CPU)、存储器、输入输出接口(I/O)、定时器、串行通信接口等部分组成。
其原理如下:•中央处理器(CPU):单片机的核心部件,负责执行各种指令和算术逻辑运算。
•存储器:包括随机存储器(RAM)和只读存储器(ROM),用于存储程序和数据。
•输入输出接口(I/O):用于与外部设备进行数据交互,如控制LED 灯、读取传感器数据等。
•定时器:用于产生精确的时间延时和定时触发操作。
•串行通信接口:用于和其他设备进行串行数据通信。
3. 单片机的应用单片机具有广泛的应用领域,下面列举了几个常见的应用实例:1.家电控制系统:使用单片机可以实现对家电设备的智能控制,如空调温度控制、灯光调节等。
2.汽车电子系统:单片机在汽车电子控制单元(ECU)中,用于控制发动机、变速器、制动系统等。
3.工业自动化:单片机可以应用于工业自动控制系统,如生产线上的自动化控制、温度监控等。
4.电子游戏机:单片机在电子游戏机中用于处理游戏逻辑和玩家输入。
5.智能穿戴设备:使用单片机可以实现智能手表、智能眼镜等穿戴设备的功能。
4. 单片机实验为了更好地理解单片机的原理和应用,我们进行了以下实验:4.1 LED闪烁实验这个实验旨在通过编程控制单片机,使LED灯以一定的频率闪烁。
实验步骤: 1. 连接单片机和LED灯,将LED的正极连接到单片机的IO口,负极连接到接地。
2. 编写程序,配置IO口为输出模式,并设置IO口的高低电平来控制LED的亮灭。
3. 将程序下载到单片机,运行程序。
4. 观察LED是否按照预期频率闪烁。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:年月日实验室:嵌入式实验室实验台:Embest Edukit-III平台_ 指导教师:侯刚老师成绩:实验四:数码管的显示实验一、实验目的和要求题目:数码管的显示实验实验目的1. 学习单片机的基本接口技术。
2. 学习74HC595、74HC138使用及数码显示管的控制方法。
实验要求实现数码管的循环显示控制。
二、实验原理和内容用汇编语言设计程序,完成8个数码管的显示控制。
程序启动后,8 个数码管依次显示1 1 2 1 23 1 2 34 1 2 3 45 1 2 3 4 56 1 2 3 4 5 67 1 2 3 45 6 7 8;当8 个数码管全亮时,进行循环移位显示1 2 3 4 56 7 8 2 3 4 5 6 7 8 1 3 4 5 6 7 8 1 2 ……三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。
编程:DS_595 EQU P0.5 ;串行数据输入SHCP_595 EQU P0.4 ;移位寄存器时钟输入STCP_595 EQU P0.3 ;存储寄存器时钟输入HC138_A EQU P0.0 ;输入管脚HC138_B EQU P0.1HC138_C EQU P0.2ORG 0000HAJMP LED;移位寄存器接收数据WR595: MOV R4,#08HWR_LOOP: RLC AMOV DS_595,CSETB SHCP_595 ;上升沿发生移位CLR SHCP_595DJNZ R4,WR_LOOPRET;存储寄存器输出数据OUT595: CLR STCP_595SETB STCP_595 ;上升沿将数据送到存储寄存器NOPNOPCLR STCP_595RET/******延时******/DELAY: MOV R6,#150DEL1: MOV R7,#50DJNZ R7,$DJNZ R6,DEL1RETDISPLAY: MOV A,R0 ;查表取显示数据MOV DPTR,#TABMOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYRETMOV R5,#10LED:MOV R3,#1MOV R0,#00HMOV R1,#00HLED1:ACALL DISPLAYDJNZ R3,LED1DJNZ R5,LEDMOV R5,#10LED2_1: MOV R0,#00HMOV R1,#00HMOV R3,#2LED2:ACALL DISPLAYINC R0INC R1DJNZ R3,LED2MOV R5,#10 LED3_1: MOV R0,#00HMOV R1,#00HMOV R3,#3LED3:ACALL DISPLAYINC R0INC R1DJNZ R3,LED3DJNZ R5,LED3_1MOV R5,#10 LED4_1: MOV R0,#00HMOV R1,#00HMOV R3,#4LED4:ACALL DISPLAYINC R0INC R1DJNZ R3,LED4DJNZ R5,LED4_1MOV R5,#10 LED5_1: MOV R0,#00HMOV R1,#00HMOV R3,#5LED5:ACALL DISPLAYINC R0INC R1DJNZ R3,LED5MOV R5,#10 LED6_1: MOV R0,#00HMOV R1,#00HMOV R3,#6LED6:ACALL DISPLAYINC R0INC R1DJNZ R3,LED6DJNZ R5,LED6_1MOV R5,#10 LED7_1: MOV R0,#00HMOV R1,#00HMOV R3,#7LED7:ACALL DISPLAYINC R0INC R1DJNZ R3,LED7DJNZ R5,LED7_1LOOP: MOV R5,#10 LED8_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED8:ACALL DISPLAYINC R0INC R1DJNZ R3,LED8DJNZ R5,LED8_1;LED循环显示MOV R5,#10 LED9_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED9: MOV A,R0MOV DPTR,#TAB1MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED9DJNZ R5,LED9_1MOV R5,#10 LED10_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED10: MOV A,R0MOV DPTR,#TAB2MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED10DJNZ R5,LED10_1MOV R5,#10LED11_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED11: MOV A,R0MOV DPTR,#TAB3MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED11DJNZ R5,LED11_1MOV R5,#10LED12_1: MOV R0,#00HMOV R1,#00HLED12: MOV A,R0MOV DPTR,#TAB4MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED12DJNZ R5,LED12_1MOV R5,#10LED13_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED13: MOV A,R0MOV DPTR,#TAB5MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED13DJNZ R5,LED13_1MOV R5,#10MOV R1,#00HMOV R3,#8LED14: MOV A,R0MOV DPTR,#TAB6MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED14DJNZ R5,LED14_1MOV R5,#10LED15_1: MOV R0,#00HMOV R1,#00HMOV R3,#8LED15: MOV A,R0MOV DPTR,#TAB7MOVC A,@A+DPTRACALL WR595ACALL OUT595MOV A,R1MOV P0,AACALL DELAYINC R0INC R1DJNZ R3,LED15DJNZ R5,LED15_1AJMP LOOPTAB:DB 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7fTAB1:DB 0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x06TAB2:DB 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x06,0x5bTAB3:DB 0x66,0x6d,0x7d,0x07,0x7f,0x06,0x5b,0X4fTAB4:DB 0x6d,0x7d,0x07,0x7f,0x06,0x5b,0X4f,0x66TAB5:DB 0x7d,0x07,0x7f,0x06,0x5b,0X4f,0x66,0x6dTAB6:DB 0x07,0x7f,0x06,0x5b,0X4f,0x66,0x6d,0x7dTAB7:DB 0x7f,0x06,0x5b,0X4f,0x66,0x6d,0x7d,0x07END五、实验数据与结果分析完成8个数码管的显示控制六.讨论、建议在做实验时我们对安装烧写硬件的驱动不是很了解,进错了系统之后在同学与老师的帮助下我们顺利完成了实验,这次实验是硬件实验,这对我们以后对汇编语言的学习有很大帮助。