您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 4个实验单片机的实验指导
实验一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,则一个机器周期为12÷6.144us即1÷0.512us。现要写一个延时0.1s的程序,可大致写出如下:MOVR7,#X(1)DEL1:MOVR6,#200(2)DEL2:DJNZR6,DEL2(3)DJNZR7,DEL1(4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10?指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间X=(0.1××10?-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。五、实验原理图:六、实验步骤:执行程序1(T1_1.ASM)时:P1.0~P1.7接发光二极管L1~L8。执行程序2(T1_1.ASM)时:P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS(0由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。七、程序框图:八、实验程序1、循环点亮发光二极管2、通过发光二极管将P1口的状态显示实验二AT89S52在系统编程实验一、实验目的:1.学习AT89S52在系统编程的方法。2.学习P1口既做为输入口又做为输出口的使用方法。3.学习数据输入、输出程序的设计方法。二、实验设备:EL-MUT-III型单片机实验箱、AT89S52CPU模块三、实验原理:AT89S52是一种低功耗高性能CMOS8位微控制器,与MCS—51系列单片机兼容,具有8K在系统可编程Flash存储器。编程方法:1、双击IspPgm.exe打开AT-ISP软件2、左击界面芯片选择窗口的下拉箭头,选择AT89S52。3、导入hex文件到缓冲区(左击界面上的“OpenFile”按钮,选择需要写入的hex文件。4、向芯片导入文件(左击界面上的“Write”按钮,向AT89S52导入程序。5、写入程序后退出。注意:对AT89S52编程时,应将模块中的开关拨到TEST位置,编程结束后,将开关拨到EXP位置。四、实验原理图:五、实验步骤:平推开关的输出K1接P1.0;K2接P1.1;发光二极管的输入LED5接P1.2;LED6接P1.3;LED7接P1.4;LED8接P1.5。取出AT89S52CPU模块,连接电源并使AT89S52复位。运行实验程序,K1做为左转弯开关,K2做为右转弯开关。LED7、LED8做为右转弯灯,LED5、LED6做为左转弯灯。结果显示:1:K1接高电平K2接低电平时,右转弯灯(LED7、LED8)灭,左转弯灯(LED5、LED6)以一定频率闪烁;2:K2接高电平K1接低电平时,左转弯灯(LED5、LED6)灭,右转弯灯(LED7、LED8)以一定频率闪烁;3:K1、K2同时接低电平时,发光二极管全灭;4:K1、K2同时接高电平时,发光二极管全亮。七、程序设计:实验三键盘实验一、实验目的:1.掌握8255A编程原理。2.了解键盘电路的工作原理。3.掌握键盘接口电路的编程方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理:1.识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。本实验例程采用的是行反转法。行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。2.程序设计时,要学会灵活地对8255A的各端口进行方式设置。3.程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。实验题目利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。四、实验步骤:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。五、实验电路:六、程序框图实验四D/A转换实验一、实验目的:1.了解D/A转换的基本原理。1.了解D/A转换芯片0832的性能及编程方法。2.了解单片机系统中扩展D/A转换的基本方法。二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:利用DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波形轮流显示。四、实验原理:D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。取值范围为一个周期,采样点越多,精度就越高。本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。典型程序段如下:MOVDPTR,#PORTMOVA,#DATAMOVX@DPTR,AINCDPTRMOVX@DPTR,A其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。启动D/A。五、实验电路:六、实验步骤:1、DAC0832的片选CS0832接CS0,输出端OUT接示波器探头。2、将短路端子DS的1、2短路七、程序框图
本文标题:4个实验单片机的实验指导
链接地址:https://www.777doc.com/doc-2925177 .html