实验3---P1口亮灯实验
实验三 P3.3口输入,P1口输出
P3.3用导线连至K1开关,P1.0~P1.7导线连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。
3、参考程序
四、思考题
1、如果要增加或者减少亮灯时间,应该如何修改程序?
在延时过程中,再加一次循环或减少一次循环,可以增加减少亮灯时间。
2、如果要使发光二极管以左移方式点亮,应该如何修改程序?
(可附页)
【单片机原理及应用】实验报告
班级:计13本2学号:姓名:
实验三P3.3口输入,P1口输出
实验类型
综合
实验日期
实验地点
实验时间(星期节次)
指导教师
实验组成员
一、实验目的及要求:
1、掌握P3口、P1口简单使用。
二、实验仪器:
计算机ቤተ መጻሕፍቲ ባይዱ
三、实验内容、步骤及程序
1、实验内容
P3.3口输入一脉冲,P1口按16进制加一方式点亮发光二极管。
将A寄存器的初值改为100H,将INC加一指令改为减一指令,
分析初值是100H而不是FF:因为DJNZ指令是在减一之后再判断为零,才跳转。
五、实验结果及总结:(你的实验过程用了多少时间?遇到了哪些难题?你是怎么解决的?你的收获有哪些?)刚开始,程序仿真只是不出来,仔细检查程序没问题,但就是出不来效果,最后是重启仿真软件,就好了可能是软件问题。
实验一 P1口输入、输出实验
实验一P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个拨动开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
二.实验目的1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
三. 实验电路及连线实验一时,P1.0-P1.7接L0-L7。
实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。
CS273接8300H。
四.实验说明1.P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验框图程序框图:TP1A.ASM主程序框图TP1B.ASM主程序框图六.附加实验内容1、用P1口的P1.0-P1.3作输出口接4个发光二极管,P1.4-P1.7作输入口接4个拨动开关,将开关的状态读进来并在发光二极管上显示。
七.实验报告要求1、书写实验目的、实验内容、实验连线、以及实验中的观察结果;2、画出流程图、编写实验程序,写出实验的心得体会。
实验三流水灯实验(io口和定时器实验)
实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。
二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。
2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。
3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。
5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。
三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。
当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。
E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。
综上,画出实验电路原理图。
2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。
图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。
实验5程序流程图如图3-5,3-6所示。
图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。
p1口输入输出实验报告
p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。
而在这个过程中,输入输出接口的设计和实现显得尤为重要。
本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。
一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。
p1口的原理是通过电信号的传输来实现与外部设备的交互。
具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。
二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。
将这些设备连接到计算机的p1口上。
2. 输入实验首先,我们进行输入实验。
在连接好设备后,我们可以通过键盘向计算机输入一些字符。
计算机会将这些字符接收并进行处理。
我们可以通过编写一个简单的程序来实现字符的显示和处理。
在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。
通过这个实验,我们可以验证p1口的输入功能是否正常工作。
3. 输出实验接下来,我们进行输出实验。
在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。
通过这个实验,我们可以验证p1口的输出功能是否正常工作。
4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。
- p1口的输出功能正常工作,可以控制打印机输出指定的内容。
三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。
通过本次实验,我们对p1口的原理和功能有了更深入的了解。
p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。
p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。
在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。
结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。
实验三 P1口输入输出实验
实验三 P1口输入输出实验一、实验要求1.P1口做输入口,接八个扭子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
2.将K1作为输入数据标志,将前后输入的两个数相加,并通过发光二极管显示出来,并保持一段时间。
3.讨论延时子程序的延时计算。
二、实验目的1.学习P1口的使用方法2.学习延时子程序的编写和使用3.进一步增强分支程序的设计能力三、实验电路及连线接线说明:P1.0~P1.7接K1~K8;PO0~PO7接DL1~DL8。
/CS接8300H四、实验说明1.P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
2.本实验按照要求,应该按如下步骤操作:1)将8个扭子全拨动至L(下),L1闪烁,其他7LED灭,准备输入第一个数(例如76H)2)输入数据时,先从最低位输入,然后到最高位,对应的扭子是从K8到K2。
3)确定拨动的扭子没问题后,将K1拨动到H(上),并马上拨回到L(下),表示第一个数输入完成。
4)L1灯灭,其他7LED灯显示刚刚输入的数2秒钟,然后等待输入第二个数(例如6DH)5)输入数据时,同第1)和2) 步,通过K1的上下拨动,表示第二个数输入完成,并显示该数据2秒钟。
6)同时闪烁8个发光二极管后,稳定显示前后两个数的相加结果。
请手工将K2~K8扭子全部拨动到L(下)。
7)若此时K1再次上下拨动,这回到第1) 步重复进行。
3.本实验要求必须画出程序的流程图,并根据流程图编写代码。
4.请把输入的数据和显示的结果分别记录在实验数据中。
五、实验框图六、实验代码七、实验数据八、实验小结。
实验1:P1口亮灯控制程序-实验说明
实验1: P1口亮灯控制程序一、连接方法1、将SIP8-3用跳线帽上连2、依据ISP在线编程步骤将程序写到入芯片中;3、打开电源程序即可运行。
4、注意该实验结束后可将SPL上的跳线帽去掉,以减少开发板的功耗。
二、相应原理图如下:三、实验说明:、本实验仅用到L1灯。
本例实验主要用到了延时子程序,clr,lcall,ajmp 指令,通过控制P1.0口实现效果。
用户可以通过此程序的学习,只要你掌握了该程序,你就成功迈出了学习单片机的第一步!四、程序范例:;****************************************************************************************;*描述: 端口亮灯控制程序;*公司:深圳信盈达电子有限公司;*编写: 牛乐乐;*日期: 2009年07月15日;*版本: V1.0;*连接: SPL跳线连接;;*说明:实现P1.0控制L1灯常亮;****************************************************************************************/ ORG 0000HLJMP MAINORG 0030H ;到0030h处避开00-30之间的敏感地址MAIN:CLR P1.0 ;将P1.0送0指令LCALL DEL ;延时LJMP MAIN ;循环;//******延时子程序**********//DEL: MOV R2,#200 ;执行1该条指令需要1us时间D1: MOV R3,#250 ;执行1该条指令需要1us时间D2: DJNZ R3,D2 ;执行1该条指令需要2us时间DJNZ R2,D1 ;执行1该条指令需要2us时间RET ;执行1该条指令需要1us时间END;延时子程序延时时间T=1+(1+2*250+2)*200+1=2+100600=100602us=100.6ms=0.1s ;//计算延时间;t=2+100*(2+250*(4)+2)=100 000us=0.1s(约等于1s)。
实验二P1口控制LED发光二极管
实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
实验二P1口控制LED发光二极管
实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
实验三P3.3口输入、P1口输出实验
实验三 4.1 P3.3口输入、P1口输出实验系别专业:电子系12级电信2班学号:3121003210姓名:李书杰指导老师:刘志群老师4.1.1 实验要求1. 复习Keil C51调试硬件的操作方法。
2. 复习单片机作为通用I/O口的注意事项。
3. 复习单片机操作I/O口的程序设计方法。
4.1.2 实验设备PC 机一台,TD-NMC+教学实验系统4.1.3 实验目的1. 熟悉单片机仿真实验软件Keil C51调试硬件的方法。
2. 了解P3、P1口作通用I/O口的使用方法。
3. 掌握延时子程序的编写和使用方法。
4. 了解单片机对简单I/O的扩展方法。
4.1.4 实验内容实验1根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P1口的低4位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制发光二极管的亮灭。
程序如下:KEY:MOV P1,#0F0H ;令所有行为低电平KEY1:MOV R7,#0FFH ;设置计数常数DJNZ R7,KEY1 ;延时MOV A, P1 ;读取P1口的列值ANL A,#0F0H ;判别有键值按下吗?CPL A ;求反后,有高电平就有键按下JZ EKEY ;无键按下时退出LCALL DEL20 ms ;延时20 ms去抖动SKEY:MOV A,#00 ;下面进行行扫描,1行1行扫MOV R0,A ;R0作为行计数器,开始为0MOV R1,A ;R1作为列计数器,开始为0MOV R3 #0FEH ;R3暂存行扫描字,低4位为行扫描字SKEY2:MOV A,R3MOV P1,A ;输出行扫描字,高4位全1NOPNOPNOPMOV A,P1 ;读列值MOV R1,A ;暂存列值ANL A,#0F0H ;取列值CPL A ;高电平则有键闭合S123:JNZ SKEY3 ;有键按下转SKEY3INC R0 ;行计数器加1SETB C ;准备将行扫描左移1位,;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1,;为列输入作准备,低4位中只有1位为0MOV A,R3 ;R3带进位C左移1位RLC AMOV R3,A ;形成下一行扫描字→R3MOV A,R0CJNE A,#04H,SKEY1 ;最后一行扫(4次)完了吗?EKEY:RET;列号译码SKEY3:MOV A,R1JNB ACC.4,SKEY5JNB ACC.5,SKEY6JNB ACC.6,SKEY7JNB ACC.7,SKEY8AJMP EKEYSKEY5:MOV A,#00HMOV R2,A ;存0列号AJMP DKEYSKEY6:MOV A,#01HMOV R2,A ;存1列号AJMP DKEYSKEY7:MOV A,#02HMOV R2,A ;存2列号AJMP DKEYSKEY8:MOV A,#03HMOV R2,A ;存3列号AJMP DKEY;键位置译码DKEY:MOV A,R0 ;取行号ACALL DECODEAJMP EKEY;键值(键号)译码DECODE:MOV A,R0 ;取行号送AMOV B,#04H ;每一行按键个数MUL AB ;行号×按键数ADD A,R2 ;行号×按键数+列号=键值RET实验2根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:将P3.3口作状态输入口(接一个逻辑开关,即拨码开关),P1口做输入口(接八只发光二极管D0~D7)。
重庆交通大学单片机实验报告
实验四 数码管显示实验
一、 实验目的 1、掌握单片机数码管显示原理。 2、编程实现数码管的动态、静态显示。
二、实验器材 PC 机一台 单片机开发板一套
三、实验内容
图 4-1 实验原理图
任务一:查看开发板上电路图,6 个数码管同时循环显示 0-9 数字,
时间间隔 0.2 秒。(静态显示)
实验代码:
#include<reg52.h> //包含文件 #define uint unsigned int #define uchar unsigned char sbit dula=P2^6;
任务一:在 P1.0 端口上接一个发光二极管 D1 实验代码:
#include <reg52.H> sbit Led1=P1^0; void main(void) { while(1) { Led1=0; } }
9 / 35
实验结果:
图 3-2 仿真结果
图 3-3 实验结果
任务二:在 P1.0 端口上接一个发光二极管 D1,使 D1 在不停地一亮
//宏定义位 P1.5
sbit led3 = P1^2;
//宏定义位 P1.2
sbit key3 = P1^6;
//宏定义位 P1.6
sbit led4 = P1^3;
//宏定义位 P1.3
sbit key4 = P1^7;
//宏定义位 P1.7
void main(void)
//主函数
{
while(1)
4.实验结果:
图 2-8 仿真结果 7 / 35
图 2-9 实验结果 8 / 35
实验三、P1 口亮灯实验
一、实验目的 通过实验了解单片机最小系统;掌握 P1 口作为输入输出方式使
任务3键控灯亮实验报告模板
“任务三键控灯亮”实验报告
专业班级:姓名:
学号:实验日期:
一、实验目的
1. 了解MCS-51单片机4个并行I/O口的结构、功能和使用;
2. 掌握C51选择结构程序的设计。
二、实验内容
1. 利用开关控制LED的点亮与熄灭:当开关拨到1时,LED点亮;开关拨到0时,LED熄灭。
2. 利用开关控制LED的闪烁与点亮:当开关拨到1时,LED闪烁;当开关拨到0时,LED点亮。
3. 利用开关控制LED的闪烁与流水:当开关拨到1时,LED流水;当开关拨到0时,LED闪烁。
硬件连接:
外设单片机引脚
开关K0 P2.0
LED P1
三、实验结果
1. 画出单片机与开关、LED的连接原理图(请附上自己画的Proteus图的截图)。
2. 开关控制LED点亮与熄灭的程序(请附上C语言源程序的截图,并说明实验结果)。
3. 开关控制LED闪烁与点亮的程序(请附上C语言源程序的截图,并说明实验结果)。
4. 利用开关控制8个LED闪烁与流水的切换程序(请附上C语言源程序的截图,并说明实验结果)。
四、实验思考题
1. 若用单片机分别驱动继电器、蜂鸣器,电路如何设计?请查找资料,画出相应的电路原理图,并说明电路工作原理。
2. 单片机的准双向口和双向口的区别是什么?P0~P3口分别是准双向口还是双向口?
五、实验总结
请写一下实验心得体会,以及调试过程中遇到的问题,分析原因,如何解决?
1。
P1、P3口输入输出实验
实验二 P1、P3口输入输出实验一、实验目的进一步熟悉keil仿真软件、proteus仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实验原理MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。
每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。
四组并行I/O端口即可以按字节操作,又可以按位操作。
当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
P1口的位结构如图1所示。
P1口用作双向输入输出端口。
这时图中多路开关的控制信号为低电平,输出与锁存器的反向输出端相连,同时上面的场效应管由于与门输出为低电平而截止。
三、实验设备与器件硬件:微机、单片机仿真器、单片机实验板、连线若干软件:KEIL C51单片机仿真调试软件,Proteus系列仿真调试软件四、实验内容及结果分析用Proteus仿真软件设计流水灯电路,分别实现下列功能:P3口作为输入口读取开关状态,P1口作为输出口,连续运行程序,发光二极管显示开关状态。
如果是下载式实验仪,在程序装载前,必须使P3口的拨动开关处于高电平状态。
并且不能单步调试,只能连续执行。
完整的电路图如图所示。
2)利用keil软件编写相应的程序:a、运行keil 2软件,启动后,点击Project菜单新建项目,如图6所示。
b 、新建项目后,选择仿真单片机的型号,如图7所示:c、单击File菜单的“New”新建程序文件,再右击“Source Group1”添加文件,如图 8、图9所示:d、在软件的程序编写界面编写相应的程序。
点击按钮运行程序,确认无误后,点击,图5 完整电路图图6 新建项目界面图7 单片机型号选择图8 新建程序文件图9 添加文件在弹出的窗口中选择Output 选项卡,勾选选项,之后点击按钮,最后再点击按钮,生成hex 文件。
P1口实验报告
P1 口输入、输出实验报告班级姓名学号日期一、实验目的和要求:1、学习P1 口的使用方法。
2、学习延时子程序的编写和使用。
3、学习用‘与’‘或’运算对MCS96系列CPU的变量进行位操作。
二、实验内容1、P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
编程时应注意P1.0,P1.1作为输入口时应先置1,才能正确读入值。
三、程序及运行结果Flash equ 0 ; LED状态STOP equ 1SR equ p1.0 ; 南北红灯SY equ p1.1 ; 南北黄灯SG equ P1.2 ; 南北绿灯ER equ P1.3 ; 东西红灯EY equ P1.4 ; 东西黄灯EG equ p1.5 ; 东西绿灯ljmp Startorg 0003hsetb STOP ; 南北, 东西均红灯retiStart:mov SP, #70mov TCON, #01h ; down edge IT0mov IE, #81h ; enable EA, EX0setb SR ; 南北, 东西均红灯clr SYclr SGsetb ERclr EYclr EGclr STOPLoop:jb STOP, AllRedsetb SR ; 南北红灯, 东西绿灯clr SYclr ERclr EYsetb EGmov a, #20call Delayjb STOP, AllRedsetb SR ; 南北红灯, 东西黄灯闪clr SYclr SGclr ERclr EYclr EGclr Flashmov r7, #9Loop1:mov c, Flashmov EY, cmov a, #1call Delaycpl Flashdjnz r7, Loop1jb STOP, AllRedclr SR ; 南北绿灯, 东西红灯clr SYsetb SGsetb ERclr EYclr EGmov a, #20call Delayjb STOP, AllRedclr SR ; 东西红灯, 南北黄灯闪clr SYclr SGsetb ERclr EYclr EGclr Flashmov r7, #9Loop2:mov c, Flashmov SY, cmov a, #1cpl Flashdjnz r7, Loop2ljmp LoopAllRed:setb SRclr SYclr SGsetb ERclr EYclr EGclr STOPmov a, #10call Delayljmp LoopDelay: ; 延时子程序mov r1, #80Hmov r0, #0 DelayLoop:jb STOP, ExitDelaydjnz r0, DelayLoopdjnz r1, DelayLoopdjnz ACC, Delay ExitDelay:retend四、实验过程中遇到的主要问题五、实验后的心得体会。
实验二P1口控制LED发光二极管25页word
实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30HMAIN: MOV A,#0FEHLOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
实验一 P1口亮灯实验
• 硬件定时与软件计数结合方式解题思路: • 让T0作定时器用,如T0可以定时50ms,当定时时间 到,在T0中断处理程序中一个寄存器内容加1,同 时判断是否加到2000/50=40,如果不到40,则直接 返回,如果计到40,说明2s时间到,使P1口循环点 亮8个发光二极管后再返回。 • T0工作在方式1,控制字01H,计数初值(12MHz): (216–X)×1×10 -6 =50×10 -3S 即216–X=50000 X=216-50000=10000H-C350H =3CB0H 所以,初值为: TH1=3CH,TL1=B0H 若6MHZ课用原来的子程序!
;T0为方式1 ;初值 ;允许中断 ;启动定时 ; LED0先亮 ; ;等待中断 ;重新设置初值 ;依次点亮
中断处理 INTT0: MOV TH0,#9EH MOV TL0,#58H 程序: RL A RETI
拓展实验:每个LED点亮时间为2s
1.定时器/计数器应用实训 实训内容:利用T0定时,产生2s定时,使得P1 口输出信号,控制8个发光二极管循环点亮,设 fOSC=12MHz, 。 1.难点:P1口输出信号,控制8个发光二极管循环 点亮。由于定时时间长达2s,所以单靠一个定 时器不能解决问题。 2.可以采取硬件定时和软件计数(或硬件计数) 结合方式。
实验一 P1口亮灯实验
实验要求
1.分别用2种方式使P1口输出信号,轮流点 亮8个LED,每个LED点亮时间约为50ms。 方法1:利用调用延时子程序方式; 方法2:利用定时器定时50ms,设晶振频率 为12MHz。 2.拓展实验:每个LED点亮时间为2s。 3.选做P1口转弯灯实验。
思路: 1.通过P1.0P~1.7分别送“1”给8个LED指示灯; 2.每次持续时间20分之一秒,即50ms, 由定时器T0来定时,用方式1 , 又知fOSC =6MHz。 8051
单片机原理与应用实验教案实验指导书
单片机原理与应用实验指导书专业班级姓名计算机学院编2007年3月实验目录第一部分软件实验选做实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同个数实验七无符号数双字节快速乘法子程序实验八脉冲计数(定时/计数综合实验)第二部分硬件实验选做实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五 8255PA口控制PB口实验六 8255控制交通灯实验七简单I/O口扩展实验八 A/D转换实验第一部分软件实验实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H~20FF的内容清零。
三、实验步骤用连续或单步方式运行程序,检查2000H~20FF执行程序前后的内容变化。
四、思考 1、假使把2000H~20FF中的内容改为FF,如何修改程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
五、程序清单(sw01.asm)ORG 0000HLJMP SE01ORG 0640HSE01:MOV R0,#00HMOV DPTR,#00H ;(0000H)送DPTRLOO1:CLR AMOVX @DPTR,A ;0送DPTRINC DPTR ;DPTR+1INC R0 ;字节数加1CJNE R0,00H,LOO1 ;不到FF个字节再清LOOP:SJMP LOOPEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验程序框图四、实验步骤用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。
五、思考 1、如何用断点方式调试本程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
六、程序清单(sw02.asm)ORG 0000HLJMP SE02ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A ;(2000H)→A→BSWAP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX @DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000H)内容屏蔽高位MOVX @DPTR,A ;送2002HLOOP: SJMP LOOPEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。
单片机P1口输入输出实验
单片机P1口输入输出实 验
单片机可靠的复位是保证单片机正常运行的关键因素。 因此,在设计复位电路时,通常要使RST引脚保持10ms以 上的高电平。当RST从高电平变为低电平之后,单片机就从 0000H地址开始执行程序。本电路是上电自动复位。
将8个LED接在单片机P1端口的P1.0-P1.7引脚上,注意 LED有长短两个引脚,分别表示正负极,其中较短的负极接 单片机,较长的为正极,通过限流电阻R与Vcc相连。
单片机P1口输入输出实 验
单片机端口是集数据输入缓冲、数据输出驱动及 锁存等多项功能一体I/O的电路,特别是把握它准 双向、多功能的特点。单片机4个并行端口是P0、 P1、P2、P3。本实验只讨论P1端口。
1、实验目的
通过实验了解P1口作为输入输出方式使用 时,CPU对P1口操作方式。
•1
单片机P1口输入输出实 2、验实验要求(1)、2)为必做,3)为选做)
•11
单片机P1口输入输出实验
图3 P1端口的一位结构
•12
单片机P1口输入输出实验
5、程序设计
P1口输出控制程序的设计主要包括控制输出程序设计与延时程序设计。 (1)输出控制:当P1.5端口输出低电平,即P1.5=0,这时LED亮,反 之,LED灭,可以使用P1.5=0指令使P1.5端口输出低电平,同样利用指 令使P1.5端口输出高电平。
灭;
状态3:8个LED发光二极管
全灭后,从左右两边开始同时点亮LED发光二极管,全亮
后,8个LED发光二极管再明暗一起闪烁2次 ?
•3
单片机P1口输入输出实 验
3、实验设备与仪器 单片机应用与仿真开发实验台,PC机,
E6000/L仿真器+POD-51仿真头、 Wave软硬件仿真软件。
跑马灯1秒间隔闪烁---运用定时中断方法控制P1口亮灯实验
实验三运用定时中断方法控制P1口亮灯实验姓名:郑旅军学号:0656061指导老师:邹慧兰成绩:一、实验目的1学习内部定时/计数器的使用2学习定时中断处理程序的编程方法二、实验内容P1口作为输出口,接发光二极管,编写相应的程序使发光二极管点亮。
发光二极管亮灭的时间间隔可以由定时中断子程序进行控制。
要求0.5S中亮一个。
三、实验预备知识1.P1口是准双向口,可以定义为输入,也可以定义为输出2.本实验中采用定时器来实现中断四、程序框图五、实验电路图P1.0--------LED0P1.1--------LED1P1.2--------LED2P1.3--------LED3P1.4--------LED4P1.5--------LED5P1.6--------LED6P1.7--------LED7六、实验步骤1.按要求编写相应的程序#include "reg51.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned intuint num=4;uchar XX=0x01;void timer0() interrupt 1{n um--;TH0=0x0B;T L0=0xDC; //重新设置初值i f(num==0){XX=_crol_(XX,1); //或者是 XX=XX<<1num=4;}}void main(){T MOD=0x01; // set model oneT H0=0x0B;T L0=0xDC; //设置初值E A=1; //总中断允许E T0=1; //定时中断允许TR0=1; //定时开始f or(;;){P1=XX; //计时溢出时,退出循环,跳到中断子程序}}由于晶振是6 MHz ,所以机器周期为 s μ2,延时0.5 S,则是延时ss μ25.0=250000个机器2,所以考虑将250000分开4次循环计时,设置计数器num。
实验3---P1口亮灯实验
Next:
Delay: MOV R6, #0A0H Lo1: MOV R7, #0FFH Lo2: DJNZ R7, LO2 DJNZ R6, LO1 RET
ቤተ መጻሕፍቲ ባይዱ
三、思考 •(1)改变延时常数,使发光二极管闪亮时间改变; •(2)修改程序,使发光二极管闪亮移位方向改变。
四、实验过程记录和描述 五、实验数据和处理 六、实验心得和体会
(2)实验电路
A2区的P10—P17用8芯排线连接到D1区的LED1—LED8, 运行程序后,观察发光二极管闪亮移位情况。
(3)P1口亮灯程序
ORG 8000H MOV P1, #0FFH MOV A, #0FEH MOV P1, A LCALL Delay RL A SJMP Next
;送P1口, 灭 ;点亮L1发光二极管 ;调用延时子程序 ;左移位 ;循环 ;延时子程序
实验3---P1口亮灯实验
一、实验目的
•(1)学习P1口的使用方法; •(2)学习延时子程序的编写。
二、实验方案设计 必须有硬件设计图和 程序流程框图!
(1)实验内容
P1 口作为输出口,接八只发光二极管,编写程序, 使发光二极管循环点亮。 •(1)P1口对准双向口,每一位都可独立地定义为输出 或输入。 •(2)本实验中延时子程序采用指令循环来实现。 延时=机器周期*指令所需机器周期数*循环次数
一个实验告诉你灯泡是怎么亮的
⼀个实验告诉你灯泡是怎么亮的在⽣活中,我们经常看到家⾥和教室⾥的电灯,在打开开关后就能亮起来。
那么,它是如何亮起来的呢?今天就跟着爆爆⼀起来做第⼀个电学⼩实验,搭⼀条电能⾛通的路,让⼩电珠遇到电后,发出温暖的光吧!互通之路因电⽽亮材料开关/电池盒/灯座/极⽚/⼩电珠导线/⽛签/塑料棒/铁丝/铝丝步骤-1-弯曲⼀⽚极⽚从上插⼊灯座内的⼀条缝内反向拉伸在底部拉紧折弯-2-另⼀⽚极⽚也从⼩缝中插⼊拉紧折弯(注意两⽚极⽚要保持⼀定的距离,不能接触)-3-插上⼩电珠-4--5-装上电池,接通开关观察⼩电珠是否发亮如果不亮,重新检查⼀下电线连接处-6-拆除开关-7-⽤连接开关的两个线头连接铁丝观察⼩电珠是否发亮-8-⼤家也可以将铁丝换成铝丝、塑料棒、⽛签等再试⼀试!看看哪种物体可以让电顺利流过去原理可以让电流通的路,就叫电路。
电路中所有的连接物均要有导电性。
电路连通时,电池提供的电可以从连接物⾥⾯“⾛过”,这叫做通路。
电路某⼀处断开,电流就不能“⾛过”,就像桥断了,电⽆法过河,这叫做断路或者开路。
⼩电珠亮起需要完整的电路。
实验中,在有开关的状态下,开关就像是⼀座可以拉起放下的吊桥,当闭上开关时,就相当于放下吊桥,电可以⾛过去,流向⼩电珠,使⼩电珠发光;当断开开关时,就相当于拉起吊桥,电⽆法通过,也就不能使⼩灯泡发光了。
拆除开关,就相当于把吊桥拆去了,装上可以导电的物体,才能像装上新桥⼀样,让电通过这座桥,流向⼩电珠。
实验中,铁丝和铝丝使⼩电珠亮起,说明它们可以导电;塑料棒和⽛签不能使⼩电珠亮起,说明它们不可以导电。
⼤家可以通过观察⼩电珠的状态,测试什么能导电(导体),什么不能导电(绝缘体)。
留⾔告诉爆爆⽣活中那些材料导电,哪些不导电哦!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Next:
Delay: MOV R6, #0A0H Lo1: MOV R7, #0FFH Lo2: DJNZ R7, LO2 DJNZ R6, LO1 RET
三、思考 •(1)改变延时常数,使发光二极管闪亮时间改变; •(2)修改程序,使发光二极管闪亮移位方向改变。
四、实验过程记录和描述 五、实验数据和处理六、实验心得和体会
(2)实验电路
A2区的P10—P17用8芯排线连接到D1区的LED1—LED8, 运行程序后,观察发光二极管闪亮移位情况。
(3)P1口亮灯程序
ORG 8000H MOV P1, #0FFH MOV A, #0FEH MOV P1, A LCALL Delay RL A SJMP Next
;送P1口, 灭 ;点亮L1发光二极管 ;调用延时子程序 ;左移位 ;循环 ;延时子程序
实验3---P1口亮灯实验
一、实验目的
•(1)学习P1口的使用方法; •(2)学习延时子程序的编写。
二、实验方案设计 必须有硬件设计图和 程序流程框图!
(1)实验内容
P1 口作为输出口,接八只发光二极管,编写程序, 使发光二极管循环点亮。 •(1)P1口对准双向口,每一位都可独立地定义为输出 或输入。 •(2)本实验中延时子程序采用指令循环来实现。 延时=机器周期*指令所需机器周期数*循环次数