单片机EL型微机教学实验系统结构实验指导

上传人:红** 文档编号:167553559 上传时间:2022-11-03 格式:DOC 页数:55 大小:9.15MB
返回 下载 相关 举报
单片机EL型微机教学实验系统结构实验指导_第1页
第1页 / 共55页
单片机EL型微机教学实验系统结构实验指导_第2页
第2页 / 共55页
单片机EL型微机教学实验系统结构实验指导_第3页
第3页 / 共55页
点击查看更多>>
资源描述
实验指导书山东英才学院计算机电子信息工程学院目录第一部分 系统介绍3一、整机介绍3二、系统特点3三、8051单元概述4第二部分 8051调试软件的使用7一、主窗口简介7二、编辑程序8三、编译调试8第三部分 基本试验9实验一 P1口实验9实验(一)P1口实验一9实验(二)P1口实验二12实验二 简单I/O口扩展实验15实验(一)简单I/O口扩展实验一15实验(二)简单I/O口扩展实验二18实验三 中断实验20实验四 定时器实验24实验五 8255A可编程并行接口实验27实验(一)8255A可编程并行接口实验一27实验(二)8255A可编程并行接口实验二29实验六 数码显示实验35实验七 D/A转换实验41实验八 A/D转换实验46实验九 存储器扩展实验50实验十 LCD显示实验52山东英才学院第一部分 系统介绍一、整机介绍1、EL型微机教学实验系统结构EL-MUT-III 型微机教学实验系统由电源、系统板、CPU板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。系统板的结构简图见下图。 二、系统特点EL-MUT-III 型微机/单片机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。系统具有以下特点:1、 CPU可选用80C31、8086、80C196中任一种CPU,系统功能齐全,涵盖了微机/单片机教学实验课程的大部分内容。2、 系统采用开放式模块化结构设计,通过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。3、 配有两块可编程器件:EPM7128被系统占用。另一块EPM7032供用户实验用。两块器件皆可通过JTAG接口在线编程。使用十分方便。4、 灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开关电源,提供所需的+5V,12V,其输入为220V的交流电。5、 系统的联机运行模式:配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,均为中文多窗口界面。调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试与一体,每项功能均为中文下拉菜单,简明易学。经常使用的功能均备有热键,这样可以提高程序的调试效率。8051调试软件不仅支持汇编语言,而且还支持C语言编辑调试。6、 系统的单机运行模式:系统在没有与计算机连接的情况下,自动运行在单机模式,在此模式下,用户可通过键盘输入运行程序(机器码),和操作指令,同时将输入信息及操作的结果在LED数码管上显示出来。7、 系统功能齐全,可扩展性强。本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。三、8051单元概述1)、微处理器:i80c31,它的P1口、P3口皆对用户开放,供用户使用。2)、时钟频率:6.0MHz3)、存储器:程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM1(程序存储器6264)8k供用户下载实验程序,可扩展达32k;RAM2(数据存储器6264)8k供用户程序使用,可扩展达32k。(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)。(见图1-1:存储器组织图)。在程序存储器中,0000H-2FFFH为监控程序存储器区,用户不可用,4000H-5FFFH为用户实验程序存储区,供用户下载实验程序。数据存储器的范围为:6000H-7FFFH,供用户实验程序使用。注意:因用户实验程序区位于4000H-5FFFH,用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。例如:外部中断0的原中断入口为0003H,用户实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。4)、可提供的对8051的基本实验 为了提高微机教学实验质量,提高实验效率,减轻主讲教师和实验教师的劳动强度,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足各类学校,不同层次微机实验与培训要求。可提供的实验如下:(1)、8051P1口输入、输出实验(2)、简单的扩展输入、输出实验(3)、8051定时器/计数器实验(4)、8051外中断实验(5)、8279键盘扫描、LED显示实验(6)、8255并行口输入、输出实验(7)、交通灯控制实验(8)、8259中断实验(10)、A/D转换实验(11)、D/A转换实验(12)、存储器扩展实验用户I/O区FFFFH系统I/O区CFEFH用户I/O区CFBFHRAM2用户实验程序区供用户下载实验程序FFFHRAM1用户实验程序数据区4FFFH ROM系统监控程序区2FFFH0000H图1:存储器系统组织图中断名称 8051原中断程序入口 用户实验程序响应程序入口外中断0 0003H 4003H定时器0中断 000BH 400BH外中断1 0013H 4013H定时器1中断 001BH 401BH串行口中断 0023H 4023H表1-1:用户中断程序入口表5)、资源分配本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程。此单元也分两部分:一部分为系统CPLD,完成系统器件,如监控程序存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0-CS5)给用户使用,他们的地址固定,用户不可改变。具体的对应关系见表1-2。另一部分为用户CPLD,它完全对用户开放,用户可在一定的地址范围内,进行编译码,输出为插孔LCS0-LCS7,用户可用的地址范围见表12,注意,用户的地址不能与系统相冲突,否则将导致错误。 地址范围 输出孔/映射器件 性质(系统/用户) 0000H-2FFFH 监控程序存储器 系统 * 3000H-3FFFH 数据存储器 系统 * 4000H-7FFFH 用户程序存储器 系统 * 8000H-CFDFH LCS0-LCS7 用户 CFE0H PC机串行通讯芯片8250 系统 * CFE8H 显示、键盘芯片8279 系统 CFA0H-CFA7H CS0 系统 CFA8H-CFAFH CS1 系统 CFB0H-CFB7H CS2 系统 CFB8H-CFBFH CS3 系统 CFC0H-CFC7H CS4 系统 CFC8H-CFCFH CS5 系统 CFD0H-FFFFH LCS0-LCS7 用户注:系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。 表12:CPLD地址分配表第二部分 8051调试软件的使用一、主窗口简介主窗口共有以下几个区域组成:最上部为此集成开发环境的程序名称及打开的文件名称(当没有文件打开时,则无文件名称显示),一般为蓝底白字。它的下部为主菜单,主菜单的项目与工作状态有关:当没有文件打开或运行时,只有三项:文件、查看、帮助。而当有文件打开时,则共有九项:文件、编辑、查看、编译、调试、控制对象、选项、窗口、帮助(主菜单的功能见功能详解)。在主菜单的下部为工具栏,自左至右为:新建C文件()、新建汇编文件()、打开(文件)()、文件保存(存盘)()、剪切()、复制()、粘贴()、C程序编译命令(Ctrl+F7)()、C程序连接命令(Shift+F7)()、C程序编译连接命令(F3)()、汇编命令(F3)()、开始调试(F5)()、停止调试Shift+F5()、程序复位Ctrl+F2()、设置/清除断点Ctrl+F8()、跟踪调试F7()、单步执行F8()、执行到光标行F4()、运行F9()、反汇编窗口Alt+5()、寄存器窗口Alt+2()、内部数据存储器窗口Alt+3()、外部数据存储器窗口Alt+4、帮助()这些工具并不是同时有效。在主界面的中央的大面积区域为文件的编辑区,可打开汇编文件、C文件及其他形式的文本文件。在主界面的下部为状态栏,最左边为命令/提示栏,显示当前正在执行的命令或工作状态,当光标指向一个按钮时,此栏也显示此按钮的功能。第二栏为光标在编辑区域中所处的行、列位置,右边的两栏分别显示当前键盘字母键的大/小写状态及小键盘的状态(数字/命令)二、编辑程序主窗口下。在“文件”中选择“新建”菜单,可进行C语言编辑或汇编语言编辑。也可以选择“打开”,打开现有的实验程序(选择后缀.ASM或.C,可分别打开汇编语言程序和C语言实验程序)。三、编译调试程序编辑完成后,即可进行编译调试。主菜单中有“编译”栏,可对当前文件进行编译。“调试”栏可进行系统复位及其他调试手段。“选项”栏“通讯串口选项”可进行通讯口设置。“查看”栏可打开内存、外存、寄存器等窗口,通过修改存储器地址可查看不同地址区的内容,也可以对其进行修改。第三部分 基本试验实验一 P1口实验实验(一)P1口实验一一、实验目的:1 学习P1口的使用方法。2 学习延时子程序的编写和使用。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:1 P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2 P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。四、实验原理: P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。本实验系统晶振为6.144MHZ,则一个机器周期为126.144us即10.512us。现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1) DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要10.256us,现求出X值: 10.256+X(10.256+20010.256+10.256)=0.110指令(1) 指令(2) 指令(3) 指令(4)所需时间 所需时间 所需时间 所需时间X=(0.110-10.256)/(10.256+20010.256+10.256)=127D=7FH经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。五、实验原理图: P1口输出实验 P1口输入实验六、实验步骤:执行程序1(T1_1.ASM)时:P1.0P1.7接发光二极管L1L8。执行程序2(T1_1.ASM)时:P1.0P1.7接平推开关K1K8;74LS273的O0O7接发光二极管L1L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSOCS7相应的片选地址请查看第一部分系统资源,以后不赘述)。七、程序框图: 循环点亮发光二极管 通过发光二极管将P1口的状态显示八、参考程序:1、循环点亮发光二极管NAME T1_1 ;P1口输实验CSEG AT 0000H LJMP STARTCSEG AT 4100HSTART: MOV A,#0FEHLOOP: RL A ; 左移一位,点亮下一个发光二极管 MOV P1,A LCALL DELAY;延时 0.1秒 JMP LOOPDELAY: MOV R1,#127 ; 延时0.1秒DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 RET END2、通过发光二极管将P1口的状态显示NAME T1_2 ;P1口输入实验OUT_PORTEQU0CFA0HCSEG AT 0000H LJMP STARTCSEG AT 4100HSTART: MOV P1,#0FFH ;复位P1口为输入状态 MOV A,P1 ;读P1口的状态值入累加器A MOV DPTR,#OUT_PORT ;将输出口地址赋给地址指针DPTR MOVX DPTR,A ;将累加器A的值赋给DPTR指向的地址 JMP START ;继续循环监测端口P1的状态 END实验(二)P1口实验二 一、实验目的:1 学习P1口既做输入又做为输出的使用方法。2 学习数据输入、输出程序的设计方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理:P1口的使用方法这里不讲了。有兴趣者不妨将实验例程中的“SETB P1.0, SETB P1.1”中的“SETB”改为“CLR”看看会有什么结果。另外,例程中给出了一种N路转移的常用设计方法,该方法利用了JMP A+DPTR的计算功能,实现转移。该方法的优点是设计简单,转移表短,但转移表大小加上各个程序长度必须小于256字节。四、实验原理图:P1口输入、输出实验五、实验步骤:平推开关的输出K1接P1.0;K2接P1.1;发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。运行实验程序,K1做为左转弯开关,K2做为右转弯开关。L5、L6做为右转弯灯,L1、L2做为左转弯灯。结果显示:1:K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;2:K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、L6)以一定频率闪烁;3:K1、K2同时接低电平时,发光二极管全灭;4:K1、K2同时接高电平时,发光二极管全亮。六、参考程序:NAME T2 ;P1口输入输出实验CSEG AT 0000H LJMP STARTCSEG AT 4100HSTART: SETB P1.0 SETB P1.1 ;用于输入时先置位口内锁存器 MOV A,P1 ANL A,#03H ;从P1口读入开关状态,取低两位 MOV DPTR,#TAB ;转移表首地址送DPTR MOVC A,A+DPTR JMP A+DPTRTAB: DB PRG0-TAB DB PRG1-TAB DB PRG2-TAB DB PRG3-TABPRG0: MOV P1,#0FFH ;向P1口输出#0FFH,发光二极管全灭 ;此时K1=0,K2=0 JMP STARTPRG1: MOV P1,#0F3H ;只点亮L5、L6,表示左转弯 ACALL DELAY ;此时K1=1,K2=0MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY ;延时0.5秒 JMP STARTPRG2: MOV P1,#0CFH ;只点亮L7、L8,表示右转弯 ACALL DELAY ;此时K1=0,K2=1 MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY JMP STARTPRG3: MOV P1,#00H ;发光二极管全亮,此时K1=1,K2=1JMP START;DELAY: MOV R1,#5 ;延时0.5秒DEL1: MOV R2,#200DEL2: MOV R3,#126DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET; END七、程序框图: 实验二 简单I/O口扩展实验实验(一)简单I/O口扩展实验一交通灯控制实验一、实验目的:1 学习在单片机系统中扩展简单I/O接口的方法。2 学习数据输出程序的设计方法。3 学习模拟交通灯控制的实现方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。四、实验原理:要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。五、实验原理图六、实验步骤:74LS273的输出O0O7接发光二极管L1L8,74LS273的片选CS273接片选信号CSO,此时74LS273的片选地址为CFA0HCFA7H之间任选。运行实验程序,观察LED显示情况是否与实验内容相符。七、程序框图:八、参考程序:T3.ASMNAME T3 ;I/O口扩展实验一PORT EQU 0CFA0H ;片选地址CS0CSEG AT 0000H LJMP STARTCSEG AT 4100HSTART: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭 ACALL DISP ;调用273显示单元(以下雷同) ACALL DE3S ;延时3秒LLL: MOV A,#12H ;东西路口绿灯亮;南北路口红灯亮 ACALL DISP ACALL DE10S ;延时10秒 MOV A,#10H ;东西路口绿灯灭;南北路口红灯亮 ACALL DISP MOV R2,#05H ;R2中的值为黄灯闪烁次数TTT: MOV A,#14H ;东西路口黄灯亮;南北路口红灯亮 ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#10H ;东西路口黄灯灭;南北路口红灯亮 ACALL DISP ACALL DE02S ;延时0.2秒 DJNZ R2,TTT ;返回TTT,使东西路口黄灯闪烁五次 MOV A,#11H ;两个红灯亮,黄灯、绿灯灭 ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#21H ;东西路口红灯亮;南北路口绿灯亮 ACALL DISP ACALL DE10S ;延时10秒 MOV A,#01H ;东西路口红灯亮;南北路口绿灯灭 ACALL DISP MOV R2,#05H ;黄灯闪烁五次GGG: MOV A,#41H ;东西路口红灯亮;南北路口黄灯亮 ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#01H ;东西路口红灯亮;南北路口黄灯灭 ACALL DISP ACALL DE02S ;延时0.2秒 DJNZ R2,GGG ;返回GGG,使南北路口;黄灯闪烁五次 MOV A,#03H ;两个红灯亮,黄灯、绿灯灭 ACALL DISP ACALL DE02S ;延时0.2秒 JMP LLL ;转LLL循环DE10S: MOV R5,#100 ;延时10秒 JMP DE1DE3S: MOV R5,#30 ;延时3秒 JMP DE1DE02S: MOV R5,#02 ;延时0.2秒DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RETDISP: MOV DPTR,#PORT ;273显示单元CPL AMOVX DPTR,ARET END实验(二)简单I/O口扩展实验二一、实验目的:1 学习在单片机系统中扩展简单I/O口的方法。2 学习数据输入,输出程序的编制方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理:MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。程序中加了一段延时程序,以减少总线口读写的频繁程度。延时时间约为0.01秒,不会影响显示的稳定。四、实验内容:利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。五、实验原理图:简单I/O实验2六、实验步骤:1 74LS244的IN0IN7接开关的K1K8,片选信号CS244接CS1。2 74LS273的O0O7接发光二极管的L1L8,片选信号CS273接CS2。3 编程、全速执行。4 拨动开关K1K8,观察发光二极管状态的变化。七、程序框图:八、参考程序:NAME T4 ;I/O口扩展实验CSEG AT 0000H LJMP STARTCSEG AT 4100HINPORT EQU 0CFA8H ;74LS244端口地址OUTPORT EQU 0CFB0H ;74LS273端口地址START: MOV DPTR,#INPORTLOOP: MOVX A,DPTR ;读开关状态 MOV DPTR,#OUTPORT MOVX DPTR,A ;显示开关状态 MOV R7,#10H ;延时DEL0: MOV R6,#0FFHDEL1: DJNZ R6,DEL1 DJNZ R7,DEL0 JMP STARTEND实验三 中断实验 有急救车的交通灯控制实验一、实验目的:1 学习外部中断技术的基本使用方法。2 学习中断处理程序的编程方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:在实验三的内容的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。四、实验原理:交通灯的燃灭规律见实验三。本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作: MOV A,#0F0H (0) MOVX R1,A (1) MOV SAVE,A (2)程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。五、实验原理图:(同实验二(一))六、实验步骤:74LS273的输出O0O7接发光二极管L1L8,74LS273的片选CS273接片选信号CS2,此时74LS273的片选地址为CFB0HCFB7H之间任选。单脉冲输出端P-接CPU板上的INT0。七、程序框图: 主程序框图 中断程序框图八、参考程序:NAME T5 ;中断控制实验OUTPORT EQU 0CFB0H ;端口地址SAVE EQU 55H ;save保存从端口cfa0输出的数据CSEG AT 0000H LJMP STARTCSEG AT 4003H LJMP INTCSEG AT 4100HSTART: SETB IT0 SETB EX0 SETB EA MOV A,#11H ;置首显示码 MOV SAVE,A ;保存 ACALL DISP ;显示输出 ACALL DE3S ;延时3秒LLL: MOV A,#12H ;东西路口绿灯亮,南北路口红灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#10H ;东西路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2,#05H ;东西路口黄灯闪烁5次TTT: MOV A,#14H MOV SAVE,A ACALL DISP ACALL DE02S MOV A,#10H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,TTT MOV A,#11H ;红灯全亮 MOV SAVE,A ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#21H ;东西路口红灯亮,南北路口绿灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#01H ;南北路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2,#05H ;南北路口黄灯闪烁5次GGG: MOV A,#41H MOV SAVE,A ACALL DISP ACALL DE02S MOV A,#01H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,GGG MOV A,#11H ;红灯全亮 MOV SAVE,A ACALL DISP ACALL DE02S ;延时0.2秒 JMP LLL ;转LLL循环DE10S: MOV R5,#100 ;延时10秒 JMP DE1DE3S: MOV R5,#30 ;延时3秒 JMP DE1DE02S: MOV R5,#02 ;延时0.2秒DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RETINT: CLR EAPUSH ACC ;中断处理 PUSH PSW MOV A,R5 PUSH ACC MOV A,#11H ;红灯全亮,绿、黄灯全灭 ACALL DISP DEL10S: MOV R3,#100 ;延时10秒 DEL1: MOV R2,#200DEL2: MOV R5,#126DEL3: DJNZ R5,DEL3 DJNZ R4,DEL2 DJNZ R3,DEL1 MOV A,SAVE ;取SAVE中保存数据输出到cfa0端口 ACALL DISP POP ACC ;出栈 MOV R5,A POP PSW POP ACC SETB EA ;允许外部中断 RETIDISP: MOV DPTR,#OUTPORTCPL A MOVX DPTR,A RETEND实验四 定时器实验循环彩灯实验一、实验目的:1 学习8031内部计数器的使用和编程方法。2 进一步掌握中断处理程序的编写方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理:1 定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。时间常数可按下述方法确定:机器周期=12晶振频率=12/(610)=2us设计数初值为X,则(2e+16-X)210(-6)=0.1,可求得X=15535化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH2 初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。3 设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。四、实验题目由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:L1、L2、L8依次点亮;L1、L2、L8依次熄灭;L1、L2、L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。五、实验电路: 六、实验步骤:P1.0P1.7分别接发光二极管L1L8即可。七、参考程序:NAME T6 ;定时器实验OUTPORT EQU 0CFB0HCSEG AT 0000H LJMP STARTCSEG AT 401BH ;定时器/计数器1中断程序入口地址 LJMP INTCSEG AT 4100HSTART: MOV A,#01H ;首显示码 MOV R1,#03H ;03是偏移量,即从基址寄存器到表首的距离 MOV R0,#5H ;05是计数值 MOV TMOD,#10H ;计数器置为方式1 MOV TL1,#0AFH ;装入时间常数 MOV TH1,#03CH ORL IE,#88H ;CPU中断开放标志位和定时器 ;1溢出中断允许位均置位 SETB TR1 ;开始计数LOOP1: CJNE R0,#00,DISP MOV R0,#5H ;R0计数计完一个周期,重置初值 INC R1 ;表地址偏移量加1 CJNE R1,#31H,LOOP2 MOV R1,#03H ;如到表尾,则重置偏移量初值LOOP2: MOV A,R1 ;从表中取显示码入累加器 MOVC A,A+PC JMP DISP DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH DB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH DB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH DB 0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00HDISP: MOV P1,A ;将取得的显示码从P1口输出显示 JMP LOOP1INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#0AFH ;重置时间常数初值 MOV TH1,#03CH SETB TR1 ;开始计数 RETI ;中断返回END实验五 8255A可编程并行接口实验实验(一)8255A可编程并行接口实验一一、实验目的:1 了解8255A芯片的结构及编程方法。2 掌握通过8255A并行口读取开关数据的方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理: 设置好8255A各端口的工作模式。实验中应当使三个端口都工作于方式0,并使A口为输出口,B口为输入口。四、实验内容:利用8255A可编程并行接口芯片,重复实验四的内容。实验可用B通道作为开关量输入口,A通道作为显示输出口。五、实验电路:六、实验步骤: 8255A的PA0PA7接发光二极管L1L8;PB0PB7接开关K1K8;片选信号8255CS接CS0。七、程序框图:八、参考程序: NAME T7 ;8255A实验一CSEG AT 0000HLJMP STARTCSEG AT 4100HPA EQU 0CFA0HPB EQU 0CFA1HPCTL EQU 0CFA3HSTART: MOV DPTR,#PCTL ;置8255A控制字,A、B、C口均工作 ;方式0,A、C口为输出,B口为输入 MOV A,#82H MOVX DPTR,ALOOP: MOV DPTR,#PB ;从B口读入开关状态值 MOVX A,DPTR MOV DPTR,#PA ;从A口将状态值输出显示 MOVX DPTR,A MOV R7,#10H ;延时DEL0: MOV R6,#0FFHDEL1: DJNZ R6,DEL1 DJNZ R7,DEL0 JMP LOOPEND实验(二)8255A可编程并行接口实验二 键盘实验一、实验目的:1 掌握8255A编程原理。2 了解键盘电路的工作原理。3 掌握键盘接口电路的编程方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理: 1识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。本实验例程采用的是行反转法。行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。2程序设计时,要学会灵活地对8255A的各端口进行方式设置。3程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。实验题目利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0F),用发光二极管将该代码显示出来。四、实验步骤:将键盘RL10RL17接8255A的PB0PB7;KA10KA12接8255A的PA0PA2;PC0PC7接发光二极管的L1L8;8255A芯片的片选信号8255CS接CS0。五、实验电路: 8255引脚图六、程序框图NAME t8 ;8255键盘实验PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL EQU PC0+1CSEG AT 4000H LJMP STARTCSEG AT 4100HSTART: MOV 42H,#0FFH ;42H中放显示的字符码,初值为0FFHSTA1: MOV DPTR,#PCTL ;设置控制字,ABC口工作于方式0 ;AC口输出而B口用于输入 MOV A,#82H MOVX DPTR,A
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 其他分类 > 论文指导


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!