1、单片机实验一1单片机实验(一) 姓名: 吕贺 班级: 信科11-1 学号: 08113533 日期: 2013.12.20实验一 单片机I/O口应用实验一、 实验目的1、掌握单片机P3口、P1口简单使用。2、学习延时程序的编写和使用。二、 实验内容 1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0L7按16进制加一的方式点亮发光二极管。三、 实验说明 1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉
2、电阻是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。2、延时子程序的延时计算。对于延时的程序 DELAY :MOV R6,#00H DELAY1:MOV R7,#80H DJNZ R7,$ DJNZ R6,DELAY1查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:((128+1)256)+1)2(126000000)=132.1ms。四、 实验原理图图2-1-1五、实验接线示意图 六、 实验程序框图 七、 实验步骤1、P3.3用插针连至K1,P1(P1.0P1
3、.7)用8芯线连至JL(L0L7)。2、调试、运行程序test1中的MCUIO.ASM。3、开关K1每拨动一次,L0L7发光二极管按16进制方式加一点亮。八、实验代码 ORG 0000h AJMP HA1S ORG 0030HHA1S: MOV A,#00HHA1S1: JB P3.3,HA1S1 MOV R2,#20H LCALL DELAY JB P3.3,HA1S1HA1S2: JNB P3.3,HA1S2 MOV R2,#20H LCALL DELAY JNB P3.3,HA1S2 INC A PUSH ACC MOV P1,A POP ACC AJMP HA1S1DELAY: PUS
4、H 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END九、实验体会这次虽然不是第一次用汇编语言编程,但是对其还是没有很深的印象,以至于刚开始时可以说错误百出,甚至是一些非常低级的错误。实验中写程序的时候,总是对某些指令不熟悉,然后不断地去翻书,这反映出对指令的不熟悉实验二 单片机I/O口应用实验一、 实验目的掌握工业顺序控制程序的简单编写和中断的使用。二、 实验预备知识 在工业控制
5、中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:注塑机工艺过程大致按“合模注射延时开模产伸产退”顺序动作,用单片机最易实现。三、 实验内容8031的P1.0P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。注意:实验说明 实验中用外部中断0,编中断服务程序的关键是: 1、保护进入中断时的状态,并在退出中断之前恢复进入中断前的状态。 2、必须在中
6、断程序中设定是否允许中断重入,即设置EX0位。一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。五、 实验原理图图2-2-1六、接线示意图 图2-2-2七、 实验程序框图图2-2-3七、 实验步骤1、P3.4连K1,P3.3连K2,P1.0P1.6分别连到L0L6,P1.7连SIN(在音频发生器区域,该区域中一跳线器连在LB位置)。2、K1开关拨在上面,K2拨在上面。3、调试、运行程序test2中的GYSX.ASM。4、K1拨至下面(低电平),各道工序应正常运行。5、K2拨至下面(低电平),应有声音报警(人为设置故障)。6、K2拨至上面(高电平)
7、,即排除故障,程序应从刚才报警的那道工序继续执行。八、实验代码 ORG 0000H AJMP 0030H ORG 0013H LJMP HA2S3 ORG 0030HHA2S: MOV P1,#0fFH ORL P3,#00HHA2S1: JB P3.4,HA2S1 ORL IE,#84H ORL IP,#04H MOV PSW,#00H MOV SP,#53HHA2S2: MOV P1,#081H ACALL HA2S7 MOV P1,#082H ACALL HA2S7 MOV P1,#084H ACALL HA2S7 MOV P1,#088H ACALL HA2S7 MOV P1,#090
8、H ACALL HA2S7 MOV P1,#0A0H ACALL HA2S7 MOV P1,#0C0H ACALL HA2S7 SJMP HA2S2HA2S3: MOV B,R2HA2S5: SETB P1.7 ACALL HA2S6 CLR P1.7 ACALL HA2S6 JNB P3.3,HA2S5 MOV R2,B RETI HA2S6: MOV R2,#06H ACALL DELAY RET HA2S7: MOV R2,#30H ACALL DELAY RET DELAY: PUSH 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2
9、,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END九、实验体会 本次实验利用单片机模拟了注塑机工艺过程:按“合模注射延时开模产伸产退”顺序动作。体会到了利用汇编程序编写顺序结构的程序的方法,同时我们有利用单片机的中断资源,体会到中断资源适合用在实际应用中的哪些地方。实验三 并行I/O接口8255应用一、 实验目的 了解8255芯片的结构及编程方法。二、 实验内容 用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB口输出显示。三、 实验说明 通过PA口接8个开关K1K
10、8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显示,拨动K1K8,PB口上接的8个发光二极管L0L7对应显示K1K8的状态。四、 实验接线图图2-3-1图2-3-2五、 实验程序框图六、 实验步骤 1、8255 芯片的PA(PA0PA7)插座用8芯线连接开关JK(K1K8)。2、8255 芯片的PB(PB0PB7)连接发光二极管JL(L0L7)。3、8255芯片的片选CS_8255插孔接译码输出Y0。4、调试、运行程序test3中8255.ASM。拨动开关,相对应的发光二极管显示其状态。七、实验代码 org 0000h ajmp main org 0030hmain:mov s
11、p,#60h mov dptr,#8003h mov a, #90h movx dptr,am: mov dptr,#8000h movx a,dptr lcall delay mov dptr,#8001h movx dptr,a lcall delay ajmp m delay: mov r6,#00h djnz r6,$ ret end八、实验体会 本次实验我们利用了8255芯片和51单片机实现了通过开关控制8个led小灯的亮灭。学习巩固了8255芯片的编程方法和使用规范。实验四 简单I/O口扩展实验一、 实验目的 学习在单片机系统中扩展简单I/ O口的基本方法。二、 实验内容 MCS5
12、1外部扩展空间很大,但数据总线口和控制信号的负载能力是有限的,若需要扩展的芯片较多,则MCS51总线口负载过重,74LS244是一个输入扩展口,同时也是一个单向驱动器,以减轻总线负担。74LS273作为同向输出口,控制8个发光二极管的亮灭。三、 实验原理图图2-4-1四、实验接线示意图图2-4-2五、实验程序框图六、 实验步骤 1、74LS244的输入端PI0PI7接JK(K1K8),74LS273的输出端PO0PO7接JL(L0L7),CS_244接Y2,CS_273接Y3。2、调试、运行程序test4中的IO.ASM。3、拨动K1K8,观察L0L7点亮情况。七、 实验代码 ORG 0H A
13、JMP 0030H ORG 0030HHA3S: MOV SP,#60H ;? MOV DPTR,#0a000H MOVX A,DPTR MOV R2,#02H LCALL DELAY MOV DPTR,#0b000H MOVX DPTR,A MOV R2,#02H LCALL DELAY nop SJMP HA3SDELAY: PUSH 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2,DELAY3 POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET END八、 实验体会 经过这几次对汇编语言的使用,慢慢的发现掌握了汇编语言的应用。不在像刚开始那样错的那么离谱。这次实验中我学习了在单片机系统中扩展简单I/ O口的基本方法。MCS51外部扩展空间很大,但数据总线口和控制信号的负载能力是有限的,若需要扩展的芯片较多,则MCS51总线口负载过重,74LS244是一个输入扩展口,同时也是一个单向驱动器,以减轻总线负担。74LS273作为同向输出口,控制了8个发光二极管的亮灭。实验虽然简单,但是其意义是巨大的,它给我们提供了一种扩展io口的方法,以增加单片机的负载能力。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1