单片机io口控制实验报告
实验三单片机IO口控制实验

实验三单片机I/O口控制实验一、实验目的利用单片机的P1口作I/O口,学会利用P1口作为输入和输出口。
二、实验设备及器件PC机一台单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮。
2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED亮,不按时LED灭)。
四、实验要求学会使用单片机的P1口作为I/O口,如果有时间用户也可以利用P3口作I/O口来做该试验。
五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连。
原理如图所示。
2.先编写一个延时程序。
3.将LED轮流亮的程序编写完整并使用TKStudy ICE仿真器调试运行。
4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连。
原理如上图所示。
5.编写P1.7控制LED的程序,并调试运行。
(按下K1看是否全亮)6.A2区J61接口的P1.7与D1区的J54的SW1相连。
然后再使用TKStudy ICE仿真器运行程序,查看结果。
六、实验预习要求仔细阅读实验箱介绍中的各个接口内容,理解该实验的硬件结构。
还可以先把程序编好,然后在Keil C51环境下进行软件仿真。
七、实验参考程序程序1:ORG 0000HLJMP MainORG 0100HMain: MOV A,#0FFHCLR C MainLoop:CALL DelayRLC AMOV P1,ASJMP MainLoop Delay:MOV R7, #0 Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopRETEND程序2:ORG 0000HLJMP MainORG 0100HMain: JB P1.7,SETLED CLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP Main SETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MainEND八、实验思考题(1)请同学们思考一下,还可以用哪些其它的方法编程能够实现以上功能。
单片机io口控制实验

单片机实验报告实验名称:I/O口控制姓名:高知明学号:班级:通信3时间:南京理工大学紫金学院电光系一、实验目的1、学习I/O口的使用。
2、学习延时子程序的编写和使用。
3、掌握单片机编程器使用和芯片烧写方法。
二、实验原理1.灯闪烁实验(1)在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
电原理图如图3.1所示。
(2)系统板上硬件连线把“单片机系统”A2区的J61接口的P1.0- P1.6端口与D1区的J52接口相连。
(3)程序设计流程本实验程序设计可参考程序流程3.2图3.1灯闪烁实验电路原理图3.2程序流程图2.广告流水灯实验(1)做单一灯的左移右移,硬件电路图如图3.3所示,八个发光二极管L1-L8分别接在单片机的接口上,输出“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.(3)程序设计流程本实验程序设计可参考程序流程,如图3.4所示图3.3P1口广告流水灯实验电路原理图图3.4广告流水灯实验流程3、模拟开关实验(1)监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭,如图3.5所示(2)系统板上硬件连线把“单片机系统”A2区的P1.0端口用导线连接到D1区的LED1端口上;把“单片机系统”A2区的P3.0端口用导线连接到D1区的KEY1端口上;(3)程序设计流程本实验程序设计可参考程序流程,如图3.6所示图3.6 程序流程图图3.5模拟开关实验原理图三、实验内容1.流水灯实验C51程序:#include<reg51.h>void time(){long int i;for(i=0;i<=10000;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.闪烁灯实验C51程序:#include<reg51.h>#define uint unsigned int sbit led=P1^0;void delay(){uint a;a=50000;while(a--);}main(){while(1){led=0;delay();led=1;delay();}}硬件图3、模拟开关实验C51程序:#include<reg51.h>void main(){unsigned char a;sbit key=P3^0;sbit led=P1^0;while(1){if(key==0){for(a=500;a>0;a--);if(key==0)led=0;}else led=1;}}硬件图四、小结与体会通过这次实验,熟悉并掌握了proteus以及keil软件的使用,对I/O口的控制有所了解,学习延时子程序的编写和使用。
单片机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口的使用方法;2、学习延时子程序的编写和使用;3、能控制LED灯的亮灭,并做出动态效果。
二、实验原理:1、通过程序控制单片机端口,使其各端口按要求实现高低电平的输出,从而控制LED灯的亮与灭;2、用独立按键控制LED灯的亮灭,用部分IO做输入接到按键上,用部分IO做输出接到发光二极管上,当按键按下时,相应的发光二极管亮。
DELAY: ; 延时子程序MOV R0, #0FFHDEL: MOV R1, #0FFHDJNZ R1, $DJNZ R0, DELRET ; 延时子程序结束三、实验程序:实验1:Org 0000hLjmp mainMain:org 1000hmov A,#0FEH /*向累加器赋初值AA: RL A /*循环左移,灯循环点亮MOV P1,A /*从P1口输出CALL DELAY /*延时JMP AADELAY: ; 延时子程序MOV R0, #0FFHDEL: MOV R1, #0FFHDJNZ R1, $DJNZ R0, DELRETEND实验2:Org 0000hLjmp mainorg 1000hmain: MOV A,P1 /*从P1口读取高四位键值SWAP A /*高四位与低四位交换数据MOV P1,A /*从低四位输出高四位的键值MOV P1,#0FFH /*P1口初始化,即向锁存器置1JMP mainEND四、实验结论与心得:通过本次试验掌握了IO口的使用方法;延时子程序的编写和使用;通过编写程序能控制LED灯的亮灭,并做出动态效果。
单片机(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端口实验(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友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
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口实验结论单片机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 口可以实现输入输出功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);
{
while(1)
{
if(p30==0)
p10=0;
else
p10=1;
}
}
三、小结与体会
通过本次实验学会了I/O口的使用,学会了延时子程序的编写和使用以及掌握了单片机编程器的使用和芯片烧写方法。通过Proteus ISIS和Keil uvision软件的互相配合,使得单片机在电脑上的仿真轻松便捷。通过本次试验,利用简单的试验,2种软件以及硬件的使用。
(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()
{
P1=0xff;
TMOD=0x01;
TH0=55536/256;
(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熄火。
}
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()
单片机实验报告
实验名称:
I/O口控制
姓 名:
张昊
学 号:
110404247
班 级:
南京理工大学紫金学院电光系
一、实验目的
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亮,重复循环。
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;
}