实验一单片机开发环境以及IO使用实验
实验一 单片机开发环境以及I/O使用实验 一.实验目的
1.熟悉MCS-51系列单片机开发软件的使用
2.掌握单片机I/O口的使用
3.学习延时子程序的编写和使用
二.实验内容
1.验证性实验
(1)实验内容:
I/O口做输出口,I/O口接一个LED发光二极管,使其闪烁。
有关说明:
根据LED的单向导通性,可以用单片机的P1.0(也可以是其他I/O口)作为LED的控制端。
当P1.0输出为低电平时,LED灭,反之,LED亮。
本实验系统晶振为11.0592MHz,则一个机器周期为12/11.0592us=1.085us,为方便编写延时函数,认为一个机器周期为1us。
硬件连接:
用导线将试验箱中的P1.0与L1相连。
(硬件在实验箱的具体位置可以参照文档最后面的附图)
程序:
C语言参考程序
#include <AT89X52.H> //89S52寄存器定义头文件
/*---延时子程序(有参函数),t=n*10ms---*/
void delay(unsigned char n)
{ unsigned char i,j,k;
for(i=0;i<n;i++)
for(j=0;j<14;j++)
for(k=0;k<237;k++);
}
/*---主函数---*/
void main()
{ while(1)
{
P1_0=0; //P1.0赋值为0,LED灭
delay(100); //调用延时子程序,t=100*10ms P1_0=1; //P1.0赋值为1,LED亮
delay(100);
}
}
汇编语言参考程序
ORG 00H
AJMP START ;在首地址处放置跳转指令
;以免主程序占用中断入口地址 ORG 30H
START:CLR P1.0 ;P1.0赋值为0,LED灭
MOV R0,#100 ;R0的值决定延时时间长短 ;t=R0*10ms
LCALL DELAY ;调用延时函数
SETB P1.0 ;P1.0赋值为1,LED亮
R0,#100
MOV
LCALL DELAY ;调用延时函数
AJMP START ;无条件跳转至START,继续循环执行
/*---延时子程序,t=R0*10ms---*/
DELAY:
D1:MOV R1,#20
D2:MOV R2,#248
DJNZ R2,$
R1,D2
DJNZ
R0,D1
DJNZ
RET
END
实验现象:
可以看到LED1大致亮1s后灭1s,如此循环。
(2)实验内容:
I/O口做输入口,一个I/O口接一个拨动开关,另一个I/O口接一个LED 发光二极管,单片机读取开关的状态并通过LED显示出来。
有关说明:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口。
对端口写“1”可作为高阻抗输入端用。
硬件连接:
用导线将试验箱中的P1.0与LED发光二极管L1相连,P0.0与拨动开关K1相连。
程序:
C语言参考程序
#include <AT89X52.H> //89S52寄存器定义头文件void main()
{
while(1)
{ P0=0xff; //对端口写"1",作为高阻抗输入端用
if(P0_0) //判断P0.0是否为高电平
{P1_0=0;}
else //如果P0.0不是高电平,则执行后面的语句
{P1_0=1;}
}
}
汇编语言参考程序
ORG 00H
LJMP MAIN
ORG 30H
MAIN:JB P0.0,DEL ;识别按键是否闭合
SETB P1.0
MAIN
LJMP
DEL:CLR P1.0
LJMP MAIN
END
实验现象:
可以看到LED1的状态和开关1的状态一致。
2.设计性实验
实验内容:
模拟舞台灯光控制实验
具体要求:
具体要求为P0.0和P0.1口连接两路拨动开关,P1口连接8路LED。
不同的开光状态控制LED进行流水灯、闪烁等,从而达到模拟舞台炫耀灯光控制的目的。
当P0.1和P0.0的状态为00时,8路LED从右至左流水点亮,具体循环顺序为:L1ÆL2ÆL3ÆL4ÆL5ÆL6ÆL7ÆL8ÆL1,如此重复循环;当P0.1和P0.0的状态为01时,8路LED从左至右流水点亮,具体循环顺序为:
L8ÆL7ÆL6ÆL5ÆL4ÆL3ÆL2ÆL1ÆL8,如此重复循环;当P0.1和P0.0的状态为10时,8路LED交替闪烁,具体循环顺序为:L1、L3、L5、L7ÆL2、L4、L6、L8Æ L1、L3、L5、L7,如此重复循环下去;当P0.0和P0.1的状态为11时,8路LED一起闪烁,具体循环顺序为:全灭Æ全亮Æ全灭,如此重复下去。
硬件连接:用导线将实验箱中的P0.0与开关K1相连,P0.1与开关K2相连,P1.0~P1.7分别与LED发光二极管L1~L8相连。
三.实验要求
对于验证性实验可以根据所给的程序进行验证(C语言或汇编语言都可),按照所给要求进行硬件连接,最后观察程序运行结果。
对于设计性实验,各位同学可以结合前面两个验证性实验的程序进行扩展,最终按照要求独立完成设计性实验。
附图:实验所需硬件在实验箱的位置分布。
单片机实验 IO口的输入输出实验
实验二 I/O口输入、输出实验一、实验目的1. 学习I/O口的使用方法。
2. 学习延时子程序、查表程序的编写和使用。
二、参考程序框图三、程序设计1、P0口循环点亮程序ORG 0030HSTART : MOV P2,#00H; O口初始化MOV P1,#0FFH; //P1口赋FFH初值MOV P0,#00H;START : MOV P2,#00H; //P2清0;MOV P0,#00H; //P0清0;MOV R1 ,P1;MOV A,R1; //读P1口CJNE A,#0FFH,L1; //是否有数据输入AJMP START; //无输入则跳转,继续查询LCALL DELAY;L1 : MOV R1,P1; //消除按键抖动MOV A,R1;CJNE A, #0FFH,LL1;AJMP START;LL1 : CJNE A,#0FEH,LL2; //是否按键1输入MOV P2,#06H; //是则P2输出相应的按键号码 CPL A; //A取反MOV P0,A; //输出到P0口LCALL DELAY; //延迟AJMP LP; //跳转到LPLL2 : CJNE A,#0FDH,LL3; //是否按键2输入MOV P2,#5BH; //以下同上CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL3 : CJNE A,#0FBH,LL4; //判断按键3是否按下 MOV P2,#4FH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL4 : CJNE A,#0F7H,LL5; //判断按键4是否按下MOV P2,#66H;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL5 : CJNE A,#0EFH,LL6; //判断按键5是否按下 MOV P2,#6DH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL6 : CJNE A,#0DFH,LL7; //判断按键6是否按下 MOV P2,#7DH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL7 : CJNE A,#0BFH,LL8; //判断按键7是否按下 MOV P2,#07H;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL8 : CJNE A,#7FH,LP; //判断按键8是否按下MOV P2,#7FH;CPL A;MOV P0,A;LCALL DELAY;LP : AJMP START; //跳转回程序开头DELAY : MOV R7,#01H; //延时程序DE1 : MOV R6,#28H;DE2 : MOV R5,#5AH;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RETEND四、思考题1、LED循环方向更改:RL A; 改成 RR A;1S的延时程序: DELAY : MOV R7,#20; //延时程序DE1 : MOV R6,#200;DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RET2、提高电阻阻值3、一般为5V或者。
单片机IO开关输入输出实验报告
单片机实验报告
学院: 物电学院
专业: 电子科技与技术
班级: 2013级2班
学号: 201310530229
姓名: xxx
指导老师: xx
实验一 IO开关输入输出实验
1.实验目的
目的:学习单片机读取IO引脚状态的的方法。
2.试验环境及设备
EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
3.实验内容
ORG 0000H
LJMP MAIN
ORG 30H
MAIN: MOV P0,#0FFH
MOV A ,P0
SWAP A
MOV P0,A
NOP
SJMP MAIN
DEALY:MOV R7,#20H
D1:MOV R6,#0F0H
DJNZ R6,0
DJNZ R7,D1
RET
END
4.实验结果:
用导线将试验箱上的IO接口(I0~I8)与拨码开关输出端(K1~K8)相连,通过拨码开关来控制发光二极管。
运行程序,并使程序处于不断运行状态,开关都打开是,二极管全发光,关闭一些开关后,I0~I3上的开关开对应K4~K7的二极管灯亮,I4~I7上相对应的开光开对应K4~K7的二极管亮。
5.实验结论
在运行程序后,单片机实现了用输入与输出之间高地位的转换。
《单片机系统设计技术》实验指导
《单片机系统设计技术》实验指导书适用专业: 电气、自动化、信息等编写单位: 电气信息学院编写人: 曹 林审核人:审批人:批准时间:年月日目 录实验1 IO控制LED流水灯实验 (3)实验2 IO控制数码管动态扫描实验 (5)实验3 外部中断实验 (8)实验4 定时器应用控制实验 (10)实验5 UART实验 (12)实验6 键盘扫描输入编程 (14)实验7 UART与PC对话实验 (17)实验8 ADC数据采集实验 (19)实验1 IO控制LED流水灯实验1.实验目的1)、熟悉KEIL编程环境和调试环境。
2)、掌握单片机汇编语言和指令的用法。
3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。
2.实验设备硬件: PC 机,单片机教学实验开发平台;软件: KEIL集成开发环境、STC ISP程序下载软件。
3.实验内容使用P0口控制8个LED 进行流水灯显示。
4.实验预习要求和实验准备要求预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。
预习汇编程序编写、MCS-51指令表。
带上教科书、U盘、具备二进制和十六进制转换的科学计算器。
5.实验原理和步骤1)实验原理(1)实验原理图图1 P0口连接的8盏LED灯从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。
因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。
图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、PORT0_1……PORT0_7。
2)实验步骤(1)启动KEIL集成开发环境,按照《KEIL使用方法》中描述步骤进行工程建立、汇编源程序文件添加。
单片机实验单片机并行IO口的应用实验
LOOP2:MOVR5,#10H
DJNZR5,$;"$"当前的PC值。R5的内容减1不为零
DJNZR6,LOOP2
DJNZR7,LOOP1
RET
END
四、实验报告要求
1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、电路原理图。
5、实验结果
6、实验总结。
7、思考题。
五、思考题
1、编程实现LED0至LED7以十六进制计数规律亮灯
原理图:
程序清单:
/*(1)LED0~LED7以秒速率循环右移
蜂鸣器逐位报警*/
ORG0000H
MAIN:MOVA,#B;赋初值
DJNZR6,LOOP2
DJNZR7,LOOP1
RET
END
/*(2)LED0~LED7以十六进制计数规律亮灯*/
ORG0000H
MOVA,#0FFH
LOOP:MOVP1,A
LCALLDELAY
DECA
CJNEA,#0FFH,LOOP
MOVA,#0FFH
LJMPLOOP
DELAY:MOVR7,#0A7H
2、利用单片机并行I/O口控制蜂鸣器。
三、设计要求
1、用Prห้องสมุดไป่ตู้teus软件画出电路原理图。要求在至口
线上分别接LED0至LED7八个发光二极管,在口线上
接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。
3、编写程序:要求LED0至LED7以秒速率循环左移。
4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。
LOOP:MOVP1,A;赋值给P1口
单片机IO口控制实验
单片机IO口控制实验单片机IO口控制实验是一项基础的实验课程,它涉及到单片机的硬件接口和软件编程,是学习单片机的重要环节之一。
本文将详细介绍单片机IO口控制实验的环境搭建、实验步骤和实验结果等方面。
环境搭建1. 单片机开发板:如STC89C52,AT89C52等。
2. 软件集成开发环境:如Keil,IAR等。
3. 通信工具:USB转串口转换器,串口线等。
4. 其他相关组件:电阻、LED灯、导线等。
实验步骤1. 准备工作将单片机开发板进行电源供应,检查是否正常。
在电脑上安装Keil和STC-ISP等软件工具,安装好后打开Keil,新建一个工程。
3. 写入程序进入Keil中,选择打开工程,新建一个文件,并编写程序。
下面是一个简单的程序示例:#include <reg52.h>void delay(int i) //延时函数{while(i--);}4. 烧录程序在编写好程序后,选择编译,生成一个HEX文件。
将单片机开发板接入电脑,选择工具,打开STC-ISP软件。
选择好COM口和需要烧录的HEX文件,连接单片机开发板和电脑,点击下载。
等待下载成功后,即可将程序烧录到单片机中。
5. 实验验证实验时,可以将LED灯和几个外设连接到单片机的IO口,通过程序控制IO口的电平,达到控制LED灯、外设等的效果。
实验结果实验成功后,可以通过单片机控制LED灯的亮灭、外设的工作状态等,验证程序的正确性。
此外,实验成功还可以提高学生的动手实践能力和编程能力,为后续单片机应用开发打下基础。
结论单片机IO口控制实验是单片机学习中的重要实践环节。
通过实验,可以让学生了解单片机的硬件接口和软件编程,提高学生的实践能力和编程能力,培养学生独立思考和解决问题的能力。
io的原理及应用单片机实验
IO的原理及应用单片机实验1. IO简介IO(Input/Output)是指计算机与外界设备进行信息交互的接口。
在单片机中,IO端口是与外部设备进行数据输入和输出的重要通路。
它充当着信息传输的桥梁,实现单片机与外部设备的连接和数据的交互。
了解IO的原理及应用对于进行单片机实验和开发非常重要。
2. IO的原理IO端口主要包括输入端口和输出端口。
通过配置相应的寄存器和引脚状态,可以实现外部设备与单片机的数据输入和输出。
•输入端口:将外部设备的信号输入到单片机中。
输入端口通常和外部器件的开关量信号相连,如按钮、开关等。
•输出端口:将单片机中的数据输出给外部设备。
输出端口通常和外部器件的执行元件相连,如LED灯、马达等。
3. IO的应用IO的应用非常广泛,涵盖了很多领域。
下面以单片机实验为例,介绍IO的常见应用。
3.1 LED闪烁实验LED闪烁实验是单片机实验中最基础的实验之一。
通过控制IO口的电平,可以控制LED的亮灭。
实验步骤: 1. 连接硬件电路,将LED的正极连接到单片机的输出口,负极连接到地。
2. 在单片机的程序中配置输出端口为高电平或低电平。
3. 运行程序,观察LED的亮灭情况。
3.2 数码管显示实验数码管显示实验是单片机实验中常见的应用之一。
通过IO口的输出控制,可以实现数字的显示。
实验步骤: 1. 连接硬件电路,将数码管的引脚连接到单片机的输出端口。
2.在单片机的程序中配置输出端口的电平,根据不同的情况控制数码管的显示。
3.运行程序,观察数码管的显示结果。
3.3 温度传感器实验温度传感器实验是单片机实验中涉及到模拟信号输入的应用之一。
通过IO口的输入控制,可以获取温度传感器的模拟信号,并进行处理。
实验步骤: 1. 连接硬件电路,将温度传感器的输出引脚连接到单片机的模拟输入端口。
2. 在单片机的程序中配置输入端口为模拟转换模式,并进行相应的模拟信号转换。
3. 运行程序,获取温度传感器的模拟信号,并进行显示或者其他处理。
单片机io口实验报告
实验一以下所有KEIL工程、程序均命名为自己姓名的拼音一、实验目的:熟悉KEIL软件的开发,掌握程序下载流程二、实验环境:1.硬件:PC微机、单片机开发板2.软件:KEIL三、实验步骤:1.在KEIL中新建工程文件,在工程文件下新建C文件“姓名首字母.c”并加入到工程中(注意C语言编程时,工程中要保留STARTUP.A51汇编文件)。
2.编写程序,初始化内部数据寄存器0x40开始的100个地址单元,写入0x55,然后复制到0x60开始的存储器中,使用软件仿真的方式调试程序,观察程序模拟运行的结果:#include "reg52.h"unsigned char *p,*q;unsigned char i;int main(){p=0x40;for(i=0;i<10;i++){*p=0x55;p++;}for(i=0;i<10;i++){*p=*q;q++;p++;while(1);}}调试时,在调试界面中依次找到a) 变量观察窗口b) 存储器窗口c) 单步运行d) 全速运行程序运行结果(存储器窗口截图):3.编写程序,控制实验板上的LED灯:D1-D3点亮,D4-D7熄灭,D8点亮#include”reg52.h”sbit P1_4=P1^4;int main(){P1_4=0;P0=0x1E;While(1);}4.编写C语言程序,实现LED灯循环点亮#include "reg52.h"void delay (unsigned z){while(z--);}int main(){unsigned char i;P1&=~(0x01<<4);P0=0xff;i=0x01;while (1){P0=~i;i=i<<1;if(i==0x0)i=0x01;delay(10000);}}四、实验总结。
51单片机-IO口实验报告
《信息技术综合实践》课程实验报告
1.打开KeiluVision2应用程序,新建一个工程,将IO.c文件添加到新建的工程中(将头文件中的头文件中的regx修改为reg),在输出中选择生成相应的HEX文件并保存到相应文件夹中
2.打开KeiluVision2应用程序,新建一个工程,将IO.c文件添加到新建的工程中(将头文件中的头文件中的regx修改为reg),在输出中选择生成相应的HEX文件并保存到相应文件夹中,进行文件的编译和调试。
3.进行实验箱的连线。
4.打开下载器,擦除并将生成的HEX文件调入Flash,然后选择“自动”。
5.通过示波器观察实验现象
5.1 示波器波形图
5.1.1(i的范围是小于500,波形图如下所示)
由图可知:当不修改i的范围时,波形的频率比较高,约在150Hz左右。
5.1.2(将代码中i的范围修改为小于20000,波形图如下所示)
由图可知:将i的范围变大以后,波形的频率变低并且稳定在5Hz左右。
5.2 小灯闪烁视频
(灯亮时的图片)。
单片机开发环境及基本IO设备操作实验报告
北京XXXX学院实验报告课程:单片机原理与应用班级:XXXX 姓名:XXXX 学号:XXXXXXXX 成绩:指导教师:XXX 实验日期及时间:2017.4.4 10:00-13:00 座位号:04 必修/选修:必修实验序号:实验一实验名称:单片机开发环境及基本IO设备操作一、实验目的1.掌握单片机嵌入式开发环境的使用2.熟悉开发板硬件实验环境及资源3.掌握通用数字I/O端口的输入输出设置和应用二、实验内容与要求功能:按键控制LED灯。
利用按键key1和key2控制LED灯闪烁点亮。
Key1按下时单号灯闪烁,Key2按下时双号灯闪烁。
实验要求:1.在ICCAVR中编写程序;2.下载到实验板中进行调试;3.实验成功后进行课堂验收。
三、实验方案设计1. 实验的方案的论述和分析本次实验所需的器件:电源、ATmega16单片机、LED灯、按键开关、电阻。
把PA0配置成输出,PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
与PA4、PA5相连的是两个按键开关key1和key2。
在按键检测时,当PA0输出低电平时,读PA4、PA5引脚寄存器,若PA4引脚为低电平说明Key1被按下,若PA5引脚为低电平说明Key2被按下。
把PD口配置为输出,控制8个LED灯。
2.硬件电路原理图2.软件流程图、重要数据结构、重要控制参数设计等(1)软件流程图:(2)重要数据结构及重要控制参数设计:初始化配置:DDRA配置为0X0f,PA0为输出。
PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
按键扫描部分:通过PINA和0B00110000的按位读取PA4和PA5口是否按下。
当PA4按下时key_value==2,当PA5按下时key_value==1,并分别执行相应语句。
四、实验结果Key1按下时单号灯闪烁Key2被按下时双号灯闪烁五、实验分析及体会1.实验过程中遇到的主要问题、(拟)解决方法。
由于是第一次做单片机实验,对实验过程和代码编写不是很熟悉。
实验一 MCS-51单片机开发环境的应用
• 实验要求: • ⑴将片内数据存储器的40H~4FH的内容赋 值成00H~0FH,并将40H~4FH的内容整体 复制到片外数据存储器40H~4FH。 • ⑵将片内数据存储器的40H~4FH的内容赋 值成00H~0FH,并将两两相加之和送到片 外数据存储器2000H~2007H的数据空间中。
实验六 82பைடு நூலகம்5实验
实验七 单片机综合实验
• 实验要求: • 本实验模拟交通信号灯控制,一般情 况下正常显示,当有急救车到达时,两 个方向交通信号灯全红,以便让急救车 通过。设急救车通过路口时间为10秒。 急救车通过后,交通恢复正常。本实验 需用另一台PC机上的串口调试助手(或 超级终端)发送“1”,表示有急救车通 过。
实验四 单片机定时器实验
• 实验要求: • 用CPU内部定时器方式计时,实现每一 秒钟输出状态发生一次翻转。
实验五 单片机中断实验
• 实验要求: • ⑴用单次脉冲申请中断,在中断处理程 序中对输出信号进行翻转。 • ⑵用单次脉冲申请中断,要求程序中对 每次中断进行计数,并将计数结果显示 在发光二极管上。
实验二 MCS-51汇编语言典型算法 程序设计
• 实验要求: • ⑴将片内数据存储器的40H~4FH中杂乱无 序的数按降序排列。 • ⑵将两个ASCII码表示的数(16进制)转换 成二进制数。
实验三 单片机I/O实验
• 实验要求: • ⑴P1口作输出口,接八只发光二极管, 编写程序,使发光二极管循环点亮。 • ⑵P1.0,P1.1作为输入口接两个拨动开 关,P1.2,P1.3作输出口接两个发光二 极管,编写程序读取开关状态,将此状 态在发光二极管上显示出来。
