单片机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口的某位不作为第二功能使用时,则自动处于通用输出/输入口功能,可作为通用输出/输入口使用;

单片机实验报告_简单I/O端口扩展

单片机实验报告_简单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。

实验二 I-O口输入、输出实验报告

实验二 I-O口输入、输出实验报告

姓名学号时间地点实验题目I/O口输入、输出实验一、实验目的1. 学习I/O口的使用方法。

2. 学习延时子程序、查表程序的编写和使用。

二、实验仪器和设备PC机、WA VE软件、仿真器+仿真头、实验板、电源等。

三、实验说明本实验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 ---- LED0 P1.0 ----- S0P0.1 ---- LED1 P1.1 ----- S1P0.2 ---- LED2 P1.2 ----- S2P0.3 ---- LED3 P1.3 ------ S3P0.4 ---- LED4 P1.4 ------ S4P0.5 ---- LED5 P1.5 ------ S5P0.6 ---- LED6 P1.6 ------ S7P0.7 ---- LED7 P1.7 ------ S8实验1:P0口循环点灯实验2:P1、P0口输入输出a b cdef gh(dp)a b c d e f g h(dp)P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7实验2: LED 数码管各段与I/O 的连接六、程序框图及程序P0口循环点灯ORG 0000H;设定程序汇编起始地址 MOV A,#07FH ;设置初始值01111111 LP: MOV P0,A ;点亮LED0RR A ;将A 里面的值循环右移一位 LCALL DELAY ;调用延时子程序 LCALL DELAY SJMP LP ;循环点亮LED 灯DELAY: MOV R2,#0FAH ;0.25S 的延时程序 L1: MOV R3,#0FAH L2: DJNZ R3,L2 ;2*250=500usDJNZ R2,L1 ;500*250*2=250000us RET ;返回主程序P1口输入/输出ORG 0000 ;设定起始地址MOV P1,#0FFH ;P1口置1LOOP: MOV A,P1 ;读P1口CJNE A,0FFH,LED ;查询是否有按键按下SJMP LOOP ;等待LED: MOV P0, A ;有键按下,将值读入P0ACALL DELAY ;调用延时子程序MOV R5 ,#00H ;置计数初值=0LOOP1: RRC A ;输入右移1位JNC LOOP2 ;若Cy=0,则数码显示INC R5 ;Cy=1,则计数加1SJMP LOOP1 ;跳回继续移位LOOP2: MOV DPTR,#TAB ;所查表的首地址赋给DPTRMOV A,R5 ;计数值做偏移量MOVC A,@A+DPTRMOV P2,A ;显示相应按键值SJMP LOOPTAB:DB 60H,0DAH,0F2H,66H ;DB 0B6H,0BEH,0E0H,0FEH ;DELAY: MOV R2,#0FAH ;0.25S的延时程序L1: MOV R3,#0FAHL2: DJNZ R3,L2 ;2*250=500usDJNZ R2,L1 ;500*250*2=250000usRET ;返回主程序七、思考题1、实验1欲改变LED循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。

单片机(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)系统各跳线器处在初始设置状态。

单片机实验一I/O端口实验报告参考模板

单片机实验一I/O端口实验报告参考模板

单片机原理与接口技术实验实验一 I/O端口实验(2)系别:通信工程系专业:通信工程系11级学号:233201122041姓名:实验时间:2014年3月6日撰写日期:2014年3月9日实验一 I/O端口实验(2)一、实验目的1、掌握单片机通用I/O端口的使用方法;2、掌握I/O端口数据输入/输出的方法。

二、实验内容(与本次实验报告标题括号中的数字对应)2、当开关状态为0101(K5K6K7K8)时,四个灯循环右移;当开关状态为1010(K5K6K7K8)时,四个灯循环左移;当开关为其它状态时,在LED1~LED4上显示开关状态。

程序运行时,拨动开关,显示立即跟着变化。

【基础,周四下午每人做】三、实验设计思路对于该题,因为有3种情况,所以参考课本P68程序,在while循环结构内添加if-else条件判断语句,分别区分右移、左移、与开关状态一致3种情况。

