单片机IO开关输入输出实验报告

合集下载

2单片机IO口控制实验实验报告

2单片机IO口控制实验实验报告
16、INT0/1相关控制位:
IT0/IT1——触发方式选择位
0:低电平触发方式,-INT0/1低电平时IE0/IE1=0,
INT0/1高电平时IE0/IE1=1。
1:下降沿触发方式,检测到下降沿,则使IE0/IE1=1,CPU相应中断后自动清除IE0/IE1。
三、实验内容
(1)编写程序,用P1.0~P1.2口连LED,查询拨盘开关SW1的状态来控制LED的亮和灭(P1.7口接SW1)。
实验中也出现了一些问题,在原理图的设计上,LED缺少驱动电路,同时按键开关缺少下拉电阻,导致悬空,这些都是在以后的实验中值得注意的地方,需要改进。
(2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。为此,
P0口的输出缓冲器应为三态门。 P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。
2、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺利,实现了预期的功能,即每按一次按键S0,LED灯D0、D1、D2状态取反一次。
八、实验分析
本次实验较为简单,进行的也很顺利,实现了预期的功能。在试验过程中也加深了对I//O口和外部中断尤其是INT0的理解。
在中断实验中,进一步理解了中断服务程序的结构,即保护现场、处理中断的程序、恢复现场、中断返回。其中RETI的作用有两个,弹出PC和清除中断服务标志(给“优先级生效”触发器清零)。在编写服务中断程序时,有些地方需要注意:中断程序入口处的处理;在保护现场和恢复现场时可以关闭CPU中断,一面造成混乱。
P3口的某位不作为第二功能使用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口使用;

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

单片机实验-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。

2单片机IO口控制实验实验报告

2单片机IO口控制实验实验报告
(6)EX0:外部中断0中断允许位。
MCS-51复位后,IE清0,所有中断请求被禁止。
若使某一个中断源被允许中断,除了IE相应的位的被置“1” ,还必须使EA位=1。
改变IE的内容,可由位操作指令来实现,即:
SETB bit;
CLR bit。
b、中断优先级寄存器IP
两个中断优先级,可实现两级中断嵌套。
SETBIT0;指定INT0为边沿触发方式
SETBEX0;开放INT0中断
SETBEA;开放CPU的中断
SJMP$;等待中断
ORG8200H;INT0中断服务程序
INT0:
CPLP1.0;LED状态取反一次
CPLP1.1
CPLP1.2
RETI
;
END
七、实验记录
1、在keil环境下编辑汇编程序,且调试无差错。将程序下载到单片机后,程序运行顺利,实现了预期的功能,即随着开关S0的状态改变,LED 灯D0、D1、D2点亮或熄灭。
一个数据输出锁存器,用于输出数据的锁存;
两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;
一个多路开关MUX,它的一个输入来自锁存器的Q端,另一个输入来自内部地址的高8位;
数据输出驱动电路由非门M,场效应管VT和片内上拉电阻R组成。
⑵ P2口的特点
P2口用作高8位地址输出线应用时,与P0口输出的低8位地址一起构成16位的地址总线,可以寻址64KB地址空间。
当P2口作高8位地址输出口时,其输出锁存器原锁存的内容保持不变。
作为通用I/O口使用时,P2口为准双向口,功能与P1口一样。
P2口能驱动4个TTL负载。
9、P3口结构及特点:
⑴ P3口结构组成
一个数据输出锁存器,用于输出数据的锁存;

单片机(IO输入输出实验)

单片机(IO输入输出实验)

实验报告实验课程:单片机学生姓名:邱永洪学号:6100210026专业班级:中兴101 班2012年 11月28 日实验一 I/O 口输入、输出实验一、实验目的掌握单片机P1口、P3口的使用方法,对实验板的熟悉,如何根据实验板原理图进行连线。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区),八位逻辑电平输出电路原理图参见图1-1。

八位逻辑电平显示电路原理图参见图1-2。

五,程序为:;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.1口);; 用8位数据线连接八位逻辑电平显示模块的JD4B到CPU模块的JD8(P1口)。

;//****************************************************************** DIR BIT P3.1ORG 0000HLJMP STARTORG 0200HSTART:Output1:mov A, #0fEH ;把11111110二进制赋给A变量mov R5, #8 ;把8送到R5寄存器中loop1:CLR C ;把标志位清零mov C,DIR ;读入开关K0的值JC Output2 ;K0的状态为1则跳转到Output2mov P1, A ;从P1口输出A的值并显示在二极管上,该位为0则相应的二极管点亮rl A ;把A进行循环左移,相当于把0进行左移,由此二极管从右到左依次点亮》》》向左的跑马灯AcAll Delay ;调用延时子程序djnz R5, loop1 ;判断R5中的值是否为0,来判断是否重新置数,为0就跳到Output1,否则继续loop1Sjmp Output1Output2:mov A, #07fH ;把01111111二进制赋给A变量mov R5, #8 ;把8送到R5寄存器中loop2:CLR C ;把标志位清零mov C,DIR ;读入开关K0的值JNC Output1 ;K0的状态为0则跳转到Output1mov P1, A ;从P1口输出A的值并显示在二极管上,该位为0则相应的二极管点亮rr A ;把A进行循环右移,相当于把0进行左移,由此二极管从左到右依次点亮》》》向右的跑马灯AcAll Delay ;调用延时子程序djnz R5,loop2 ;判断R5中的值是否为0,来判断是否重新置数,为0就跳到Output2,否则继续loop2Sjmp Output2Delay: ;0减1后为-1其补码为11111111mov R6,#0 ;该延时为双重循环,总延时约为(1+1+(1+1+2)*257+2+(1+(1+1+2)*257)*256)us= 0.264456s这个值与实验现象很匹配DelayLoop1:mov R7,#0DelayLoop2:NOP ;空指令NOPdjnz R7,DelayLoop2 ;R7中值为0则跳转djnz R6,DelayLoop1 ;R6中值为0则跳转retend六、实验步骤1)系统各跳线器处在初始设置状态。

单片机原理及应用实验二报告

单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机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口输入输出实验报告

竭诚为您提供优质文档/双击可除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秒的延时程序并说明计算方法。

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口输入、输出实验

实验一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点亮,可以实现灯的左右移。

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

单片机实验报告
学院: 物电学院
专业: 电子科技与技术
班级: 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.实验结论
在运行程序后,单片机实现了用输入与输出之间高地位的转换。

相关文档
最新文档