实验一单片机开发环境以及IO使用实验

合集下载

单片机实验 IO口的输入输出实验

单片机实验 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开关输入输出实验报告

单片机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口的应用实验

单片机实验单片机并行IO口的应用实验
LOOP1:MOVR6,#0ABH
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口控制实验是一项基础的实验课程,它涉及到单片机的硬件接口和软件编程,是学习单片机的重要环节之一。

本文将详细介绍单片机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的原理及应用单片机实验

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口实验报告

单片机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口实验报告

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设备操作实验报告

单片机开发环境及基本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单片机开发环境的应用

实验一 MCS-51单片机开发环境的应用
实验一 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作输出口接两个发光二 极管,编写程序读取开关状态,将此状 态在发光二极管上显示出来。

Freescale单片机实验指导书2【2024版】

Freescale单片机实验指导书2【2024版】

一般性实验实验一普通I/O口操作实验实验目的:1、熟悉SDIDE开发环境,熟悉GP32基本程序结构2、理解Freescale MCU的编程框架3、熟悉编程调试环境,编译、调试、下载运行第一个程序4、掌握I/O的基本编程方法范例程序:① A01_简单IO及程序框架\ FrmMain.ASM② C01_简单IO及程序框架\纯C\prgframe.prj③ C01_简单IO及程序框架\C&ASM混编\prgframe.prj实验要求:1、参看教材6.4节,熟悉实验板结构2、运行并读懂教材第7章的关于I/O口操作的LED灯控制程序3、按下列要求新建一程序:根据PB口低2位(PTB1和PTB0)的状态输出四种不同的LED显示效果,要求用最简洁的语句实现以下各效果。

(1)PTB1=0,PTB0=0时,效果为:8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。

(效果1)(2)PTB1=0,PTB0=1时,效果为:8个LED中只有两个连在一起的灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。

(效果2)(3)PTB1=1,PTB0=0时,效果为:8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约8秒。

(效果3)(4)PTB1=1,PTB0=1时,效果自定。

(效果4)实验二串行通信实验实验目的:1、理解串行通信基本原理,掌握MCU串行通信基本编程方法2、理解串行通信的查询方式和中断方式原理及其编程范例程序:1、C02_1串行通信查询方式\ H08SCI_1.prj2、C02_2串行通信中断方式\ H08SCI_2.prj3、A02_1串行通信查询方式\ SCIMain1.asm4、A02_2串行通信中断方式\ SCIMain2.asm5、以上四目录都有VB_SCI目录,该目录是对应Visual Basic6.0程序,运行在PC方,用来接收和发送数据。

IO口输入、输出实验

IO口输入、输出实验

实验一I/O口输入、输出实验2010.04.20一、实验目的:了解LED二极管的工作原理。

掌握LED二极管亮灭左右移的编程方法。

二、实验原理:八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮。

我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

表1三、实验电路原理图四、程序框图实验程序:START: MOV ACC,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,ACC ;将ACC的数据送P1口MOV R0,#7LOOP1: RL A ;将ACC中的数据左移一位MOV P1,A ;把ACC左移后的数据送p1口显示ACALL DELAY ;调用延时子程序DJNZ R0,LOOP1 ;没有移动够7次继续移动MOV R1,#7LOOP2: RR A ;将ACC中的数据右移一位MOV P1,A ;把ACC右移后的数据送p1口显示ACALL DELAYDJNZ R1,LOOP2AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果;----- 延时子程序 -----DELAY: MOV R2,#255D1: MOV R3,#255DJNZ R3,$DJNZ R2,D1RET ;延时子程序结束,返回到调用处的下一句END ;程序结束实验现象:实验实现了单一灯的左移右移。

开始时P1.0口的LED点亮,然后P1.1→P1.2→P1.3→┅→P1.7的LED依次点亮,实现了右移。

当P1.7的LED点亮后,P1.6→P1.5→P1.4→┅→P1.0口的LED又依次点亮,实现了左移。

然后循环,从而实现灯的循环左右移。

实验结论:通过单片机对P1口赋值,然后利用移位RL和RR指令使相应的LED点亮,可以实现灯的左右移。

01_实验一熟悉实验开发环境及GPIO编程-161012

01_实验一熟悉实验开发环境及GPIO编程-161012

01_实验⼀熟悉实验开发环境及GPIO编程-161012实验⼀熟悉实验开发环境及I/O编程⼀、实验⽬的(1)掌握KDS集成开发环境的使⽤⽅法。

(2)掌握开发⼯具的安装与配置。

