Proteus单片机实验指导书_第1页
Proteus单片机实验指导书_第2页
Proteus单片机实验指导书_第3页
Proteus单片机实验指导书_第4页
Proteus单片机实验指导书_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

./ProteusMCS-51教学实验指导书目录第一部分验证性实验实验一I/O口输出实验—LED流水灯实验7一、实验要求7二、实验目的7三、实验电路及连线7四、实验说明8五、实验流程图8六、实验步骤8七、实验结果和体会9八、建议……………………9实验二I/O口输入/输出实验—模拟开关灯10一、实验要求10二、实验目的10三、实验电路及连线10四、实验说明10五、实验程序流程图11六、实验步骤11七、实验结果和体会12八、建议……………………..12实验三8255I/O扩展实验13一、实验要求13二、实验目的:13三、实验电路及连线13四、实验说明14五、实验程序流程图14六、实验步骤14七、实验结果和体会:15八、建议..……………………15实验四无译码的七段数码管显示实验16一、实验要求16二、实验目的16三、实验电路及连线16四、实验说明16五、实验程序流程图17六、实验步骤17七、实验结果和体会18八、建议……………………..18实验五BCD码译码的多位数码管扫描显示实验19一、实验要求19二、实验目的19三、实验电路及连线19四、实验说明19五、实验程序流程图20六、实验步骤20七、实验结果和体会21八、建议21实验六独立式键盘实验22一、实验要求22二、实验目的22三、实验电路及连线22四、实验说明22五、实验程序流程图23六、实验步骤23七、实验结果和体会24八、建议24实验七计数器实验25一、实验要求25二、实验目的25三、实验电路及连线25四、实验说明25五、实验程序流程图25六、实验步骤26七、实验结果和体会26八、建议26实验八定时器实验27一、实验要求27二、实验目的27三、实验电路及连线27四、实验说明27五、实验程序流程图 …..28六、实验步骤28七、实验结果和体会29八、建议29实验九单个外部中断实验30一、实验要求30二、实验目的30三、实验电路及连线30四、实验说明30五、实验程序流程图31六、实验步骤31七、实验结果和体会32八、建议32实验十多个中断同时存在实验33一、实验要求33二、实验目的33三、实验电路及连线33五、实验程序流程图34六、实验步骤34七、实验结果和体会:36八、建议36实验十一矩阵键盘扫描实验37一、实验要求37二、实验目的37三、实验电路及连线37四、实验说明37五、实验流程图38六、实验步骤38七、实验结果和体会40八、建议40实验十二串行端口输出扩充实验41一、实验要求41二、实验目的41三、实验电路及连线41四、实验说明41五、实验流程图42六、实验步骤42七、实验结果和体会44八、建议44实验十三串行端口输入扩充实验45一、实验要求45二、实验目的45三、实验电路及连线45四、实验说明46五、实验流程图46六、实验步骤46七、实验结果和体会47八、建议47实验十四8051与PC之间串行通信实验48一、实验要求48二、实验目的48三、实验电路及连线48四、实验说明48五、实验流程图49六、实验步骤50七、实验结果和体会51八、建议51.第一部分验证性实验.实验一I/O口输出实验—LED流水灯实验、实验要求利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。、实验目的、掌握单片机最小系统的构成;、掌握I/O口的使用及驱动能力的概念;、熟悉移位指令和软件延时程序。、实验电路及连线、Proteus实验电路2、硬件验证实验〔51板+006板CPU板006板P1.0LED1P1.1LED2P1.2LED3P1.3LED4P1.4LED5P1.5LED6P1.6LED7P1.7LED8+5V+5VGNDGND、实验说明、主要知识点概述:本实验涉及到三个知识点:单片机最小系统的构成、单片机I/O口的使用以及软件延时程序的编写。1单片机最小系统由单片机芯片、时钟电路以及复位电路构成。2I/O口的使用:P1口是准双向口。它作为输出口时与一般的双向口使用方法相同,即当P1口用为输入口时,必须先对它置"1”。若不先对它置"1”,读入的数据可能是不正确的。3延时子程序的延时计算问题。对于程序DELAY: MOV R6,#200DEL1: MOV R7,#250DEL2: DJNZ R7,DEL2DJNZ R6,DEL1RET由指令表可知MOV、DJNZ指令均需用两个机器周期,在采用12MHz晶振时,一个机器周期时间长度为1us,所以该段程序执行时间约为:[<250*2+2>*200+2]*1us=1000402≈100ms、实验效果说明:发光二级管进行流水灯操作,从上到下依次点亮。、实验流程图否否是开始R2=8,ACC=0FEH延时0.2SP1=ACCACC左移一次,R2=R2-1R2=0?、实验步骤、Proteus仿真、在Proteus中打开设计文档流水灯.DSN;、建立实验程序并编译,加载hex文件,仿真;、如不能正常工作,打开调试窗口进行调试参考程序:ORG00HSTART: MOVR2,#8 MOVA,#0FEHLOOP: MOVP1,A LCALLDELAYRLA ;循环左移DJNZR2,LOOP;判断移动是否超过8位,未超过继续循环 LJMPSTARTDELAY: MOVR5,#20 ;延时程序,延时0.2sD1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2DJNZR5,D1 RET END、实验板验证、用ISP下载hex程序到CPU、按连接表连接电路、检查验证结果、扩展实验a. 改变延时时间为1s b. 改变流水灯流动方向c.改变流水灯的流动样式设计流程和程序:、实验结果和体会、建议实验二I/O口输入/输出实验—模拟开关一、实验要求 利用51单片机,按钮和发光二级管,构成一个模拟开关灯的单片机系统。二、实验目的、了解单片机I/O输入输出的使用;、掌握单片机I/O口位操作的编程;、掌握分支程序的设计与分析方法。三、实验电路及连线1、Proteus实验电路2.硬件验证实验〔CPU板+006板硬件连接表CPU板006板P1.0LED1P3.0SW1+5V+5VGNDGND四、实验说明1.主要知识点概述:1开关状态的检测过程单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JBBIT,REL或者是JNBBIT,REL指令来完成对开关状态的检测即可。2输出控制如图中所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETBP1.0指令使P1.0端口输出高电平,使用CLRP1.0指令使P1.0端口输出低电平。2.实验效果说明:按下按钮,灯亮,松开按钮,灯灭。五、实验程序流程图是是开始K1开关闭合了吗?L1亮L1灭否六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档I/O实验.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:ORG00HSTART: JBP3.0,LIG ;判断开关状态 CLRP1.0 ;开关闭合,灯亮 SJMPSTARTLIG: SETBP1.0 ;开关打开,灯灭 SJMPSTART ;返回 END2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验a.设计三路开关输入,三路发光二级管输出的电路及程序;b.设计开关触发———延时1s灯灭程序。设计流程和程序:七、实验结果和体会八、建议实验三8255I/O扩展实验实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255P口做输出,PB口作输入。实验目的:1.了解8255芯片结构及编程方法;2.了解8255输入/输出实验方法。三、实验电路及连线1、Proteus实验电路2、硬件验证实验8255的CS接地址译码CS0,则命令字地址为7003H,PA口地址为7000H,PB口地址为7001H,PC口地址为7002H。PA0~PA7〔PA口接LED0~LED7,PB0~PB7〔PB口接K0~K7〔开关量。硬件连接表CPU板006板8255板P2.7CS0D0-D7KEY0-KEY7PB0-PB7LED1-LED8PA0-PA7ALELEWR,RDWR,RDRESETRESET四、实验说明可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA、PC口输出,PB口输入。很多I/O实验都可以通过8255来实现。五、实验程序流程图六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档8255.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:PA->PB:流水灯: ORG00HORG00HMAIN: ACALLDELAYMAIN: ACALLDELAYMOVDPTR,#7003HMOVDPTR,#7003HMOVA,#82HMOVA,#82H MOVXDPTR,AMOVXDPTR,ALOOP: MOVDPTR,#7001HMOVA,#11111110B MOVXA,DPTRMOVDPTR,#7000HMOVDPTR,#7000HLOOP:MOVXDPTR,A MOVXDPTR,ARLA SJMPLOOPACALLDELAYDELAY:MOVR1,#00HSJMPLOOPDLP: MOVR2,#50HDELAY: …. DJNZR2,$END DJNZR1,DLP RET END2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验设计按键控制的流水灯,要求不同按键按下时流水灯以不同方式闪动,闪动方案自定。设计流程和程序:七、实验结果和体会:八、建议:实验四无译码的七段数码管显示实验一、实验要求 利用51单片机,一个7段数码管,构成一个单个LED显示系统。二、实验目的1.了解数码管显示原理。 2.掌握读表程序的编写。三、实验电路及连线1、Proteus实验电路2、硬件验证实验〔CPU板+004板硬件连接表〔CPU板+004板CPU板LED板P0.0LED-AP0.1LED-BP0.2LED-CP0.3LED-DP0.4LED-EP0.5LED-FP0.6LED-GP0.7LED-COM+5V+5VGNDGND注:P0口在CPU板上已经接上拉电阻。四、实验说明1.主要知识点概述:1LED数码显示原理七段LED显示器部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阳极的字形码见表2"0"0C0H"8"80H"1"0F9H"9"90H"2"0A4H"A"88H"3"0B0H"b"80H"4"99H"C"0B6H"5"92H"d"0B0H"6"82H"E"86HH"7"F8H"F"8EH2>段码表格由于显示的数字0-9的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLEDB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h2.实验效果说明: 数码管循环显示0~9。五、实验程序流程图六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档LED.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:ORG 00HSTART: MOV DPTR,#TABLE ;指针指向表头地址S1: MOV A,#00H ;设置地址偏移量 MOVC A,A+DPTR ;查表取得段码,送A存储 CJNE A,#01H,S2 ;判断段码是否为结束符 LJMP STARTS2: MOV P0,A ;段码送LED显示 LCALL DELAY ;指针加1 INC DPTR LJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#20D1: MOV R7,#248 DJNZ R7,$DJNZ R6,D1 DJNZ R5,D2 RET TABLEDB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;段码表DB 01H ;结束符 END2、实验板验证a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验a.将程序改为循环显示一串〔如学号;b.设计一个组成"0”设计流程和程序:七、实验结果和体会八、建议实验五BCD码译码的多位数码管扫描显示实验一、实验要求利用51单片机、BCD译码芯片74LS47和两位LED构成一个数码管扫描显示系统。二、实验目的1.掌握BCD译码电路的工作原理。2.掌握多位数码管显示的编程。三、实验电路及连线1、Proteus实验电路2、硬件验证实验〔CPU板+004显示板硬件连接表CPU板004板P0.0BCD-AP0.1BCD-BP0.2BCD-CP0.3BCD-DP3.0SEG1P3.1SEG2+5V+5VGNDGND四、实验说明1.主要知识点概述:二进制编码的十进制数,简称BCD码<BinarycodedDecimal>,此例中,74LS47完成BCD编码的功能。 多位LED显示,先往段码端口输出段码,再选通位选,对应的LED显示。2.实验效果说明:两个数码管同时循环显示0~9。五、实验程序流程图判断显示是否到9?判断显示是否到9?是否开始A=0,R1=10置段码置位码延时显示六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档BCDLED.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序: ORG 00HL: MOV A,#0 ;设置显示初值 MOV R0,#10 ;设置显示个数START: MOVP0,A ;向P0口输出显示段码 SETB P3.0 SETB P3.1 ;位选 LCALL DELAY INC A DJNZ R0,START JMP LDELAY:MOV R5,#50 ;延时程序D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验设计一个99计数器。设计流程和程序:七、实验结果和体会八、建议实验六独立式键盘实验一、实验要求利用51单片机,8个按钮,8路发光二级管构成一个独立式键盘系统。二、实验目的1、掌握多路I/O输入输出的编程。三、实验电路及连线1、Proteus实验电路2、硬件验证实验硬件连接表〔CPU板+006板CPU板006板P1.0~P1.7LED1~LED8P3.0~P3.7SW1~SW8+5V+5VGNDGND四、实验说明1.主要知识点概述:使用分支程序编程方法,对开关状态进行监测,输入电平有变化,跳转到相应的处理程序进行处理,输出处理结果。2.实验效果说明: 按下8个按钮,点亮对应的灯。五、实验程序流程图开始开始P3=#0FFHP1=#0FEHP3=?P1=#0FDHP1=#0BFHP1=#7FH结束P3.1=1P3.2=1P3.6=1P3.7=1六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档独立式键盘.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:ORG0000HLJMPSTARTORG0100HSTART:MOVP3,#0FFHHL: JNBP3.0,HL0JNBP3.1,HL1JNBP3.2,HL2JNBP3.3,HL3 JNB P3.4,HL4 JNB P3.5,HL5 JNB P3.6,HL6JNB P3.7,HL7LJMPHLHL0:MOVP1,#0FEHLJMPHLHL1:MOVP1,#0FDHLJMPHLHL2:MOVP1,#0FBHLJMPHLHL3:MOVP1,#0F7HLJMPHLHL4:MOVP1,#0EFHLJMPHLHL5:MOVP1,#0DFHLJMPHLHL6:MOVP1,#0BFHLJMPHLHL7:MOVP1,#07FHLJMPHLEND2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验按键后使对应的灯闪烁。设计流程和程序:七、实验结果和体会八、建议实验七计数器实验一、实验要求8051部定时计数器T0,按计数器模式和方式1工作,对P3.4〔T0引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。二、实验目的掌握单片机定时计数器计数方式的使用及编程方法。三、实验电路及连线1、Proteus实验电路2、硬件验证实验硬件连接表CPU板004板006板P0.0~P0.6LED-A~LED-GP0.7LED-COMP3.4SW1+5V+5VGNDGND四、实验说明1.主要知识点概述:本实验中部计数器起计数器的作用。外部事件脉冲由P3.4引入定时/计数器T0,即T0用来检测外部脉冲数。2.实验效果说明: 由按键产生计数脉冲,LED分别显示脉冲个数〔10个以。开始开始计数计数、输出计数值设置工作方式五、实验程序流程图开始开始计数计数、输出计数值设置工作方式六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档courter.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:ORG 0 MOV TMOD,#00000101B ;置T0计数器方式1 MOV TH0,#0 ;置T0初值 MOV TL0,#0 MOV R0,#10 SETB TR0 ;T0运行 MOV DPTR,#TABLES1: MOV A,TL0 MOVC A,A+DPTR MOV P0,A LJMP S1TABLE: DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;结束符 DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;结束符 END2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验设计流程和程序:七、实验结果和体会八、建议实验八定时器实验一、实验要求用51单片机的P1.0口接1个发光二级管,编写程序,控制发光二级管闪烁,时间间隔1S,要求AT89C51部定时器计时。二、实验目的掌握单片机定时计数器定时方式的使用及编程方法。三、实验电路及连线1、Proteus实验电路2、硬件验证实验硬件连接表CPU板006板P1.0LED1+5V+5VGNDGND四、实验说明1.主要知识点概述:关于部计数器的编程,主要是定时常数的位置和有关控制寄存器的设置。部计数器在单片机中主要有定时器和计数器两个功能。本例使用的是定时器,定时1S。CPU运行定时中断方式,实现每1S输出状态发生一次反转,即发光二级管1S亮一次。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止。部计数器用于定时器时,是对机器周期计数。每个机器周期的长度是12个振荡周期。本例中单片机晶振12MHZ,选用工作方式2,既8位自动重装方式定时器,定时器100us中断一次,所以定时常数的设置可按以下方法计算: 机器周期=12/12MHZ=1us <256-定时常数>*1us=100us定时常数=156。然后对100us中断次数计数10000次,就是1S。2.实验效果说明:发光二级管按设定的定时时间闪烁。五、实验程序流程图主程序定时中断服务程序定时中断入口保护现场定时中断入口保护现场秒计数值减1重新设置秒计数值计到1S!状态位取反恢复现场中断返回是否开始置T1工作方式设置时间常数设置初始状态位设置秒计数值中断允许输出状态位等待中断六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档timer.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:TICK EQU 10000 ;10000×100us=1sT100us EQU 256-100 ;100us时间常数〔12MC100us EQU 30H ;100us计数单元LEDBUF EQU 40H LED BIT P1.0ORG 00HLJMP START ;跳至主程序 ORG 000BH ;定时中断入口地址T0INT: PUSH PSW ;状态保护 MOV A,C100us+1 JNZ GOON DEC C100us ;秒计数值减1GOON: DEC C100us+1 MOV A,C100us ORL A,C100us+1 JNZ EXIT ;100us计数器不为0,返回 MOV C100us,#HIGH<TICK> ;100us计数器为0,重置计数器 MOV C100us+1,#LOW<TICK> CPL LEDBUF ;取反LEDEXIT: POP PSW RETISTART: MOV TMOD,#02H ;方式2,定时器 MOV TH0,#T100us ;置定时器初值 MOV TL0,#T100us MOV IE,#10000010B ;EA=1,IT0=1 SETB TR0 ;开始定时 CLR LEDBUF CLR LED MOV C100us,#HIGH<TICK> ;设置10000次计数值 MOV C100us+1,#LOW<TICK>LOOP: MOV C,LEDBUF MOV LED,C LJMP LOOP END2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验使用其他定时器其他工作方式设计该实验。设计流程和程序:七、实验结果和体会八、建议实验九单个外部中断实验一、实验要求利用P3.2接一个外部中断输入,通过P1口连接8个发光二级管显示中断程序的作用。二、实验目的1.理解中断源、中断标志、中断入口等概念。2.掌握中断程序的分析与设计方法。三、实验电路及连线1、Proteus实验电路2、硬件验证实验硬件连接表CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、实验说明1.主要知识点概述: 外部中断的响应过程: 1中断采样:根据采样结果设置TCON寄存器中断响应标志位的状态。 2中断查询:查询TCON标志位的状态,确定是否响应。3中断响应:保护断点容,装入中断入口地址,执行中断服务程序,返回中断点,继续执行原来程序。2.实验效果说明:中断未发生时,LED做闪烁状态,当有中断产生,LED呈流水灯操作。五、实验程序流程图主程序框图外部子程序框图开始设置初始状态开始设置初始状态等待中断中断允许设置中断控制寄存器中断入口流水灯程序中断返回恢复现场保护现场六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档外部中断.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:;开始,P1口灯闪烁,中断产生,P1口呈流水灯操作。 ORG0000H;程序由地址0开始执行 LJMPSTART ORG0003H;设置外部中断矢量地址 LJMPINT;跳转到中断控制入口处START:MOVSP,#60HMOVTCON,#00000000BMOVIP,#00000001BMOVIE,#10000001B ;对中断进行初始化RUN:MOVA,#0LOOP:MOVP1,AMOVR5,#20 LCALLDELAYCPLA LJMPLOOP ;闪烁灯INT: ;中断服务程序 PUSHACCPUSHPSW ;保护现场CLRRS1 ;切换寄存器组SETBRS0CLRCMOVA,#11111111BMOVR4,#16LOOPR: ;流水灯程序RRCAMOVP1,AMOVR5,#20CALLDELAYDJNZR4,LOOPRPOPPSW ;恢复现场POPACCRETIDELAY:MOVR6,#50 ;延时程序S1:MOVR7,#100DJNZR7,$DJNZR6,S1DJNZR5,DELAYRETEND2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验改变中断触发方式或更改中断服务程序容重做以上实验,容自定。设计流程和程序:七、实验结果和体会八、建议实验十多个中断同时存在实验一、实验要求利用P3.2接一个外部中断输入,同时使用到单片机定时器中断,通过P1口连接8个发光二级管显示中断的作用。二、实验目的了解中断嵌套和中断优先级的概念和编程方法。三、实验电路及连线1、Proteus实验电路2、硬件验证实验CPU板006板P1.0~P1.7LED1~LED8P3.2SW1+5V+5VGNDGND四、实验说明1.所用知识点概述中断优先级:51系统有高、低两个中断优先级。各中断的优先级通过中断优先寄存器〔IP进行设定。在进行中断响应时,高优先级可以打断低优先级的中断服务,形成中断嵌套。2.实验效果说明外部中断未发生时,系统通过定时器定时的方法,使LED做流水灯操作,当有中断产生,LED闪烁5次,完毕返回。五、实验程序流程图主程序框图定时中断子程序外中断中断子程序开始设置初始状态开始设置初始状态等待中断中断允许设置中断控制寄存器否是定时中断入口计数值重新赋值现场保护中断返回流水灯程序恢复现场溢出次数>100?外中断入口外中断入口闪烁灯程序中断返回恢复现场保护现场六、实验步骤1、Proteus仿真a.在Proteus中打开设计文档多个中断.dsn;b.建立实验程序并编译,加载hex文件,仿真;c.如不能正常工作,打开调试窗口进行调试。参考程序:;计时中断与外部中断同时存在实验;利用计时方式,使8只LED灯每隔1s左移一次,当外部中断P3.2出现时8个LED灯闪烁5次,闪烁完后返回主程序运行。 ORG0000HLJMPSTART ORG0003H ;外部中断入口LJMPEXT ORG000BH ;定时中断入口LJMPTIMSTART: MOVSP,#70H ;建立堆栈区 MOVTMOD,#00000001B ;定时器0,工作方式1 MOVTH0,#HIGH<65536-10000> ; MOVTL0,#LOW<65536-10000> ;装计数器初值 SETBTR0 ;TR0置1,定时开始 MOVIE,#10000011B ;开总中断,定时器0中断允许 MOVIP,#00000001B ;设定外部中断0优先级高 MOVR5,#100 ;定时溢出次数 MOVR1,#0FEH ;LJMP$;***********************************************;TIM: PUSHACC PUSHPSW ;现场保护 MOVTH0,#HIGH<65536-10000> MOVTL0,#LOW<65536-10000> ;重赋计数值DJNZR3,LOOP MOVR3,#100 MOVA,R1 MOVP1,A RLA MOVR1,A ;移位LOOP: POPPSW POPACC ;恢复现场 RETI;***********************************************;;外部中断服务程序,闪烁5EXT: PUSHACC PUSHPSW MOVA,#00MOVR2,#10LOOP3: MOVP1,A CALLDELAYCPLA DJNZR2,LOOP3 POPPSW POPACC RETI ;***********************************************;;延时程序DELAY: MOVR5,#20D1: MOVR6,#20D2: MOVR7,#248 DJNZR7,$ DJNZR6,D2 DJNZR5,D1 RETEND2、实验板验证 a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果3、扩展实验设计两个外部中断与定时中断同时存在的实验设计流程和程序七、实验结果和体会:八、建议:实验十一矩阵键盘扫描实验、实验要求利用4X416位键盘和一个7段LED构成简单的输入显示系统,实现键盘输入和LED显示实验。、实验目的1、理解矩阵键盘扫描的原理;2、掌握矩阵键盘与51单片机接口的编程方法。、实验电路及连线、Proteus实验电路、硬件验证实验CPU板004板007P2.0~P2.7LED-A~LED-GP1.0~P1.3C1~C4P1.4~P1.7R1~R4+5V+5V+5VGNDGNDGND、实验说明1、主要知识点概述:本实验阐述了键盘扫描原理,过程如下:首先扫描键盘,判断是否有键按下,再确定是哪一个键,计算键值,输出显示。2、实验效果说明:以数码管显示键盘的作用。点击相应按键显示相应的键值。、实验流程图开始扫描键盘有键按下?延时去抖扫描键盘找到闭合键开始扫描键盘有键按下?延时去抖扫描键盘找到闭合键计算键值根据键值得到对应段码输出段码显示是否、实验步骤、Proteus仿真、在Proteus中打开设计文档键盘扫描.DSN;、建立实验程序并编译,加载hex文件,仿真;、如不能正常工作,打开调试窗口进行调试参考程序:org0000hajmpmainorg0030hmain: movdptr,#table;将表头放入DPTRlcallkey ;调用键盘扫描程序 movca,a+dptr ;查表后将键值送入ACCmovp2,a ;将Acc值送入P0口ljmpmain ;返回反复循环显示KEY: LCALLKS ;调用检测按键子程序 JNZK1;有键按下继续 LCALLDELAY2 ;无键按调用延时去抖 AJMPKEY ;返回继续检测按键K1:LCALLDELAY2LCALLDELAY2 ;有键按下延时去抖动LCALLKS ;再调用检测按键程序 JNZK2 ;确认有按下进行下一步 AJMPKEY ;无键按下返回继续检测K2: MOVR2,#0EFH ;将扫描值送入R2暂存MOVR4,#00H ;将第一列值送入R4暂存K3: MOVP1,R2 ;将R2的值送入P1口L6: JBP1.0,L1 ;P1.0等于1跳转到L1 MOVA,#00H ;将第一行值送入ACC AJMPLK ;跳转到键值处理程序L1: JBP1.1,L2 ;P1.1等于1跳转到L2 MOVA,#04H ;将第二行的行值送入ACC AJMPLK ;跳转到键值理程序进行键值处理L2: JBP1.2,L3 ;P1.2等于1跳转到L3 MOVA,#08H ;将第三行的行值送入ACC AJMPLK ;跳转到键值处理程序L3: JBP1.3,NEXT ;P1.3等于1跳转到NEXT处 MOVA,#0cH 将第四行的行值送入ACCLK: ADDA,R4 ;行值与列值相加后的键值送入A PUSHACC ;将A中的值送入堆栈暂存K4: LCALLDELAY2;调用延时去抖动程序 LCALLKS;调用按键检测程序 JNZK4 ;按键没有松开继续返回检测 POPACC ;将堆栈的值送入ACCRETNEXT: INCR4;将列值加一 MOVA,R2;将R2的值送入A JNBACC.7,KEY ;扫描完至KEY处进行下一扫描 RLA ;扫描未完将A中的值右移一位进行下一列的扫描 MOVR2,A ;将ACC的值送入R2暂存 AJMPK3 ;跳转到K3继续KS: MOVP1,#0FH ;将P1口高四位置0低四位值1 MOVA,P1 ;读P1口 XRLA,#0FH ;将A中的值与A中的值相异或 RET ;子程序返回DELAY2: ;40ms延时去抖动子程序MOVR5,#08HL7:MOVR6,#0FAHL8:DJNZR6,L8DJNZR5,L7RETTABLE: ;七段显示器数据定义DB0C0H,0F9H,0A4H,0B0H,99H;01234DB92H,82H,0F8H,80H,90H;56789DB88H,83H,0C6H,0A1H,86H;ABCDEDB8EH;F END ;程序结束、实验板验证a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果、扩展实验设计其他方式键盘扫描程序。设计流程和程序:、实验结果和体会、建议串行端口输出扩充实验、实验要求利用移位积存器74LS164、单片机的串口和7个LED完成串行端口扩展,实现跑马灯闪烁。、实验目的1、理解串行通讯和并行通讯的含义;2、了解74LS164的工作原理,理解串转并的原理;3、掌握单片机串口用于并行输出口扩展的原理。、实验电路及连线1、Proteus实验电路2、硬件验证实验〔CPU板+006板首先将006板上拨码开关拨向ON。CPU板006板P3.0164_A、164_BP3.1164_CLK+5V+5VGNDGND、实验说明1、主要知识点概述:本实验用到了两个主要知识点是:74LS164的工作机制、简单的单片机串口输出。2、实验效果说明:使用74LS164的并行输出端接8个LED,利用它串入并出的功能,把LED按预先规定的次序点亮。、实验流程图开始开始查表获得显示所需参数延时主程序参数为结束值向串口发送参数串口初始化否是、实验步骤1、Proteus仿真、在Proteus中打开设计文档serialout.DSN;、建立实验程序并编译,加载hex文件,仿真;、如不能正常工作,打开调试窗口进行调试参考程序:org0000hmovscon,#00000000b ;设定UART方式MODE0start:movdptr,#table ;数据指针指到TABLEloop:clra ;清除ACCmovca,a+dptr ;到TABLE取数据cjnea,#09,play ;到结束码03了么?不是则到A1jmpstart ;是则重新开始play: cpla ;取到的数据反向mov30h,a ;A存入30Hmovsbuf,30h ;30H的值存入SBUFloop1:jbcti,loop2 ;监测TI=1?是则跳到LOOP2jmploop1 ;否则继续监测,传输过程loop2:callDELAY ;延时incdptr ;数据指针加1jmploop;延时程序DELAY:MOVR5,#255D3:MOVR2,#255D4:DJNZR2,D4DJNZR5,D3RETtable:db01h,02h,04h,08h ;左移db10h,20h,40h,80hdb01h,02h,04h,08hdb10h,20h,40h,80hdb80h,40h,20h,10h ;右移db08h,04h,02h,01hdb80h,40h,20h,10hdb08h,04h,02h,01hdb00h,0ffh,00h,0ffh ;闪烁db09hEND、实验板验证a.用ISP下载hex程序到CPUb.按连接表连接电路c.检查验证结果、扩展实验用两片74LS164扩展串行端口输出。设计流程和程序:、实验结果和体会、建议串行端口输入扩充实验、实验要求利用74LS165、8个按键和8个LED,实现并转串的输入扩充实验。、实验目的、掌握串口用于并行输入端口扩充的编程方法;、理解74LS165的工作原理;、实验电路及连线、Proteus实验电路、硬件验证实验〔CPU板+006板首先将006板上拨码开关拨向OFF。CPU板006板P3.0165_SOP3.1165_CLK

温馨提示

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

评论

0/150

提交评论