四、电路原理图及接线说明绘制本次实验用到的部分完整电路原理图如下:开关K5K6K7K8与P2.0~P2.3相连线;LED:1~8和P1.0~P1.7相连线。

五、实验流程图见下图:六、调试过程及实验现象对于第该题,一开始运行灯全亮,经按F8逐步调试后,发现P2的值怎么也无法赋给变量b,导致无论如何拨动开关,b的值都不会改变,一直等于FF,使灯全亮。

后来经助教指点方知是P2口没有设置为I/O模式,以致于无法将P2的值传输给b。

修改设置后,一切运行正常。

七、总结本次实验的实验难度不大,第一题参考课本的8位左移右移例子稍作修改便可运行,因为实验原理一样;但却因为一开始自己不够细心导致的一些软件设置问题而严重影响到了自己的实验进度,像这样的错误今后一定要避免。

第一次接触单片机,感觉还挺有趣意思的。

附录:实验源程序以压缩包提供整个项目文件例如: s03-lab01-1a.rar友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。

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

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

单片机原理及应用实验二报告实验二:单片机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的亮灭。

单片机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);}}四、实验总结。

单片机实验报告-利用单片机的P1口作IO口

单片机实验报告-利用单片机的P1口作IO口

单片机原理及应用实验报告实验名称:实验一一、实验目的利用单片机的P1口作IO口,使用户学会利用p1口作为输入和输出。

二、实验设备及器件IBM PC机一台DO-51PRO单片机综合仿真实验仪一台三、实验内容1、编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。

2、编写一段程序,用P1.0~P1.6口控制LED.P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭)四、实验步骤1、连接好电路,如下图所示:2、编写一个延时程序。

3、将LED轮流亮的程序编写完整并调试运行。

4、使用导线将A2区的J16接口的P1.0~P1.6与D1区的J51接口的LED1~LED7相连,另外A2区的J61接口的P1.7与D1区的J53的KRY1相连。

如下图所示:5、编写P1.7控制LED的程序,并调试运行。

(按下KEY1看是否全亮)6、A2区J61接口的P1.7与D1区的J54的SW1相连。

然后运行程序,拨动开关MOD_SW1查看结果。

五、实验程序程序一:ORG 0000H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0000HLJMP MainORG 0100H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0100HMain: MOV A,#0FFHCLR CMainLoop:CALL DelayRLC AMOV P1,ASJMP MainLoopDelay: MOV R7, #0Loop: MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopRETEND运行结果:调试运行时,LED轮流的被点亮。

程序二:ORG 0000H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0000HLJMP MainORG 0100H ;此为硬件仿真调试程序,如果用户使用软件仿真或直接运行,应改为0100HMain: JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MainSETLED: SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MainEND运行结果:调试运行时,按下开关,所有的LED亮,再按时,所有的LED灭。

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操作

实验一单片机IO口操作一、实验目的:1、学习IO口的使用方法;2、学习延时子程序的编写和使用;3、能控制LED灯的亮灭,并做出动态效果。

二、实验原理:1、通过程序控制单片机端口,使其各端口按要求实现高低电平的输出,从而控制LED灯的亮与灭;2、用独立按键控制LED灯的亮灭,用部分IO做输入接到按键上,用部分IO做输出接到发光二极管上,当按键按下时,相应的发光二极管亮。

DELAY: ; 延时子程序MOV R0, #0FFHDEL: MOV R1, #0FFHDJNZ R1, $DJNZ R0, DELRET ; 延时子程序结束三、实验程序:1、跑马灯实验实验程序:org 0000hljmp mainorg 100hmain:mov a,#0feh ;初值使一个灯亮ljmp looploop1:mov p1,acall delayloop: rl a ;对初值左移使灯循环亮灭ljmp loop1DELAY: ; 延时子程序MOV R0, #0FFHDEL: MOV R1, #0FFHDJNZ R1, $DJNZ R0, DELRET ; 延时子程序结束End程序利用赋初值,对初值进行左移,得到不同的数值使LED灯循环的亮灭。