(3)掌握程序调试⽅法(4)了解MCU最⼩系统和实验仪器的测试⽅法。

(5)熟悉MCU的第⼀个C程序框架结构。

(6)掌握GPIO⼝的编程⽅法、编写拨码开关构件驱动程序。

(7)掌握在程序框架⼯程中添加新模块的⽅法。

⼆、实验准备(1)硬件部分:PC机或笔记本电脑,⼀台;开发套件或实验箱,⼀套。

(2)软件部分:从NXP⽹站下载KDS开发环境,从苏州⼤学嵌⼊式学习社区⽹站/doc/7216eb08cec789eb172ded630b1c59eef8c79a68.html的“教学与培训”栏⽬中,下载本书的《嵌⼊式技术基础与实践(第4版)》的⽹上光盘。

(3)在认真学习教材4.1~4.5基础上,仔细阅读下⾯的实验要求,做好实验准备。

三、实验要求1.验证性实验1)KDS集成开发环境安装与使⽤根据附录A进⾏KDS集成开发环境的下载、安装,熟悉KDS集成开发环境。

2)开发⼯具的安装与配置根据附录B将光盘中的⼯具进⾏安装与设置。

3)程序的调试运⾏(1)在光盘资料中SD-KL-CD提供读者⼩灯闪烁实例ch04-Light⽂件夹中的Simple 程序主要实现PTB⼝的9号引脚连接的蓝⾊⼩灯,通过MCU控制⼩灯,亮,接着延时⼀段时间,然后灭,接着延时⼀段时间,放在主循环中,则形成闪烁的效果,通过KDS环境的调试按钮将光盘中的Simple程序下载⾄⽬标板,利⽤F6进⾏程序的跟踪运⾏,观察⽬标板上的⼩灯亮暗情况。

(2)修改main.c程序中if (mRuncount>=5)为if (mRuncount>=2),重新编译下载,请在单步调试的过程中在调试界⾯的Variables 查看mRuncount变量的变化情况。

(3)在光盘资料中SD-KL-CD提供读者⼩灯闪烁实例ch04-Light⽂件夹中的Component 程序采⽤构件化规范要求编写,把对GPIO模块的操作独⽴为⼀个驱动构件,如C语⾔中,形成gpio.h头⽂件和gpio.c源⽂件。

单片机原理实验报告

单片机原理实验报告

实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。

二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。

三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。

