单片机实验报告_第1页
单片机实验报告_第2页
单片机实验报告_第3页
单片机实验报告_第4页
单片机实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

实验五外部中断实验实验目的掌握外部中断的使用办法实验内容INT0端接单次脉冲发生器。接一次脉冲产生一次中断,使P1.0反转,P1.0接LED灯,一查看信号反转。实验规定根据实验内容编写一种程序,并在实验仪上调试和验证实验阐明外部中断的初始化设立共有三项内容:中断总允许EA=1,外部中断允许EXI=1,中断方式设立。中断服务的核心:保护进入中断的状态必须在中断服务中设定与否允许中断重入,即设立EX0位。用POP指令恢复中断时的现场中断控制原理:中断控制是提供应顾客使用的中断控制手段。中断响应的过程:首先中断采样然后中断查询最后中断响应。实验预习规定学习教材的有关内容,根据实验规定画出程序流程图,写出实验程序。程序:LEDBITP1.0org0ljmpStartorg3ljmpInterrupt0org0100HStart:clrLEDmovTCON,#01h;外部中断0下降沿触发movIE,#81h;打开外部中断允许位(EX0)及总中断允许位(EA)OK:ljmpOKInterrupt0:pushPSW;保护现场cplLED;取反LEDpopPSW;恢复现场retiend实验环节1)用导线连接80C51MCU的INT0端到单次脉冲模块的任一输出端;用导线连接80C51MCU模块的P10端到八位逻辑电平显示模块的L0。2)用USB数据线连接计算机与实验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。3)启动PC机,打开keil仿真软件,建立本实验的项目文献,输入源程序,用仿真器调式程序。4)观察发光二极管显示跑马灯效果,拨动K0可变化跑马灯的方向。5)把keil仿真软件生成的可执行文献(hex文献)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。实验七74LS164串转并实验实验目的掌握使用74LS164扩展输出的办法实验内容使用74LS164串行输出数据到LED上显示实验规定根据实验内容编写一种程序,并在实验仪上调试和验证实验阐明用单片机端口输出数据说时,用一种端口输出一种数据位,另一种端口输出移位脉冲。实验预习规定学习教材的有关内容,根据实验规定画出程序流程图,写出实验程序。程序:A_BBITP1.0CLKBITP1.1CLR1BITP1.2ORG0LJMPSTARTORG0100HSTART:SETBCLR1MOVR2,#8mova,#01HOutput1:callOutput;输出左移rlacallDelaydjnzR2,Output1movA,#0FH;输出0FHcallOutputcallDelaycallDelaycallDelayMOVR2,#8mova,#80HOutput2:callOutput;输出右移rracallDelaydjnzR2,Output2movA,#0F0H;输出F0HcallOutputcallDelaycallDelaycallDelaySjmpSTARTOutput:PUSHACCmovR3,#8Next:RRCAMOVA_B,CclrCLKsetbCLKdjnzr3,NextPOPACCRETDelay:MOVR7,#3DD1:MOVR6,#0FFHDD2:MOVR5,#0FFHDJNZR5,$DJNZR6,DD2DJNZR7,DD1RETEND实验环节用导线分别连接80C52MCU模块的P10、P11、P12到74LS164模块的A/B、CLK、CLR端;用8位数据线连接八位逻辑电平显示模块的JD1D4到74LS164模块的JD1C5。2)用USB数据线连接计算机与实验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。3)启动PC机,打开keil仿真软件,建立本实验的项目文献,输入源程序,用仿真器调式程序。4)观察发光二极管显示跑马灯效果,拨动K0可变化跑马灯的方向。5)把keil仿真软件生成的可执行文献(hex文献)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。实验十串行静态数码管显示实验实验目的掌握静态数码管显示的电路原理和驱动程序的编写。掌握数字、字符块转换成显示段码的软件译码办法。实验内容使用五只74LS164构成五位静态数码管显示电路,在数码管上显示“80C51”的字符。实验规定根据实验内容编写一种程序,并在实验仪上调试和验证。实验阐明静态数码管显示电路由五只74LS164、五只共阴极LED灯数码管构成。输入只有两个信号,他们是串行数据线DIN和移位信号CLK。五只74LS164首尾相连,每只74LS164的并行输出作为LED灯数码管的段码。实验预习规定学习教材有关内容,根据实验规定画出程序流程图,写出实验程序。程序:DBUFEQU30HTEMPEQU40HDINBITP1.0CLKBITP1.1ORG0000HLJMPSTARTORG0100HSTART: MOVDBUF,#8MOVDBUF+1,#0MOVDBUF+2,#0CHMOVDBUF+3,#5MOVDBUF+4,#1;显示“80C51”DISP:MOVR0,#DBUFMOVR1,#TEMPMOVR2,#5DP10:MOVDPTR,#SEGTABMOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR0INCR1DJNZR2,DP10MOVR0,#TEMPMOVR1,#5DP12:MOVR2,#8MOVA,@R0DP13:RLCAMOVDIN,CCLRCLKSETBCLKDJNZR2,DP13INCR0DJNZR1,DP12OK:SJMPOKSEGTAB:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,7BH,71H,00H,40HEND实验环节用导线分别连接80C51MCU模块的P10、P11到静态数码管显示模块的DIN、CLK端。2)用USB数据线连接计算机与实验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。3)启动PC机,打开keil仿真软件,建立本实验的项目文献,输入源程序,用仿真器调式程序。4)观察发光二极管显示跑马灯效果,拨动K0可变化跑马灯的方向。5)把keil仿真软件生成的可执行文献(hex文献)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。实验十一动态扫描数码显示实验实验目的掌握数字、字符转换成显示段码的软件译码办法。动态显示的原理和有关程序的编写。实验内容使用六位动态数码管显示电路,在数码管上显示数字字符。实验规定根据实验内容编写一种程序,并在实验仪上调试和验证。实验阐明实验箱提供了六位动态数码管显示电路,由6个共阴极LED数码管及驱动芯片构成。动态显示,也称扫描显示,各位数码管相似笔画的段码连在一起,用一片74LS245驱动,每位数码管的共阴极由74LS06驱动。实验预习规定学习教材的有关内容,根据实验规定画出程序流程图,写出实验内容。程序:DBUFEQU30HTEMPEQU40HORG0000HLJMPdispORG0100Hdisp:MOV30h,#8 ;低位MOV31h,#6MOV32h,#1MOV33h,#8MOV34h,#6MOV35h,#1 ;高位MOVR0,#DBUFMOVR1,#TEMPMOVR2,#6MOVDPTR,#SEGTABDP00:MOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR1INCR0DJNZR2,DP00DISP0:MOVR0,#TEMPMOVR1,#6MOVR2,#1DP01:MOVA,@R0MOVP0,A ; 输出段码MOVA,R2MOVP1,A ; 输出位码ACALLDELAYMOVA,R2RLAMOVR2,AINCR0DJNZR1,DP01SJMPDISPSEGTAB:DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB58H,5EH,7BH,71H,00H,40H;C,D,E,F,,-DELAY:MOVR4,#03HAA1:MOVR5,#0FFHAA:NOPNOPDJNZR5,AADJNZR4,AA1RETEND实验环节用8位数据线分别连接80C51MCU模块的JD0、JD1到动态数码管显示模块的JD1A3、JD2A3.2)用USB数据线连接计算机与实验箱的仿真接口(con2);将直流稳压电源的直流控制开关S1打到ON,将80C51MCU模块的电源钮子开关S2拨到上端。3)启动PC机,打开keil仿真软件,建立本实验的项目文献,输入源程序,用仿真器调式程序。4)观察发光二极管显示跑马灯效果,拨动K0可变化跑马灯的方向。5)把keil仿真软件生成的可执行文献(hex文献)用ISP下载器烧录到AT89s52芯片中运行,JP3跳线器置位上方(EA为高电平)。实验十六LED点阵中文显示实验实验目的理解16*16矩阵LED显示的基本原理和功效。掌握16*16矩阵LED和单片机软件设计办法。实验内容根据系统提供的电路,掌握16*16矩阵LED的工作原理,编程实现显示一种“箭头”从左向右滚动的效果。实验规定根据实验内容编写一种程序,并在实验仪上调试和验证。实验阐明以显示中文“大”为例,来阐明扫描原理:在UCDOS中文宋体字库中,每一种字由16行16列的点阵构成显示。如果8位的AT89C51单片机控制,由于单片机的总线为8位,一种字需要拆分为2个部分。普通我们把它拆分为上部和下部,上部由8*16点阵构成。在本例中单片机首先显示的是左上角的第一列的上半部分。方向为P00到P07,显示中文“大”时,P05点亮,由上往下排列,为P0.0灭,P0.1灭,P0.2灭,P0.3灭,P0.4灭,P0.4灭,P0.5亮,P0.6灭,P0,7灭。即二进制00000100,转换成16进制为04H。上半部第一列完毕后,继续扫描下二分之一部分的第一列,为了接线方便,我们仍设计成由上往下扫描,从P27向P20方向扫描,从上图能够看到,这一列全部为不亮,即为00000000,16进制00H。然后单片机转向上半部第二列,仍为P05点亮,为00000100,16进制04H。这一列完毕后继续进行下半部分的扫描,P21点亮,为二进制00000010,即16进制02H。根据这个办法,继续进行下面的扫描,一共扫描32个8位,能够得出中文“大”。实验预习规定学习教材的有关内容,根据实验规定画出程序流程图,写出实验程序。程序:LIN_ABITP1.0LIN_BBITP1.1LIN_CBITP1.2LIN_DBITP1.3DINBITP1.5CLKBITP1.6R_CLKBITP1.7ORG0000HLJMPmainORG0100Hmain: ;主函数 USING 0 C0026: CLR A MOV R2,AC0028: CLR A MOV R5,AC0031: LCALL L0070 SETB R_CLK NOP CLR R_CLK MOV A,R4 MOV DPTR,#tab1+01H MOVC A,@A+DPTR MOV DPTR,#tab1 LCALL L0067 SETB R_CLK NOP INC R5 CJNE R5,#010H,C0031C0030: INC R2 CJNE R2,#064H,C0028C0029: CLR A MOV R2,AC0034: CLR A MOV R5,AC0037: LCALL L0070 SETB R_CLK NOP CLR R_CLK MOV A,R4 MOV DPTR,#tab2+01H MOVC A,@A+DPTR MOV DPTR,#tab2 LCALL L0067 SETB R_CLK NOP INC R5 CJNE R5,#010H,C0037C0036: INC R2 CJNE R2,#064H,C0034C0035: CLR A MOV R2,AC0040: CLR A MOV R5,AC0043: LCALL L0070 SETB R_CLK NOP CLR R_CLK MOV A,R4 MOV DPTR,#tab3+01H MOVC A,@A+DPTR MOV R1,A MOV A,R4 MOV DPTR,#tab3 LCALL L0068 SETB R_CLK NOP INC R5 CJNE R5,#010H,C0043C0042: INC R2 CJNE R2,#064H,C0040C0041: CLR A MOV R2,AC0046: MOV A,R2 CLR C SUBB A,#064H JNC C0026 CLR A MOV R5,AC0049: LCALL L0070 SETB R_CLK NOP CLR R_CLK MOV A,R4 MOV DPTR,#tab4+01H MOVC A,@A+DPTR MOV R1,A MOV A,R4 MOV DPTR,#tab4 LCALL L0068 SETB R_CLK NOP INC R5 CJNE R5,#010H,C0049C0048: INC R2 SJMP C0046tab1:;自DB0FEH,0FFH,0FEH,07FH,0FDH,0FFH,0E0H,007H,0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7HDB0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7H,0EFH,0F7H,0EFH,0F7H,0E0H,007H,0EFH,0F7Htab2:;强DB0FFH,0FFH,086H,007H,0F6H,0F7H,0F6H,0F7H,086H,007H,0BFH,0BFH,0BCH,003H,0BDH,0BBHDB085H,0BBH,0F5H,0BBH,0F4H,003H,0F7H,0BFH,0F7H,0B7H,0F7H,0BBH,0D7H,081H,0ECH,03BHtab3:;不DB0FFH,0FBH,080H,001H,0FEH,07FH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FCH,09FH,0FAH,0CFHDB0F6H,0E7H,0EEH,0F3H,0DEH,0F7H,0BEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FFH,0FFHtab4:;息DB0FEH,0FFH,0FDH,0FFH,0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFHDB0E0H,00FH,0FFH,0FFH,0F6H,0FFH,0D7H,07BH,0D7H,06DH,097H,0EDH,0F8H,00FH,0FFH,0FFH;;//======================发送数据=============================//L0070: CLR R_CLK MOV A,R5 ADD A,ACC MOV R4,A MOV R7,#0FFH LCALL _DataOut MOV R7,#0FFH_DataOut: CLR A MOV R6,AC0001: CLR CLK MOV A,R7 JNB ACC.0,C0004 SETB DIN SJMP C0005C0004: CLR DINC0005: NOP NOP SETB CLK NOP NOP MOV A,R7 ;dat>>=1; CLR C RRC A MOV R7,A INC R6 CJNE R6,#08H,C0001C0006: RET ;;//==================设立行线====================//L0067: USING 0 MOV R1,A MOV A,R4L0068: MOVC A,@A+DPTR MOV R3,A MOV R7,AR1 LCALL _DataOut MOV R7,AR3 LCALL _DataOut MOV R7,AR5_SetLin: MOV A,R7 CJNE A,#010H,C0053C0053: JC $+5H LJMP C0025 MOV DPTR,#C0054 MOV R0,A ADD A,R0 ADD A,R0 JMP @A+DPTRC0054: LJMP C0008 LJMP C0009 LJMP C0010 LJMP C0011 LJMP C0012 LJMP C0013 LJMP C0014 LJMP C0015 LJMP C0016 LJMP C0017 LJMP C0018 LJMP C0019 LJMP C0020 LJMP C0021 LJMP C0022 LJMP C0023C0008: CLR LIN_A SJMP C0055C0009: SETB LIN_AC0055: CLR LIN

温馨提示

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

评论

0/150

提交评论