《8051初学实验教程系列一.doc》由会员分享,可在线阅读,更多相关《8051初学实验教程系列一.doc(11页珍藏版)》请在课桌文档上搜索。
1、实验一 :扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器62256进行读写操作。二.实验目的1学习片外存储器扩展方法。2学习数据存储器不同的读写方法。三.实验电路与连线将P1.0接至L1。CS256连GND孔。四.实验说明1单片机系统中,对片外存贮器的读写操作是最根本的操作。用户藉此来熟悉MCS51单片机编程的根本规那么、根本指令的使用和使用本仿真实验系统调试程序的方法。用户编程可以参考例如程序和流程框图。本例如程序中对片外存贮器中一固定地址单元进行读写操作,并比拟读写结果是否一致。不一致那么说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段本例如程序通过熄
2、灭一个发光二极管来表示出错。读写数据的选用,本例采用的是550101,0101与AA1010,1010。一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。2在I状态下执行MEM1程序,对实验机数据进行读写,假设L1灯亮说明RAM读写正常。3也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000 55,SPACE, 屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。注:
3、SX是实验机对外部数据空间读写命令。4本例中,62256片选接地时,存储器空间为00007FFFH。五.实验程序框图实验例如程序流程框图如下:六.实验源程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM读写地址MOV A,#55H ;测试的数据一MOV B,AMOVX DPTR,A ;写外部RAMMOVX A,DPTR ;读外部RAMXRL A,B ;比拟读回的数据JNZ ERRORMOV A,#0AAH ;测试的数据二MOV B,AMOVX DPTR,AMOVX A,DPTRXRL A,BJZ PAS
4、S ;测试通过ERROR: SETB P1.0 ;测试失败,点亮LEDSJMP $PASS: CPL P1.0 ;LED状态(亮/灭)转换MOV R1,#00H ;延时DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循环测试END实验二 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2.P1口做输入口,接八个扭子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。二.实验目的1.学习P1口的使用方法。2.学习延时子程序的编写和使用。三.实验
5、电路与连线实验三 P3口输出控制继电器实验一.实验要求利用P3.5输出上下,控制继电器的开合,实现对外部装置的控制。二.实验目的掌握继电器控制的根本方法和经验。三.实验电路与连线P3.5 接JD。R-MID接L1灯,R-CLOSE接GND。四.实验说明现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件电动机,电磁铁,电灯等,另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的平安。电子继电器便能完成这一桥梁作用。继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。
6、本电路的控制端为JD,当JD为高电平时,继电器不工作,当JD为低电平时,继电器工作,常开触点吸合。执行时,对应的LED将随继电器的开关而亮灭。五.实验程序框图六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HJD: CPL P3.5 ;P3.5取反LCALL DELAY ;延时NOPSJMP JDDELAY: ;延时子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND实验四 简单I/O实验交通灯控制
7、一.实验要求以74LS273作为输出口,控制4个双色LED灯可发红,绿,黄光,模拟交通灯管理。二.实验目的1.学习在单片机系统中扩展简单I/O接口的方法。2.学习数据输出程序的设计方法。3.学习模拟交通灯控制的方法。4.学习双色灯的使用。三.实验电路与连线PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。CS273 接8300H。四.实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状
8、态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。五.实验程序框图程序框图: 六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯LCALL STATUS2 ;南北绿灯闪转黄
9、灯,东西红灯LCALL STATUS3 ;南北红灯,东西绿灯LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLESTATUS0: ;南北红灯,东西红灯MOV DPTR,#8300HMOV A,#0FHMOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS1: ;南北绿灯,东西红灯MOV DPTR,#08300HMOV A,#5AH ;南北绿灯,东西红灯MOVX DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS2: ;南北绿灯闪转黄灯,东西红灯MOV DPTR,#8300HMOV R3,#03H
10、 ;绿灯闪3次FLASH: MOV A,#5FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#5AHMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#0AH ;南北黄灯,东西红灯MOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS3: ;南北红灯,东西绿灯MOV DPTR,#8300HMOV A,#0A5HMOVX DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS4: ;南北红灯,东西绿灯闪转黄灯MOV DPTR,#8300HM
11、OV R3,#03H ;绿灯闪3次FLASH1: MOV A,#0AFHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#0A5HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#05H ;南北红灯,东西黄灯MOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYNOPRETDELAY: ;延时子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延时 100 mSDJNZ 2,D
12、ELAY1POP 0POP 1POP 2RETEND实验一时,P1.0-P1.7接L1-L8。实验二时,P1.0-P1.7接K1-K8,PO0-PO7接L1-L8。CS273接8300H。四.实验说明1.P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K40K,故不会对外部输入产生影响。假设不先对它置高,且原来是低电平,那么MOS管导通,读入的数据是不正确的。2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1
13、,$DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为1211.0592MHz,所以该段程序执行时间为:0B31256121211059200100.002mS五.实验程序框图主程序框图(1): 程序框图(2):六.1、主程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV A,#0FEHROTATE: MOV P1,A ;写 P1口RL A ;循环左移LCALL DELAY ;延时NOPSJMP ROTATEDELAY: ;延时子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND2、读P1口程序框ORG 0000HLJMP STARTORG 0040HSTART:MOV DPTR,#8300H ;并行输出口地址MOV P1,#0FFH ;因P1口是准双向口,所以把P1口作为;输入口时,应先置高电平.READ:MOV A,P1 ;读开关状态MOVX DPTR,A ;把读入的数据输出AJMP READEND11 / 11