(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。

这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。

(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。

器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。

此时选择 SST 公司的 SST89E554RC。

(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。

选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。

(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。

Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。

保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。

(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。

此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。

在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。

单片机实验报告IO口控制

单片机实验报告IO口控制

单片机实验报告实验名称:I/O口控制实验姓名:学号:班级:实验时间:一、实验目的1、Keil C51软件的介绍,Proteus软件的应用,及结合使用。

2、学习I/O的使用;3、学习延时子程序的编写和使用;4、掌握单片机编程器使用和芯片烧写方法。

二、实验原理1.灯闪烁实验(1)在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。

(2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。

灯闪烁实验电路原理图(3)程序设计流程2.广告流水灯实验(1)做单一灯的左移右移,八个发光二极管L1~L8分别接在单片机的P1.0~P1.7接口上,输出“0”的时候,发光二极管亮,开始时P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0亮,重复循环。

(2)系统板上硬件连线:把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。

要求:P1.0对应着L1,P1.1对应L2,……,P1.7对应着L8。

P1口广告流水灯实验电路原理图(3)程序设计流程:流程图如下3.模拟开关实验(1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄火。

(2)系统板上硬件连线:把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上;把“单片机系统”A2区的P3.0端口用导线连接到D1区的KEY1端口上;模拟开关实验原理图(3)程序设计流程三、实验内容1 灯闪烁利用单片机的I/O引脚控制一发光二极管,实现闪烁效果。

(1)c语言代码#include<reg51.h>sbit P10=P1^0;void delay(){long int i;for(i=0;i<7550;i++);}void main(){while(1){P10=1;delay();P10=0;delay();}}(2)系统板上硬件连线(3)时间控制2 广告流水灯利用单片机的任一组I/O引脚控制八个发光二极管,实现广告流水灯效果(1)c语言代码#include<reg51.h>void time(){long int i;for(i=0;i<=38000;i++);}void delay(unsigned char tmp){unsigned char j;while(tmp--){j=255;while(j--);}}code unsigned char tmpled[8]={0Xfe,0Xfd,0Xfb,0Xf7,0xef,0xdf,0xbf,0x7f}; code unsigned char smpled[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void main(void){unsigned char i;while(1){for(i=0;i<8;i++){P1=tmpled[i];delay(100);}P1=0xff;time();for(i=0;i<8;i++){P1=smpled[i];delay(100);}P1=0xff;time();}}(2)系统硬件电路(3)时间控制3 模拟开关读取单片机的I/O引脚状态来控制发光二极管,引脚状态由外部开关控制。

单片机《输入输出口》实验报告

单片机《输入输出口》实验报告

实验一I/O口输入输出实验一、实验目的1. 掌握单片机的并行I/O口的接口结构、驱动能力特点和应用处理方法;2. 掌握单片机I/O引脚作为输出引脚的使用方法;3. 掌握单片机I/O口配置方法4. 掌握利用单片机I/O口设计单片机应用程序用输入控制输出的方法;5. 掌握单片机控制程序的结构。

二、实验原理及实验内容实验要求:利用单片机并行口做不规则花样流水灯,流水花样不低于16个。

实验原理:1.LED原理图2.STC15的IO口原理P6m0为0时,P6m1为0时,IO口模式为准双向口(传统8051 I/O口模式,弱上拉)灌电流可达20mA,拉电流为270微安,由于制造误差,实际为270~150微安* P6m0为0时,P6m1为1时,为推挽输出(强上拉输出,可达20mA,要加限流电阻)* P6m0为1时,P6m1为0时,(为高阻输出电流既不能流入也不能流出)P6m0为1时,P6m1为1时,为开漏(Open Drain),内部上拉电阻断开。

开漏模式即可读取外部状态也可以对外输出(高低电平)。

按照表格寄存器内容,我们对8个LED1,也就是P6口进行配置,当P6输出低电平时LED被点亮。

所以配置如下:P6M1 &= 0x00;P6M0 &= 0x00; //作为普通IO口,为弱上拉sbit KEY1=P2^0;sbit KEY2=P2^1;//定义两个按键由于STC15F2K60S2寄存器初始化时默认是:P6M1=0x00;P6M0 = 0x00;3.程序流程图主循环程序流程图三、实验程序#include <STC15.h>#include <intrins.h>#define Uchar unsigned char#define Uint unsigned intint LED[]={0xfc,0xf3,0xcf,0x3f,0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7, 0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f};void P6Init()//IO口初始化函数{P6M0=0X00;P6M1=0X00;}void delay3s(void) //误差0us{unsigned char a,b,c;for(c=189;c>0;c--)for(b=230;b>0;b--)for(a=33;a>0;a--);}void main(){Uchar i=0;P0Init();while(1){for(i=0;i<20;i++){P6=LED[i];delay3s();}}}四、实验仪器和设备4.使用了keil软件Proteus 8 Professional软件。

单片机实验IO口的输入输出实验

单片机实验IO口的输入输出实验

单片机实验IO口的输入输出实验单片机实验是一种很好的学习方式,通过对单片机的实验可以快速地提高对单片机的了解,这对于工程师来说是非常有用的。

本文将主要介绍单片机实验中的IO口的输入输出实验。

IO口是单片机上一个非常重要的部分,在单片机实验中,IO口的输入输出是一个非常常见的实验。

IO口可以接收和发送电信号,它可以连接到开关、LED灯、继电器等,可以实现很多功能。

当我们需要将一个信号输入到单片机中时,我们需要使用IO口的输入功能。

当我们需要从单片机中输出一个信号时,我们需要使用IO口的输出功能。

在单片机实验中,我们需要测试IO口的输入功能是否正常。

测试IO口的输入功能有很多方法,其中一个方法是使用开关。

我们需要将一个开关连接到单片机的某个IO口上,当开关打开时,单片机能够获取到一个高电平信号,当开关关闭时,单片机能够获取到一个低电平信号。

通过这种方法我们可以测试单片机的IO口的输入功能是否正常。

我们可以通过编写一个程序,来判断单片机是否正常地读取到开关状态。

下面是一个范例程序:上面的程序中,我们通过判断P2口的高低电平状态,来控制P0口的输出状态。

当P2口接到高电平时,P0口的输出引脚变为高电平,LED灯就会亮。

当P2口接到低电平时,P0口的输出引脚变为低电平,LED灯就会灭。

与IO口的输入实验类似,我们也可以测试IO口的输出功能。

我们可以将一个LED灯连接到单片机的某个IO口上,当我们需要将信号输出时,单片机会控制IO口的输出引脚,从而控制LED灯的亮灭。

下面是一个范例程序:四、总结IO口的输入输出实验是单片机实验中非常常见的实验。

通过这个实验,我们能够测试单片机的IO口的输入输出功能是否正常。

在实际工作中,我们也经常需要控制开关、LED 灯、继电器等,这时候就需要使用IO口来实现控制。

因此,对于工程师来说,掌握IO口的输入输出实验是非常重要的。

单片机io口控制led实验报告

单片机io口控制led实验报告

单片机io口控制led实验报告
一、实验背景
单片机是一种集成电路,它可以通过编程来控制各种电子设备。

在这个实验中,我们将学习如何使用单片机的IO口来控制LED灯。

二、实验材料
1. STC89C52RC单片机开发板
2. LED灯
3. 220欧姆电阻
4. 杜邦线
三、实验原理
单片机的IO口可以用来控制数字信号。

当IO口输出高电平时,LED 灯就会亮起来;当IO口输出低电平时,LED灯就会熄灭。

为了保护单片机和LED灯,我们需要使用一个220欧姆的电阻。

这个电阻可以限制电流流过LED灯和单片机之间的连接。

四、实验步骤
1. 将一个杜邦线连接到单片机的P
2.0引脚。

2. 将另一个杜邦线连接到单片机的GND引脚。

3. 将一个220欧姆的电阻连接到P2.0引脚和LED正极之间。

4. 将另一个杜邦线连接到LED负极。

5. 将另一个220欧姆的电阻连接到LED负极和单片机的GND引脚之间。

五、实验结果
当单片机的P2.0引脚输出高电平时,LED灯会亮起来;当P2.0引脚输出低电平时,LED灯会熄灭。

六、实验总结
这个实验展示了如何使用单片机的IO口来控制数字信号。

我们还学习了如何使用电阻来保护单片机和LED灯。

在实际应用中,我们可以使用单片机的IO口来控制各种设备,例如电机、传感器等。

这个实验是学习单片机编程的基础,对于想要深入学习嵌入式系统开发的人来说是非常重要的。

单片机实验1

单片机实验1

单片机实验1实验一、MCS51单片机基本开发环境1.实验目的:1) 熟悉软件的集成开发环境2) 掌握单片机软件设计流程3) 掌握单片机存贮器结构及各窗口之间的联系2.实验内容:1) 用三种方法实现将累加器A内容改为20H方法1--MOV A,#20H方法2—MOV R0,#20HMOV A,R0方法3—MOV R0,#20HXCH A,R02) 将58H位单元置为1,观察内部RAM中2BH内容的变化代码:SETB 2BH.0JMP $END这是关于内部存储中对单元和字节了解,不理解很容易做错.比如开始写的指令为MOV R0,#58H;MOV @R0,#1这是错误的指令。

这就需要认真去了解单片机中的字节地址与位地址的关系。

80C51中有位寻址区和字节寻址区。

题目中58H为位地址,2BH为字节地址,且58H为2B字节的最低位。

由于58H属于位寻址区,可用位操作指令SETB进行置位,SETB 2BH.0执行后,2BH中内容变为013) 如果当前状态为有进位、工作寄存器使用区2,请用3种方法设置这种状态代码:ANL PSW,#01HMOV A,PSWCJNE A,#01,LAB2LAB1:JMP LAB1LAB2: SETB PSW.4 MOV P0,#01H MOV R0,#18HCLR PSW.3 MOV C,P0.0 MOV PSW,R0MOV PSW.4,CCPL CMOV PSW.3,CEND以上LAB2写了三段代码,可分别完成题目要求。

不过实验时只是对代码进行了错误调试,没有对结果进行检验。

其中值得注意的是对于布尔(位)操作指令的用法,比如传送指令必须经累加器C,如第二段中MOV P0,#01H ; MOV C,P0.0 ,以及对于位寻址的方式(如需用到“.”隔开)的应用。

4) 编一个小程序将内部RAM中的20H单元的内容送到21H单元并调试(分组完成)代码:5) 用程序将堆栈指针指向60H,然后在堆栈中依次压入01,02,03,04,05五个数,观察哪些单元内容发生了变化,各变为多少?从哪些窗口可以发现这些变化?顺序将堆栈中的五个数放入30H~34H 五个单元中,编程实现之。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 单片机开发环境以及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语言或汇编语言都可),按照所给要求进行硬件连接,最后观察程序运行结果。

对于设计性实验,各位同学可以结合前面两个验证性实验的程序进行扩展,最终按照要求独立完成设计性实验。

附图:实验所需硬件在实验箱的位置分布。

相关文档
最新文档