单片机实验指导书打印版(机电1011、1012).doc_第1页
单片机实验指导书打印版(机电1011、1012).doc_第2页
单片机实验指导书打印版(机电1011、1012).doc_第3页
单片机实验指导书打印版(机电1011、1012).doc_第4页
单片机实验指导书打印版(机电1011、1012).doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验指导书(试用)学时:16班级:机电1011、1012指导教师:孙立香 盐城纺织职业技术学院机电系电气教学团队目 录实验一 单灯点亮1实验二 以循环的方法实现流水灯3实验三 中断控制流水灯5实验四 简易方波发生器7实验五 串行输出控制彩灯10实验六 双机通信12实验七 交通路口读秒计显示器14实验八 简易数字电压表16实验一 单灯点亮1、 实训目的1、 熟悉单片机I/O接口的线路连接。2、 熟悉仿真器的使用方法。3、 学习单片机I/O接口的控制方法。2、 课题要求用单片机的P1.0控制1只LED灯,实现其亮灭的变化,间隔0.2s。3、 背景知识1、 点亮原理控制LED灯的亮灭,是通过改变其两端电平的高低来实现的。针对图1.15所示电路,可以发现,该LED的阳极通过1只470的电阻接+5V电源,从硬件电路上保证其阳极电位始终为高电平“1”。因此,可以通过改变P1.0引脚的电平状态来控制灯的亮灭。具体方法如下。 (1) 从P1.0引脚输出高电平“1”,LED灭。 (2)从P1.0引脚输出低电平“0”,LED亮。 2、 从P1.0引脚输出高、低电平的方法 这是通过指令来实现的。如果使用了某条指令,CPU在执行该指令时就会完成相应的操作,通过指令能实现对单片机I/O接口或其他外部设备的控制。例如,SETB P1.0引脚输出高电平“1”,CLR P1.0表示从P1.0引脚输出低电平“0”。因此,从原理上讲,只要将上面两条指令输入单片机,就基本实现控制功能了。3、 点亮时间 灯亮或灭的持续时间可以通过一个专门的延迟子程序(子程序名为DELAY)来实现,在本次实训中只要学会调用它就可以了(用指令ACALL DELAY实现)。4、 硬件电路 如图1:单灯点亮电路 单灯点亮电路如图1所示。5、 软件设计 参考程序如下。 ORG 0000HSTART:CLR P1.0; ACALL DELAY SETB P1.0 ACALL DELAY AJMP STARTDELAY:MOV R5,#4 D1:MOV R6,#20D2:MOV R7,#123NOP DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END六、布置作业:完成实验报告实验二 以循环的方法实现流水灯1、 实训目的 1、进一步熟悉单片机I/O接口的线路连接。 2、学习循环程序的编程技术。2、 课题要求 用单片机的P1口接8只LED灯,做P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7的依次单灯点亮,间隔0.2s,接下来8只LED灯全灭1次,间隔0.2s;然后做P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0的依次单灯点亮,间隔0.2s,接下来8只LED灯全灭一次,间隔0.2s,再从开始状态循环,8只LED灯即呈现出流水灯的状态。3、 背景知识 循环程序用于需要多次反复执行的相同操作,因此在编制程序时,首先要确定的就是有哪些相同的操作可由循环体实现。在本实训中,用数据传送指令向P1.0P1.7一次送数,所以对送出数据的处理过程是相同的;延时时间是0.2s,这也是相同的,这两部分都可以用循环语句来实现。 在编制具体的循环程序时,要设置一个存放循环次数的寄存器,通常选用R2R7中的任一个来实现(R0和R1常用于寄存器间接寻址。当然,程序中如果不采用间接寻址方式,R0和R1也可用来存放循环次数)。程序每循环一次,循环次数寄存器的内容就要减1,当该寄存器的内容减到0时,表示循环结束,这两个过程可用DJNZ指令实现。4、 硬件电路图 2 流水灯电路 流水灯的硬件电路如图2所示。5、 软件设计 参考程序代码如下。 ORG 0000HSTART:MOV A,#0FFH MOV R0,#8 CLR CLOOP1:RLC A MOV P1,A ACALL DELAY DJNZ R0,LOOP1 MOV A,#0FFH MOV P1,A ACALL DELAY MOV A,#0FFH MOV R0,#8 CLR CLOOP2:RRC A MOV P1,A ACALL DELAY DJNZ R0,LOOP2 MOV A,#0FFH MOV P1,A ACALL DELAY AJMP STARTDELAY:MOV R5,#4 D1:MOV R6,#200 D2:MOV R7,#123 NOP DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END六、布置作业:完成实验报告实验三 中断控制流水灯1、 实训目的 1、学习外部中断的基本用法。 2、掌握中断处理程序的编制方法。 二、课题要求 在程序正常运行时,P1口的8个LED灯座单灯左移8次之后单灯右移7次,如此循环:中断时(即 INTO 按键按下)P1口的8个LED灯闪烁3次(即全亮、全灭3次)。 三、背景知识 1、中断程序的设计主要涉及开中断、设定优先级,若是外中断还涉及触发方式的设定。 2、在软件设计过程中,首先要对主程序和中断服务程序锁完成的任务进行划分。根据该课题所提出的要求,在主程序中完成的任务是8个LED灯循环左移、右移;在中断服务程序中应完成的功能是8个LED灯闪烁3次。 四、硬件电路图3 中断控制流水灯 流水灯电路的硬件结构如图3所示,引脚12的按键点动表示有中断请求发出。 五、参考程序 ORG 0000H LJMP START ORG 0003H LJMP INTO ORG 0100HSTART:MOV SP,#60H MOV IE,#881H ; 开INTO中断 SETB ITO ; INTO下降沿触发L1: MOV A,#0FFH ; 设初值 MOV R0,#8 ; 设定左移8次 CLR C ; 将CY清零L2: RLC A ; 带进位的位循环左移一位 MOV P1,A ; 送P1口,P1.0灯亮 ACALL DELAY ; 延时0.2s DJNZ R0,L2 ; 判断是否左移8次 MOV R0,#7 ; 移动7次L3: RRC A ; 带进位的位循环右移一位 MOV P1,A ; 送P1口 ACALL DELAY DJNZ R0,L3 ; 判断是否右移7次 AJMP L1 ; 重新开始DELAY:MOV R5,#4 ; 延时0.2sD1: MOV R6,#200D2: MOV R7,#123 NOP DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1RETINTO: PUSH PSW ; 保护PSW PUSH ACC ; 保护ACC值 SETB RS0 ; 使用工作寄存器1区 MOV A,#00H ; 使8个LED灯全亮 MOV R2,#6 ; 闪烁3次(全亮、全灭各3次)L4: MOV P1,A ; A值送出 LCALL DELAY ; 延时0.2s CPL A ; A值取反 DJNZ R2,L4 ; 判断是否闪烁3次 POP ACC ; 恢复保护的ACC值 POP PSW ; 恢复保护的PSW值 RETI ; 返回主程序 END六、布置作业:完成实验报告实验四 简易方波发生器1、 实训目的 1、掌握定时器初值的计算方法。 2、学习定时器的使用及定时中断程序的设计方法。 3、掌握方波信号发生器的设计方法。2、 课题要求 1、基本要求 利用定时/计数器T1,工作于方式0,采用查询方式,在P1.0引脚输出频率为500Hz的方波,并用示波器进行观察(晶振频率采用12MHz)。 2、较高要求 利用定时/计数器T1,工作于方式0,采用中断方式,在P1.0引脚输出频率为500Hz的方波,并用示波器进行观察(晶振频率采用12MHz)。3、 背景知识 1、方波产生原理 使P1.0引脚的输出状态定时翻转,则该端口能输出特定频率的方波。 2、方式0的时间常数初值 定时/计数器工作于方式0状态下,定时/计数的长度是13位。应用前面所给的时间常数初值的计算公式X=8192-t(fosc/12) 可以很方便地计算出时间常数初值,但在将其装入定时/计数器的TH、TL寄存器时,必须要注意:将计算结果的高8位装入TH1(或TH0)、低5位装入TL1(或TL0),这一环节非常容易出错。 以还实训T1方式0产生500Hz的方波(周期是2ms)为例,需要进行1ms的定时,时间常数初值为X=8192-110 -3(12106/12)=8192-1000=7192=1C18H=0001110000011000B以13位二进制数表示,是1110000011000B,则 (TH1)=00011000B=18H,(TH1)=11100000B=0E0H 定义TMOD=00000000B。4、 硬件电路图3 硬件电路 该实训的硬件电路十分简单,如图3所示。5、 参考程序 1、P1.0输出500Hz方波查询方式 ORG 0000H LJMP MAIN ; 跳转至主程序 ORG 0100H MAIN: MOV TMOD,#00H ; 置T1工作于方式0 MOV TH1,#0E0H ; 装入时间常数初值 MOV TL1,#18H SETB TR1 ; 起动T1LOOP: JNB TF1,LOOP ; 查询等待 CLR TF1 ; TF1清零 CPL P1.0 ; P1.0取反 MOV TH1,#0E0H ; 重新装入时间常数初值 MOV TL1,#18H AJMP LOOP ; 继续生成波形 END2、P1.0输出500Hz方波中断方式 ORG 0000H LJMP MAIN ; 跳转至主程序 ORG 001BH ; T1的中断入口地址 LJMP FANGBO ; 转至中断服务程序 ORG 0100HMAIN: MOV TMOD,#00H ; 置T1工作与方式0 MOV TH1,#0E0H ; 装入时间常数初值 MOV TL1,#18H SETB ET1 ; 允许T1中断 SETB EA ; CPU开中断 SETB TR1 ; 起动T1 SJMP $ ; 等待中断FANGBO: CPL P1.0 ; P1.0取反 MOV TH1,#0E0H ; 重新装入时间常数初值 MOV TL1,#18H RETI ; 中断返回 END六、布置作业:完成实验报告实验五 串行输出控制彩灯1、 实训目的 1、熟悉74LS164的使用,掌握串行口的基本应用方法。 2、学习串行口的扩展技术,掌握串行口相关寄存器的设定方法。 3、掌握串行口扩展显示器的电路设计原理和编程方法。2、 课题要求 利用一片AT889C51芯片,使之工作于方式0。在其串行口扩展一片74LS164控制8个LED灯,要求使用建表方式,控制LED灯闪烁,其闪烁规律为:8个LED灯座左移2次,闪烁2次;右移2次,闪烁2次。闪烁时间间隔0.2s。3、 背景故事 1、74LS164是串行输入并行输出移位寄存器,接在80C51的串行口,可以实现对8位并行数据的控制。 2、89C51与74LS164连接时,RXD(3.0)作为串行输出与74LS164的数据输入端(1、2)相连,TXD(3.1)作为移位脉冲输出与74LS164的时钟脉冲输入端(88)相连,74LS164的CLR端(9)通过电阻、电容接在电源和地上。4、 硬件电路图6 串行输出控制彩灯的硬件电路 串行输出控制彩灯的硬件电路如图6所示。5、 软件设计 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV SCON,#00H ; 串行口工作于方式0START: MOV DPTR,#TABLE ; 指向TABLE表LOOP: CLR A ; A清零 MOVC A,A+DPTR ; 从TABLE表取数据 CJNE A,#05H,NEXT ; 判断是否取到结束码05H,若 没有取到则跳到NEXT AJMP START ; 结束,重新开始NEXT: CPL A ; 所取数据取反 MOV SBUF,A ; 向串行口发送LOOP1: JBC T1,LOOP2 ; 判断是否发送结束,若是,则跳转到LOOP2 AJMP LOOP1 ; 若没结束,再检测LOOP2: ACALL DELAY ; 延时0.2s INC DPTR ; 指向下一地址 AJMP LOOPDELAY: MOV R7,#4 ; 延时 D1: MOV R6,#200D2: MOV R5,#123 NOP DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RETTABLE: DB 01H, 02H, 04H, 08H DB 10H, 20H, 40H, 80H DB 01H, 02H, 04H, 08H DB 10H, 20H, 40H, 80H DB 00H, 0FFH, 00H, 0FFH DB 80H, 40H, 20H, 10H DB 08H, 04H, 02H, 01H DB 80H, 40H, 20H, 10H DB 08H, 04H, 02H, 01H DB 00H, 0FFH, 00H, 0FFH DB 05H END六、布置作业:完成实验报告实验六 双机通信 一实训目的1. 学习双机通讯的常识。2掌握双机通讯程序状态字的设置方法3 学习双机通讯程序的编制方法二、课题要求 利用2片AT89C51芯片,一片用做发送器,记做89C51-T,用来读入P1口指标开关的状态;另一片用做接受器,记做89C51-R,用来接受89C51-T发送过来的指拨开关的状态,并将其在89C51-R输出的8个LED灯上显示出来 三、背景知识 1、双机通讯如果两个89C51单片机相距很近,将它们的串行口直接相连,即可实现双机通讯,采用图5.14所示的两个89C51串行口相连的方法,通信距离仅限于1.5以内。如果要增加通信距离,可以在两个单片机之间采用标准异步串行接口连接,如果用RS-232、CRS-422A及RS-485等串行接口总线 。2、通信协议在双机通信或多机通信时,通常要遵循一定的通信协议。所谓通信协议是通信双方的一种约定。它对数据格式、同步方式、传送速度、传送步骤。检/纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,通信协议也叫做通信控制规程或传输控制规程。本实训所用的两片AT89C51芯片,一片只用做输入,另一片只用做输出,采用8位异步通信、波特率1200bps。 四、硬件电路 双机通信的硬件电路如图4所示。图4 硬件电路 五、软件设计 参考程序代码如下。 发送程序:ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#50HMOV SCON,#40HMOV TMOD,#20HMOV TH1,#0E6HMOV TL1,#0E6HSETB TR1MOV 30H,#0FFHMOV P1,#0FFHREAD:MOV A,P1CJNE A,30H,KEYAJMP READKEY:MOV 30H,AMOV SBUF,AWAIT:JBC TI,READAJMP WAITEND接收程序:ORG 0000HAJMP MAINORG 0100HMAIN:MOV SP,#50HMOV SCON,#50HMOV TMOD,#20HMOV TH1,#0E6HMOV TL1,#0E6HSETB TR1READ:JBC RI,UARTAJMP READUART:MOV A,SBUFMOV P1,AAJMP READEND六、布置作业:完成实验报告实验七 交通路口读秒计显示器 一、实训目的 1.学习LED数码管的驱动方法2.掌握两位LED数码程序的编码方法3.掌握单片机基本I/O口的控制及应用二、课题要求 利用两只共阳极的LED数码管模拟交通路口的读秒显示器。由于交通路口的车流量不同,因此各路口的读秒器所显示的时间也不同。奔嗜血以60S为例。 要求用AT89C51芯片的P1.0P1.3经7447控制的七段显示器,P1.4P1.7经7447控制十位的七段显示器。三、背景知识1. 7447介绍七段LED数码显示器的输入信号应该是要显示数字的七段码,而入们习惯上将显示的数据直接以8421BCD码的形式由单片机是输出。这时就需要一个转换器件。它能将单片机输出的8421BCD码抓换成七段码,然后送给七段LED数码显示器。7447就是这样一个器件、图6.27是7447的引脚图。2.在介绍LED数码管结构与原理时,没有考虑I/O口的驱动能力,在实际使用时,如果I/O口的驱动电流不够,要外加驱动器。四、硬件结构交通路口读秒计时显示器的硬件电路如图5所示。采用静态扫描仪方式。注意:使用数码管作为显示器件时,应在数码管的每一段加装限流电阻。图5 硬件电路五、软件设计ORG 0000HAJMP MAINORG 0100HMAIN:MOV R4,#60HLOOP:MOV P1,R4LCALL DELAYMOV A,R4CLR CSUBB A,#01HJB AC,BCDMOV R4,AAJMP LOOPBCD:JC MAINSUBB A,#06HMOV R4,AAJMP LOOPDELAY:MOV R5,#50D1:MOV R6,#50D2:MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND六、布置作业:完成实验报告实验八 简易数字电压表一、实训目的 1、掌握Proteus中电压探针和电压表的使用方法。 2、通过制作简易电压表,学会A/D转换芯片在单片机应用系统中的硬件接口技术和编程方法。 3、了解ADC0809芯片的功能以及使用方法。二、课题要求利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。数字电压表利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。A/D转换器的精度影响数字万用表的准确度。本书采用ADC0808对输入模拟信号进行转换,控制核心AT89C51单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,进行实时仿真。设计的数字电压表可以测量0-5V的电压值,AT89C51为8位单片机,当ADC0808的输入电压为5V时,输出数字量值为FFH,故最大分辨率为0.0196V。如果要获得更高的精度,需采用12位、13位等高于8位的A/D转换器。数字电压表的显示部分可以增加BCD码调整程序来通过四位数码管显示其数据。本设计的显示偏差,可以通过校正0808的基准参考电压来解决,或采用软件编程来校正其测量值。本书用单片机AT89C51、ADC0808、和数码管构成一个简易数字电压表控制系统,在设计过程中通过Proteus仿真软件进行测试,具有电路简单、成本低、精度高、速度快和性能稳定等优点。 三、系统设计步骤 1、Proteus电路设计利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图6所示。图6 硬件电路图1)选取元器件: 单片机:AT89C52 电阻:RES 4位共阴极的数码管:7SEG-MPX4-CC A/D转换芯片:ADC0808(代替0809) 电位器:POT-LOG 瓷片电容:CAP 晶振:CRYSTAL 2)放置元器件、电源和地、连线、元器件属性设置。数字电压表的原理图如图所示,整个电路设计操作都在ISIS平台中进行。 电压探针和电压表。单机工具栏中中的电压探针按钮,连接到实时监控的电路上,以便仿真时观察该处电压的实时变化,如图所示。 单击工具栏中的按钮(虚拟仪器),在对象选择器列表中选择DC VOLTMETER(直流电压表),在ISIS编辑窗口中合适位置单击就可以将电压表放置好。通过电压表可以观察到电位器电压的实时变化。 ADC0809与单片机的接口电路需要做些说明。 ADDA、ADDB、ADDC:在本实例中直接将ADDA、ADDB、ADDC接地,选通INO通道。 CLK:在如图的电路中,CLK与P3-3口相连,单片机通过软件的方法在P3-3口输出时钟信号供ADC0809使用。 START:在图的电路中,START于P3-0口相连。 D0-D7:8位转换结果输出端。在如图所示的电路中,于P0口相连读出转换结果。 EOC:ADC0809自动发出的转换状态端,在图所示的电路中,EOC与P3-2口相连。 OE:转换数据允许输出控制端,在图所示的电路中,OE与P3-1口相连。 ALE:在图所示的电路中将ALE与START相连。由于ALE和START连在一起,因此ADC0809启动转换同时也在锁存通道地址。 2、源程序设计与目标代码文件生成LED0 EQU 30HLED1 EQU 31HLED2 EQU 32HLED3 EQU 33HADC EQU 35HCLOCK BIT P3.3ST BIT P3.0EOC BIT P3.2OE BIT P3.1ORG 0000HLJMP STARTORG 000BHLJMP FANG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论