在实验板上将p1口连上LED灯,执行程序后灯将挨个亮灭成跑马灯。

2、独立按键控制LED灯的亮灭实验程序:org 0000hljmp mainorg 100hmain:mov a,p2mov p1,ajmp mainend程序中用中间变量a来实现端口的信息传递。

在实验板上将p2连上开关作为按键控制是高电平还是低电平,p1连上LED灯,执行程序时就可控制p2连上的开关来控制灯的亮灭。

四、实验结论与心得:实验时通过程序来实现想要的实验过程,在实验板上按程序连接线路,执行程序后就能实现结果。

通过这次实验基本了解了单片机实验板的分布和基本构造,各个端口的基本功能以及单片机的使用范围和性能,学会了I/O口的简单控制。

单片机io口控制实验报告

单片机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口实验结论

单片机io口实验结论

单片机io口实验结论单片机IO口实验结论单片机IO口是单片机与外部设备交互的重要接口,通过IO口可以实现输入输出功能。

在进行单片机IO口实验的过程中,我们得出了以下几点结论。

1. 单片机IO口具有输入和输出功能。

通过设置相应的寄存器,可以将IO口配置为输入或输出模式。

输入模式时,可以读取外部信号的状态;输出模式时,可以向外部设备发送信号。

2. 单片机IO口具有高低电平控制能力。

通过设置相应的寄存器,可以将IO口输出高电平或低电平信号。

高电平一般表示逻辑1,低电平表示逻辑0。

通过控制IO口的高低电平,可以与其他设备进行通信。

3. 单片机IO口具有上拉和下拉功能。

当IO口配置为输入模式时,可以通过上拉或下拉电阻来确保输入信号的稳定性。

上拉电阻使得输入信号在未连接时保持高电平,下拉电阻使得输入信号在未连接时保持低电平。

4. 单片机IO口具有中断功能。

通过配置相应的寄存器和中断向量表,可以使IO口在特定条件下触发中断。

当IO口输入信号满足中断触发条件时,可以立即响应中断并执行相应的中断服务程序。

5. 单片机IO口的电流限制。

在使用IO口时,需要注意IO口的电流限制。

如果连接的外部设备需要较大的电流驱动能力,可以通过外部电流放大器或继电器等方式来实现。

6. 单片机IO口的电压范围。

在使用IO口时,需要了解IO口的电压范围。

不同的单片机IO口电压范围可能有所不同,需要根据具体的需求选择合适的单片机型号和IO口。

7. 单片机IO口的电平转换。

当单片机与其他设备进行通信时,可能存在电平不匹配的情况。

可以通过电平转换电路来实现不同电平之间的转换,以确保通信的稳定性。

8. 单片机IO口的使用限制。

在使用IO口时,需要遵守单片机的使用规范和限制。

例如,不同的IO口可能有不同的功能限制、电流限制和电压范围限制,需要根据具体的芯片手册进行配置。

总结:单片机IO口是单片机与外部设备交互的重要接口,通过IO 口可以实现输入输出功能。

单片机实验报告二 单片机IO口实验

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

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

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

实验一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口控制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口来控制各种设备,例如电机、传感器等。

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

实验报告一、单片机IO口的综合应用

实验报告一、单片机IO口的综合应用

院系物理与电子信息学院专业电子与电子信息工程班级10电专(2)姓名刘伟生学号1060710057 同组人/实验室S2312 组号/ 日期课程单片机原理与应用指导老师肖鹏程成绩试验项目编号试验项目名称单片机定时器的综合应用一、实验目的1.熟悉Keil uVision2软件的安装和应用;2.熟悉Proteus7.8软件的安装和应用;3.掌握单片机的I/O口只作为Output的使用方法;4.掌握单片机的I/O口Input与Output综合运用的使用方法。

二、实验环境1.微机一台;2.Proteus7.8电路设计和仿真软件;3.Keil uVision2编译和调试软件;三、实验原理图1是单片机I/O口为Output的电路原理图,P0接8只LED,限流电阻为220Ω,P2口接一只共阳7段数码管,限流电阻为220Ω,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9, DIP31接Vcc。

