单片机实验报告二 单片机IO口实验
单片机原理与应用 实验二 IO口的使用实验
1.实验二单片机输入及输出实验(1)实验要求1)由于实验学时很少,请提前预习和思考实验内容,将流程图及程序准备好,到实验室进行调试和验证。
2)由于实验室计算机C盘和D盘被保护,所以开始实验前在计算机E盘建立自己的文件夹,文件夹最好为英文名称。
实验中及时保存自己的源文件。
3)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮,每个发光二极管点亮时间为1秒;仔细思考,画出程序流程图;编写程序并写清注释;4)P2.0、P2.1作输入口接两个拨动开关,P1作输出口,接八个发光二极管,编写程序读取开关状态,根据此状态,改变八个发光二极管的点亮方式(至少两种)。
编程时应注意P2.0、P2.1作为输入口时应先置1,才能正确读入值。
仔细思考,画出程序流程图;编写程序并写清注释;5)考虑使用定时器完成需要的延时,可以采用查询或是中断的方式。
首先根据延时时间确定定时器的工作方式(13位、16位还是8位),然后据此计算出定时器初值,最后确定选择使用T0还是T1,并设置相应特殊功能寄存器(TMOD、TCON)。
可根据课件中的例子进行修改。
(2)实验目的1)学习单片机的I/O口的使用方法;2)学习延时子程序的编写和使用;3)学习分支指令的使用;4)学习使用定时器完成延时的方法。
(3)实验电路及连线连线连接孔1 连接孔21 P1.0 L02 P1.1 L13 P1.2 L24 P1.3 L35 P1.4 L46 P1.5 L57 P1.6 L68 P1.7 L79 P2.0 S010 P2.1 S1(4)实验说明1)对于MCS51MCU,P2口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P2口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
2)8051延时子程序的延时计算问题,需要考虑系统晶振和延时时长,对于较长的延时需要采用多重循环的方式得到。
如实验要求发光二极管点亮1秒,请参考课件上延时50ms的例子进行修改。
2单片机IO口控制实验实验报告
单片机复位后,锁存器自动被置1;
一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;
P0口能驱动8个TTL负载。
7、P1口的结构及特点:
⑴ P1口结构与运作
一个数据输出锁存器,用于输出数据的锁存;
两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;
15、中断控制:
a、中断允许寄存器IE
CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址为A8H,可位寻址。格式如下:
IE对中断的开放和关闭为两级控制
总的开关中断控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。
(2)编写程序,用P1.0~P1.2口连LED ,用按键开关KEY1作为外部中断输入INT0控制LED的亮和灭。(每按一次按键LED状态取反一次)。
四、protel电原理图
1、
2、
五、程序流程图
1、
Y N
2、
主程序流程图
中断程序流程图
六、程序清单
1、
ORG 8000H ;硬件仿真程序
LJMP Main
数据输出驱动电路,由场效应管VT和片内上拉电阻R组成。
⑵ P1口的特点
P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。作为输出口时,不需要再在片外拉接上拉电阻;
P1口读引脚输入时,必须先向锁存器写入1,其原理与P0口相同;
P1口能驱动4个TTL负载。
8、P2口结构及特点:
⑴ P2口结构与运作
单片机io口实验[单片机IO口控制实验实验报告]
单片机io口实验[单片机IO口控制实验实验报告]一、实验目的1、熟悉MCS-51的I/O结构;2、掌握MCS-51I/O的使用方法;3、掌握MCS-51的中断机制。
二、实验原理1、MCS-51单片机的硬件结构片内结构:2、内部数据存储器:3、SFR的名称及其分布:4、I/O端口地址:5、P0P3端口功能总结:P0P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MU某以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MU某P0口的MU某的一个输入端为“地址/数据〞信号。
P2口的MU某勺一个输入信号为“地址〞信号。
在4个口中只有P0口是一个真正的双向口,P1P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此。
P0口的输出缓冲器应为三态门。
P0口中输出三态门是两只场效应管组成,所以是一个真正的双向口。
P1P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的一准双向口。
P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
6、P0口结构及特点:⑴P0口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MU某它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两只场效应管组成的输出驱动电路。
⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。
单片机实验报告_简单I/O端口扩展
单片机原理与接口技术实验
实验二简单I/O端口扩展实验(1)
系别:通信工程系
专业:通信工程系11级
学号:
姓名:
实验时间:2014年3月13日
撰写日期:2014年m月n日
实验二简单I/O端口扩展实验(1)
一、实验目的
1、学习单片机扩展简单I/O端口的方法;
2、掌握通过总线输入/输出的编程方法;
3、掌握扩展总线接口芯片的地址分配方法。
二、实验内容(与本次实验报告标题括号中的数字对应)
1、先将8个开关量(K1~K8)从74244的输入端口读入,再把开关量的状态通过74273实时显示在发光二极管上。
【基础,周二/四下午每人做】
三、实验设计思路
通过中间变量,将244的内容传到273输出。
四、电路原理图及接线说明
74273接片选CS1,74244接片选CS2;开关状态接到244的输入;273的输出接到LED灯。
五、实验流程图
运行程序,拨动开关,LED
七、总结
此次实验一步到位。
附录:实验源程序以压缩包提供整个项目文件例如: s03_lab02_1a.rar。
单片机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);}}四、实验总结。
单片机原理及应用实验二报告
单片机原理及应用实验二报告实验二:单片机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的亮灭。
i0口输入输出实验报告
竭诚为您提供优质文档/双击可除i0口输入输出实验报告篇一:实验二I-o口输入、输出实验报告单片机实验报告2姓名学号时间地点实验题目I/o口输入、输出实验一、实验目的1.学习I/o口的使用方法。
2.学习延时子程序、查表程序的编写和使用。
二、实验仪器和设备pc机、wAVe软件、仿真器+仿真头、实验板、电源等。
三、实验说明本实验1通过单片机的I/o口控制LeD的亮灭,从而观察I/o口的输出。
实验2通过单片机的I/o口接受按键动作信息,然后通过LeD和数码管指示。
通过本实验学生可以掌握单片机I/o口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。
要求预先编写好程序并通过伟福仿真软件调试。
四、实验内容1、p0口做输出口,接八只LeD,编写程序,使LeD循环点亮,间隔0.5秒。
2、p1.0--p1.7作输入口接拨动开关s0--s7;p0.0--p0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(0—7)显示在LeD数码管上。
编程时应注意p1作为输入口时应先置1,才能正确读入值。
五、实验电路连线p0.0----LeD0p1.0-----s0p0.1----LeD1p1.1-----s1p 0.2----LeD2p1.2-----s2p0.3----LeD3p1.3------s3p 0.4----LeD4p1.4------s4p0.5----LeD5p1.5------s5 p0.6----LeD6p1.6------s7p0.7----LeD7p1.7------s8 实验1:p0口循环点灯实验2:p1、p0口输入输出agfbabcdefgh(dp)eh(dp)实验2:LeD数码管各段与I/o的连接dcp2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7六、程序框图及程序p0口循环点灯oRg0000hmoVA,#07FhLp:moVp0,ARRALcALLDeLAYLcALLDeLAYsJmpLpDeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L 1ReT;设定程序汇编起始地址;设置初始值01111111;点亮LeD0;将A里面的值循环右移一位;调用延时子程序;循环点亮LeD灯;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序p1口输入/输出oRg0000Loop:moVA,p1cJneA,0FFh,LeDsJmpLoopLeD:moVp0, AAcALLDeLAYmoVR5,#00hLoop1:RRcAJncLoop2IncR5sJmpLoo p1Loop2:moVDpTR,#TAbmoVA,R5;设定起始地址;读p1口;查询是否有按键按下;等待;有键按下,将值读入p0;调用延时子程序;置计数初值=0;输入右移1位;若cy=0,则数码显示;cy=1,则计数加1;跳回继续移位;所查表的首地址赋给DpTR;计数值做偏移量moVp1,#0FFh;p1口置1moVcA,@A+DpTRmoVp2,A;显示相应按键值sJmpLoopTAb:Db60h,0DAh,0F2h,66h;Db0b6h,0beh,0e0h,0Feh;DeLAY:moVR2,#0FAhL1:moVR3,#0FAhL2:DJnZR3,L2DJnZR2,L1ReT;0.25s的延时程序;2*250=500us;500*250*2=250000us;返回主程序七、思考题1、实验1欲改变LeD循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。
单片机IO口控制实验实验报告
单片机IO口控制实验一、实验目的1、熟悉MCS-51的I/O结构;2、掌握MCS-51 I/O的使用方法;3、掌握MCS-51的中断机制。
二、实验原理1、MCS-51单片机的硬件结构片内结构:2、内部数据存储器〔字节地址为00H~0FH〕:3、SFR的名称及其分布:4、I/O端口地址:5、P0~P3端口功能总结:〔1〕P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。
P0口的MUX的一个输入端为“地址/数据”信号。
P2口的MUX的一个输入信号为“地址”信号。
〔2〕在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此,P0口的输出缓冲器应为三态门。
P0口中输出三态门是由两只场效应管〔FET〕组成,所以是一个真正的双向口。
P1~P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的-准双向口。
〔3〕P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
6、P0口结构及特点:⑴P0口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;由两只场效应管组成的输出驱动电路。
⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
单片机io口实验[单片机IO口控制实验实验报告范文]
单片机io口实验[单片机IO口控制实验实验报告范文]一、实验目的1、熟悉MCS-51的I/O结构;2、掌握MCS-51I/O的使用方法;3、掌握MCS-51的中断机制。
二、实验原理1、MCS-51单片机的硬件结构片内结构:2、内部数据存储器:3、SFR的名称及其分布:4、I/O端口地址:5、P0P3端口功能总结:P0P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MU某以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MU某P0口的MU某的一个输入端为“地址/数据”信号。
P2口的MU某勺一个输入信号为“地址”信号。
在4个口中只有P0口是一个真正的双向口,P1P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此。
P0口的输出缓冲器应为三态门。
P0口中输出三态门是两只场效应管组成,所以是一个真正的双向口。
P1P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的一准双向口。
P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
6、P0口结构及特点:⑴P0口结构与运作1个输出锁存器,用于进行输出数据的锁存;2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;1个多路开关MU某它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;两只场效应管组成的输出驱动电路。
⑵P0口的特点P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,于引脚上需要外接上拉电阻,端口不存在高阻状态,此时P0口只是一个准双向口;为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;单片机复位后,锁存器自动被置1;一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;P0口能驱动8个TTL负载。
单片机io口控制实验报告
单片机io口控制实验报告单片机实验报告实验名称:I/O 口控制姓名:张昊学号:110404247 班级:通信 2 班时间:20__.11.19南京理工大学紫金学院电光系一、实验目的1、学习 I/O 口的使用。
2、学习延时子程序的编写和使用。
3、掌握单片机编程器的使用和芯片烧写方法。
二、实验原理1、广告流水灯实验(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 口广告流水灯实验原理图如下程序设计流程:流程图如下2、模拟开关实验(1)监视开关 K1(接在 P3.0 端口上),用发光二极管 L1(接在单片机P1.0 端口上)显示开关状态,如果开关合上,L1 亮,开关打开,L1 熄火。
(2)系统板上硬件连线:把“单片机系统”A2 区的 P1.0 端口用导线连接到 D1 区的 LED1 端口上;把“单片机系统”A2 区的P3.0 端口用导线连接到 D1 区的 KEY1 端口上;实验原理图如下图程序设计流程否是二、实验内容1、流水灯#include<reg51.h> sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7;unsigned char count=0; bit flag; void main { 开始开关闭合否 L1 灭 L1 亮P1=0_ff; TMOD=0_01; TH0=55536/256; TL0=55536%256;EA=1; ET0=1; TR0=1; while(1) { p10=0; while(flag==0);flag=0; p10=1;p11=0; while(flag==0); flag=0; p11=1;p12=0; while(flag==0); flag=0; p12=1;p13=0; while(flag==0);flag=0; p13=1;p14=0; while(flag==0); flag=0; p14=1;p15=0; while(flag==0); flag=0; p15=1;p16=0; while(flag==0);flag=0; p16=1;p17=0; while(flag==0); flag=0; p17=1; } } void t0_srv interrupt 1 { TH0=55536/256; TL0=55536%256; count++; if(count==10) { flag=1;count=0; } } 2、模拟开关#include<reg51.h> sbit p30=P3^0; sbit p10=P1^0; void main {while(1) { if(p30==0)p10=0; elsep10=1; } }三、小结与体会通过本次实验学会了 I/O 口的使用,学会了延时子程序的编写和使用以及掌握了单片机编程器的使用和芯片烧写方法。
单片机实验报告二 单片机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。
单片机实验报告2
《单片机应用系统设计》实验报告院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员:评定成绩:审阅教师:硬件实验一I/O口输入/输出及控制实验Ⅰ、I/O口输入/输出实验一、实验目的1、学习单片机I/O口的使用方法2、学习延时子程序的编写和使用二、实验内容1、I/O口输出:P1口做输出口,接八只发光二极管,编写程序让发光二极管循环点亮。
2、I/O口输入/输出:P1.0、P1.1做输入口接两个拨动开关;P1.2、P1.3做输出口,接两个发光二极管。
编写程序读取开关状态,将此状态在发光二极管上显示出来。
编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
三、实验步骤1、I/O口输出硬件连接连线连接孔1 连接孔21 P1.0 L02 P1.1 L13 P1.2 L24 P1.3 L35 P1.4 L46 P1.5 L57 P1.6 L68 P1.7 L7MCS51的P1口循环点灯2、I/O口输入/输出硬件连接连线连接孔1 连接孔21 K4 P1.02 K5 P1.13 P1.2 L44 P1.3 L5MCS51的P1口输入/输出3、实验说明(1)对于MCS51,P1口是准双向口。
它作为输出口时与一般的双向口使用方法想同;但准双向口用作输入口时,因其结构特点必须对它置“1”,否则读入的数据容易产生错误。
(2)8051延时子程序的延时计算问题,对于程序DELAY:MOV R6, #0HMOV R7, #0HDELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAYLOOPRET查指令表可知MOV和DJNZ指令均需两个指令周期,在12MHz晶振时,一个机器周期时间为:12/12MHZ=1ms,该延时子程序延时:(256X255+2)X2X1us=130ms。
4、分别连接硬件并执行相关程序,记录结果。
四、提高要求修改I/O口输出程序,先1、3、5、7灯亮,延时后2、4、6、8灯亮,交替点亮。
实验二 8051单片机IO口输出操作实验
实验二8051单片机I/O口输出操作实验一实验目的:通过实验了解和学习8051单片机I/O口作为输出方式使用时,CPU对I/O口的操作方法。
二实验原理:8051单片机有4个8位的并行口,记作P0、P1、P2和P3,共32根I/O线。
每个口主要由四部分组成:端口锁存器、输入缓冲器、输出驱动器和引至芯片外的端口引脚。
它们都是双向通道,每一条I/O线都能独立地用作输入或输出。
作为输出口用时,内部带锁存器,故可以直接和外设相连,不必加锁存器。
这四个接口特性上的差别主要是P0、P2和P3都还有第二功能,而P1口只能用作I/O 口。
三实验内容:实验中P1.0脚上连一个发光二极管和一个限流电阻。
端口送低电位时,发光二极管点亮,送高电位时,发光二极管熄灭。
编写程序控制发光二极管,使之每隔大约0.5秒钟点亮一次。
四实验电路图:图2-1五实验方法:1.根据如上电路图连接好实验电路。
在实验板中将P1.0的管脚和LED的管脚相连。
也可以照这个电路图用实验面包板自己搭一个电路,VCC用直流5V,也可以用三节碱性电池串联。
2.按照实验要求编写实验程序,建立新工程,保存为OUTPUT。
图2-23.调试程序,根据调试结果,调整软件延时的时间。
图2-34.图2-2是软件编译成功的窗口;图2-3是软件仿真窗口,可以拉开外设菜单观察P1口状态。
5.将keilC51产生的output.hex文件通过在线下载ISP或商用编程器写入芯片中,将芯片插入实验板(如果是在线下载就可以省略这步,因为芯片就在实验板上),复位后运行程序观察结果。
六参考程序:1.汇编源程序ORG 0000HSTART: SETB P1.0 ;P1.0口置位ACALL DLAY ;调用延时子程序DLY0.5S CLR P1.0 ;P1.0口清位ACALL DLAYSJMP START ;程序循环执行DLAY: MOV R0,#0FFH ;延时子程序,延时约0.5S D1: MOV R1,#0FFHD2: MOV R2,#6HDJNZ R2,$DJNZ R1,D2DJNZ R0,D1RETEND2.C语言源程序/*************************************************** 文件名: output.c* 描述: P1口输出,点亮发光二极管**************************************************/#include <reg51.h>sbit LED=P1^0; //引脚定义void main(void){int i;while(1){LED=1;for(i=0;i<=30000;i++); //空循环延时LED=0;for(i=0;i<=30000;i++);}}思考题:观察汇编语言和C语言控制单片机的过程,有哪些相同和不同的地方。
实验2 单片机IO口实验
实验2 单片机IO口实验一、实验要求实现LED跑马灯程序。
二、实验目的1、学习使用uVision编写程序;2、掌握IO读写方法;3、了解LED驱动方法三、实验内容1、实验步骤启动PC机,打开uVision2软件。
将下面的程序编译通过,并下载到51单片机开发板上,观察LED状态:#include<reg52.h> //包含头文件,一般情况不需要改动,sbit LED0=P1^0;// 用sbit 关键字定义LED到P1.0端口,void main (void){unsigned int a,b; //定义变量while(1){for(b=0;b<10;b++)for(a=0; a<3000; a++); //延时LED0=0;for(b=0;b<10;b++)for(a=0; a<3000; a++); //延时LED0=1;}}2、修改上面的代码,实现LED0,亮1s,灭2秒,亮3秒,灭4秒,亮5秒,灭6秒,重复此过程。
#include<reg52.h> //包含头文件,一般情况不需要改动,sbit LED0=P1^0;// 用sbit 关键字定义 LED到P1.0端口,void delay(void){unsigned int a,b; //定义变量for(b=0;b<10;b++){for(a=0;a<28000;a++); //延时}}void time(int flag){int i;for( i=0;i<flag;i++)delay();}void main (void){int flag=0;while(1){LED0=0;time(1);LED0=1;time(2);LED0=0;time(3);LED0=1;time(4);LED0=0;time(5);LED0=1;time(6);四、实验总结实验主要考察了用程序操控单片机实现对灯的操控。
单片机实验-IO口的输入输出实验
实验二I/O口输入、输出实验一、实验目的1. 学习I/O口的使用方法。
2. 学习延时子程序、查表程序的编写和使用。
二、参考程序框图三、程序设计1、P0口循环点亮程序ORG 0030HSTART : MOV P2,#00H; //消影MOV A ,#01H; //LOOP : MOV P2 ,A; //点亮一个led灯ACALL DELAY; //延时500msRL A; //左移一位AJMP LOOP; //跳转循环DELAY : MOV R7,#10; //延时程序DE1 : MOV R6,#200;DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RETEND2、I/O口输入输出(方法一)ORG 0000H;START : MOV P2,#00H; //初始化MOV P0,#00H;MOV P1,#0FFH; //p1口初始化给ffh值MOV DPTR,#TABLE; //表地址存入DPTRMOV 50H,#0FEH; //比较初值载入地址50hL0 :MOV A,P1; //按键消抖CJNE A,#0FFH,L1;AJMP L0;L1 :MOV A,P1;CJNE A,#0FFH,LL1;AJMP L0;LL1 :CJNE A,50H,LL2; //是否与地址50h中数据相等MOV P0,A; //相等输出对应led灯MOV A,#00H;MOVC A,@A+DPTR;MOV P2,A; //输出表格数据到数码管LCALL DELAY; //延时LJMP START; //返回程序开头LL2 :XCH A,50H; //交换数据RL A; //左移XCH A,50H; //再次交换,此时地址50h中数据左移一位INC DPTR; //表格数据地址加一LJMP LL1; //返回继续比较DELAY : MOV R7,#01H; //延时程序DE1 : MOV R6,#28H;DE2 : MOV R5,#5AH;DJNZ R5,$;DJNZ R7,DE1;RETTABLE : ;//DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据END程序二(方法二)ORG 0000HMOV P2,#00H; //I./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是否按下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或者3.3V。
单片机IO口实验
微机原理实验报告实验名称:单片机IO口控制实验姓名:学号:座位号:指导教师:实验原理:MCS-51单片机的内部结构:Mcs-51单片机的内部结构图如上所示,而且IO口作为单片机的重要组成部分,是连接单片机与外部设备的桥梁。
单片机IO口双列直插封装的管脚图:并行IO接口及其应用:MCS-5系列单片机内部有4个8位的并行I/O接口i,分别命名为P0,P1,P2和P3。
每个并行I/O接口的各位均可作为输入或者输出。
由于他们都属于地址号可被8整除的特殊功能寄存器,故可以通过位寻址或者直接寻址方式对其进行按位或字节型的I/O操作。
印象位地址或字节地址表:PO口的结构及其功能:(1)1个输出锁存器,用于进行输出数据的锁存;(2)2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;(3)1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;(4)由两只场效应管组成的输出驱动电路。
(5)除具有与P1口相同的功能外,在系统扩展时作为低8位地址与数据分时复用总线,既此时P0为地址/数据分时复用端口。
低8位由ALE信号的下跳沿锁存到外部地址锁存器中,而高8位地址由P2口输出。
P0口的特点:(1)P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;(2)具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口;(3)为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;(4)单片机复位后,锁存器自动被置1;(5)一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;(5)P0口能驱动8个TTL负载。
P1口的结构及其功能:(1)一个数据输出锁存器,用于输出数据的锁存;(2)两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;(3)数据输出驱动电路,由场效应管VT和片内上拉电阻R组成P1口的特点:(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。
实验二单片机IO口的使用
实验二单片机IO口的使用实验目的:掌握单片机IO口的使用方法,了解IO口的输入输出功能。
一、实验介绍在单片机系统中,IO口是通过端口来实现与外部设备的通信。
IO口可以用来输入控制信号或者输出数据信号,是单片机与外部世界交互的重要接口。
二、实验器材与工具1.单片机开发板2.扁平灯泡3.蜂鸣器4.电阻、电容等元器件5.逻辑分析仪三、实验步骤1.简单的IO口输出实验将一个扁平灯泡连接到单片机的一个IO口上,并将该IO口配置为输出模式。
实验中,可以通过控制该IO口的高低电平来控制灯泡的亮灭。
2.IO口输入实验将一个开关连接到单片机的一个IO口上,并将该IO口配置为输入模式。
实验中,可以读取该IO口的电平状态,来判断开关的状态。
3.组合实验将多个扁平灯泡和开关连接到单片机的IO口上,并通过控制和读取IO口的电平状态来实现各种功能。
可以实现灯泡的闪烁、扁平灯泡的亮度调节、蜂鸣器的控制等功能。
四、实验原理1.IO口模式设置单片机内部有寄存器用于控制IO口的工作模式。
通过设置相应的寄存器来将指定的IO口配置为输入或者输出模式。
2.IO口输出控制IO口的输出控制是通过操作相应的寄存器来实现的。
输出操作可以将指定的IO口设置为高电平或者低电平。
3.IO口输入读取IO口的输入读取也是通过操作相应的寄存器来实现的。
读取操作可以获取指定IO口的电平状态,以判断外部设备的状态。
五、实验总结通过这次实验,我学会了单片机IO口的配置与使用方法。
IO口是单片机与外部设备交互的重要接口,掌握了IO口的使用方法后,可以实现各种功能,如灯光控制、开关检测等。
同时,我也了解到了IO口的原理和应用场景,为以后的电子设计打下了基础。
单片机io口实验
北京信息科技大学单片机课程报告题目:I/O口实验学院:信息与通信工程学院专业:通信工程专业学生姓名:班级/学号:实验二I/O口实验一、实验目的1、通过对P0、P1 和P2口的输入输出控制,掌握MCS-51系列单片机I/O口的使用,掌握I/O口的基本功能和控制方法;2、掌握8位LED数码管的动态显示和矩阵键盘动态扫描的编程方法;3、进一步熟悉C51的集成开发环境,进一步掌握C51程序设计方法。
二、实验内容1、用P1口,选1根口线(如P1)接按键输入,另1根口线(如P0)接LED 输出,8个按键分别对应控制8个LED灯,每次按键时,LED亮、灭交替变化。
2、用P0和P2作8位LED数码管的位选和片选,用P1口作4x4矩阵键盘动态扫描端口,调试给出的实验程序,理解4x4键盘和8个LED数码管编程控制方法,编程实现按16个不同的键时分别在两个数码管上显示01至16。
3、在掌握按键识别和数码管显示方法的基础上,实现个位数的计算器功能,有能力同学可以扩展到万以内数的计算器功能。
三、实验步骤1、关闭电源,用导线分别连接P1和JP37的8个按键, 连接P0和JP32的8位单色数码管,检查无误后打开电源。
2、打开KeilC51软件,建立工程文件,编写程序并添加到工程中,编译无误后运行,检查程序结果,K1每次按键时,LED1亮、灭交替变化。
(注意检测按键时,为了去掉抖动,若检测到有键按下,延时10ms左右之后再判断一次,若仍为低电平,则确认键按下,否则不操作。
另外注意判断键是否按下为读引脚,可以先写1再读。
)3、关闭电源,用导线分别连接P0和8位数码管区的JP5作位选,连接P2和JP8作片选,连接P1和JP50做矩阵键盘输入。
从ftp://59.64.74.100/的示例程序中下载“LED显示和键盘”示例程序,编译运行程序,检查程序结果,按下K01—K0D时八个数码管显示1—G。
4、理解数码管和矩阵键盘动态扫描原理,仔细分析示例程序,编程实现按S1—S16时在两个数码管上显示01—16。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告
学生姓名:学号:专业班级:
实验类型:⃞验证⃞综合⃞设计⃞创新实验日期: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设置为仿真芯片”。
图1
2.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
图3
3.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P
4.6、P4.7所连接的
LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。
图4
4.延时程序:本实验中通过利用DJNZ减1非零转移指令来实现循环结构,利用NOP空
操作指令实现延时。
(四)实验设备
STC实验箱,PC机,Keil uVision4,STC-ISP软件
(五)实验结果
四个LED灯循环依次点亮后熄灭,闪烁时间为1 S,呈现流水形式的灯。
(六)结果讨论与心得体会
1.程序的编辑、编译与下载是单片机应用系统开发过程中不可或缺的工作流程。
Keil C集
成开发环境除程序编辑、编译功能外,还具备程序调试功能,可对单片机内部资源(包
括存储器、并行I/O端口、定时\计数器、中断系统与串行口等)进行仿真,可采用全
速运行、单步、跟踪、执行到光标或断点等程序运行模式来调试用户程序,与STC单
片机ISP下载软件。
2.CPU循环执行一段程序,通过选择指令或安排循环次数以实现软件定时。
软件定时完
全占用CPU,增加CPU开销,降低CPU的工作效率,因此软件定时的时间不宜太长。
仅适用于CPU较空闲的程序中使用。
(七)附录:实验源代码
P4 DATA 0C0H
P1M1 DATA 091H
P1M0 DATA 092H
P4M1 DATA 0b3H
P4M0 DATA 0b4H
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
LCALL GPIO
MOV R3, #200
MOV R4, #100
CLR P1.7
LCALL DELAY
SETB P1.7
CLR P1.6
LCALL DELAY
SETB P1.6
CLR P4.7
LCALL DELAY
SETB P4.7
CLR P4.6
LCALL DELAY
SETB P4.6
LJMP MAIN
GPIO:
MOV P1M0,#0
MOV P1M1,#0
MOV P4M0,#0
MOV P4M1,#0
RET
DELAY:
MOV R5,#100
DELAY1:
NOP
NOP
DJNZ R5,DELAY1
DJNZ R3,DELAY
DJNZ R4,DELAY //@12MHz
RET
END。