注意:所有元器件要按实物重新封装。

用C语言编写程序,使该电路的功能为,上电后LED显示二进制数0xfe,数码管显示0。

修改程序,使二极管显示数据依次为0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,数码管依次显示。

图1单片机输出控制电路原理图单片机I/O口作为Output输出的程序图2是使用与非门、或非门设计全加器的电路原理图,4位拨码开关用于信号输入,2只LED分别是和(Sum)输出、进位(CY)输出,用拨码开关改变输入状态,2只LED能显示相应的输出状态。

图2全加器电路原理图图3是单片机I/O口Input与Output综合运用的电路原理图,P1口接1只4位拨码开关,P00和P07分别是和(Sum)输出、进位(CY)输出。

用C语言编写程序,使该电路实现的功能为,用拨码开关改变输入状态,2只LED能显示相应的输出状态。

图3单片机全加器电路原理图单片机I/O口Input与Output综合运用的程序四、实验步骤1.安装Keil uVision2;2.安装Proteus 7.8;3.在Proteus ISIS环境下设计一个用单片机的I/O口(P0)作为Output控制8只LED,单片机的I/O口(P2)作为Output控制1只7段共阳数码管的电路;4.在Keil uVision2环境下,用C语言编写单片机实现P0口输出数据0xfe,P2口输出数据0xc0的程序,编译生成hex文件。

实验二单片机IO口的使用

实验二单片机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口的原理和应用场景,为以后的电子设计打下了基础。

单片机c语言程序设计---IO端口应用实验报告

单片机c语言程序设计---IO端口应用实验报告

单片机c语言程序设计---I/O端口应用实验报告实验目的:1.熟悉单片机硬件结构及其工作原理2.掌握单片机的I/O端口应用实验内容:实验1——P1作为输入端口硬件设计P1端口的高四位P14、P15、P16和P17分别接4个独立按键S01、S02、S03、S04以及4个LED VD5、VD6、VD7、VD8;当独立按键按下时,对应发光二极管亮,比如S01按下时,VD5被点亮,同时P30输出低电平VD17被点亮。

程序1:#include<reg51.h>sbit K01=P1^4;sbit K02=P1^5;sbit K03=P1^6;sbit K04=P1^7;sbit VD17=P3^0;sbit VD18=P3^1;sbit VD19=P3^2;sbit VD20=P3^3;void delay(){unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<100;j++);}void main(){while(1){if(K01==0){delay();VD17=K01==0?0:1;}if(K02==0){delay();VD18=K02==0?0:1;}if(K03==0){delay();VD19=K03==0?0:1;}if(K04==0){delay();VD20=K04==0?0:1;}}}实验要求:1.完成实验1-- P1作为输入端口。

具体包括绘制仿真电路图、编写c源程序、进行仿真并完成该功能。

2.完成实验2花样灯。

具体包括绘制仿真电路图、编写c源程序、进行仿真并完成该功能。

程序2:#include <reg51.h>#include "math.h"unsigned char code tab1[]={0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00};unsigned char code tab2[]={0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff};void Delay() {int i = 100;while(i--) {unsigned char i, j;i = 2;j = 239;do {while (--j);} while (--i);}}void main() {unsigned char i;while (1) {for (i = 0; i < 8; ++i) {P1 = tab1[i];delay();}for (i = 0; i < 8; ++i) {P0 = tab1[i];delay();}for (i = 0; i < 8; ++i) {P3 = tab1[i];delay();}for (i = 0; i < 8; ++i) {P2 = tab1[i];delay();}for (i = 0; i < 8; ++i) {P2 = tab2[i];delay();}for (i = 0; i < 8; ++i) {P3 = tab2[i];delay();}for (i = 0; i < 8; ++i) {P0 = tab2[i];delay();}for (i = 0; i < 8; ++i) {P1 = tab2[i];delay();}}}实验分析:心得体会:。

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

实验一
以下所有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);
}
}
四、实验总结。

相关文档
最新文档