当前位置:文档之家› 微机原理与应用实验报告

微机原理与应用实验报告

《微机原理与应用》实验报告姓名:郭爽学号:68年级:2014专业:电子2016年春季学期实验一.熟悉单片机开发环境1.功能要求在 P1 端口接8 个LED,并编程依次循环点亮。

要求用软件延时程序控制LED 的亮灭时间,并能精确地计算和用软件测量延时时间。

2.硬件原理3.程序清单ORG 0000HLJMP STARTORG 0030HSTART: MOV R2,#8MOV A,#01H LOOP1: MOV P1,ALCALL DELAY RL ADJNZ R2,LOOP1 MOV R2,#8RR ALOOP2: MOV P1,ALCALL DELAY RR ADJNZ R2,LOOP2 LJMP STARTDELAY: MOV R5,#20 D1: MOV R6,#80D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND4.实验心得首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。

实验二.并行口输入输出实验——循环彩灯控制1.功能要求P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。

开关断开时,灯灭。

用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求如下:(1)K1~K2 分别选择灯的四种闪动方式;(2)K3 用于控制灯的循环方向(顺时针或逆时针);(3)K4 用于选择灯的两种循环速度;(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。

当K0 没有引发中断时,保持上一次的循环方式。

2.硬件原理3.程序清单ORG 0000HLJMP MAINORG 0003HLJMP INTERRUPT ORG 0030H MAIN: SETB EX0SETB IT0SETB EA DELAY2: MOV R0,#200 D4: MOV R1,#200 D5: MOV R2,#10D6: DJNZ R2,D6DJNZ R1 ,D5 DJNZ R0,D4RET INTERRUPT:MOV 20H , P1JB ,WORK1MOV A,#01HA1: MOV P0,AJB ,B1JNB ,B2A2: JB ,LOOP11 JNB ,LOOP22 B1: LCALL DELAY1 LJMP A2B2: LCALL DELAY2 LJMP A2 LOOP11: RL ALJMP A1 LOOP22: RR ALJMP A1ORG 0600H DELAY1: MOV R0,#100 D1: MOV R1,#100 D2: MOV R2,#10 D3: DJNZ R2,D3DJNZ R1,D2DJNZ R0 ,D1RET4.实验心得开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。

实验三.七段LED 数码管控制实验1.功能要求首先用万用表判断所用数码管是共阴极还是共阳极数码管,并测出各引脚功能,画出引脚分布图。

实验采用4 位一体的数码管,用P1 口通过驱动芯片控制段码输出信号线,P0 口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能:(1)当开关K0 接低电平时,第一位依次显示0~F,然后第二位、第三位、第四位,再循环回第一位。

(2)当开关K0 接高电平时,四位动态显示“HELP”。

2.硬件要求3.程序清单ORG 0000HSETBMOV P0,#0C7HLCALL DLAY2LJMP STARTORG 0030H START:JB ,LOPPJNB ,LOOP2 LOPP: MOV R1,#4 LOOP1:MOV R3,#16 LOP1: MOV P0,#0FEHMOV DPTR,#TAB2 MOV A,R1MOVC A,@A+DPTR MOV P2,AJNB ,LOOP2 MOV DPTR,#TAB1 MOV A,R3MOVC A,@A+DPTR MOV P0,ALCALL DELAYDJNZ R3,LOP1 DJNZ R1,LOOP1LJMP LOPPLOOP2:SETBMOV P0,#89HLCALL DLAY2CLRSETBMOV P0,#86HLCALL DLAY2CLR4.实验心得开始掌握单片机,通过实验3加强了对单片机的理解,学会查表程序的书写方法,学会244芯片的工作原理,并且掌握了数码管工作的原理。

实验四.定时器中断实验1.功能要求实现一个4 位秒表:(1)用开关K0 模拟秒表的启动、停止、清零功能,K0 触发外部中断INT0,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。

(2)定时采用T0 定时器中断完成,最低位按1/10 秒计数,依次计数单位为1 分、10 秒、1 秒、1/10 秒。

(3)要求外部中断INT0 的优先级高于T0 的优先级2.硬件要求3.程序清单ORG 0000HLJMP STARTORG 0003HLJMP ITRU0ORG 000BHLJMP ITRU1ORG 0030H START: MOV TMOD,#01H MOV IP, #01H SETB ET0SETB IT0SETB EX0SETB EA LOPP: SETBMOV R0,#0MOV R4,#0MOV R5,#0MOV R6,#0MOV R7,#0MOV R1,#4LOP1: MOV DPTR,#TAB2 MOV A,R1MOVC A,@A+DPTR MOV P2,AMOV P0,#0C0HDJNZ R1,LOP1 JB ,LOPPSETB TR0 CIRCLE: SETBMOV DPTR,#TAB3 MOV A,R4MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLRSETBMOV DPTR,#TAB4 MOV A,R5MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLRSETBMOV DPTR,#TAB3 MOV A,R6MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLRSETBMOV DPTR,#TAB4 MOV A,R7MOVC A,@A+DPTR MOV P0,A W1: INC R4CJNE R4,#10 ,W2 MOV R4,#0INC R5CJNE R5,#10,W2 MOV R5,#0INC R6LCALL DELAYCLRJNB ,CIRCLECLR TR0JNB ,LOPPLJMP CIRCLETAB3: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H TAB4: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10HTAB2: DB 0FFH,08H,04H,02H,01HDELAY: MOV R2,#200D1: DJNZ R2,D1MOV R2,#200D2: DJNZ R2,D2RETITRU0: INC R0CJNE R0,#3, W3CLRLJMP W4W3: CPLW4: RETIITRU1: MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256CPLJNB ,W1LJMP W24.实验心得开始掌握单片机,通过实验4加强了对单片机的理解,学会定时程序的书写方法,如何进行计算精度,使定时器更加精确。

实验五.脉冲宽度与周期测量实验1.功能要求已知某被测脉冲频率为1KHz 左右:自主设计测量方法,编程连续测量输入脉冲宽度,并用七段LED 显示结果。

自主设计测量方法,编程连续测量输入脉冲周期,并用七段LED 显示结果。

自主设计测量方法,同时测量脉冲宽度和周期,由开关K0 选择显示脉冲宽度还是显示脉冲周期。

2.硬件要求3.程序清单ORG 0000HLJMP MAINORG 000BHLJMP T0XORG 0030HMAIN: MOV TMOD,#0AH ;使用定时器0的方式2,自动赋值类型MOV TH0,#156 ;针对12M晶振赋值,如果为晶振,重新赋值164 MOV TL0,#156SETB EASETB ET0MOV DPTR,#TABMOV A,#0MOV R0,#0MOV R1,#0MOV R2,#0MOV R3,#0MOV R4,#0JB ,M1 ;通过对P1,0的查询选择测量周期或者脉宽M0: JB ,$ ;利用查询的方式开启定时器SETB TR0JNB ,$JB ,$JB ,$CLR TR0LJMP LOOP M1: JB ,M1SETB TR0JNB ,$JB ,$CLR TR0 LOOP: MOV A,TL0 SUBB A,#156 MOV B,#10 DIV ABMOV R1,BMOV R2,AMOV A,R0MOV B,#10MOV R3,BADD A,#10MOV R4,A ;最后给R4加10,让其读后10位的表SHOW: MOV P2,#01H ;共阳极数码管MOV A,R1LCALL SHOW1LCALL SHOW2MOV P2,#02HMOV A,R2LCALL SHOW1LCALL SHOW2MOV P2,#04HMOV A,R3LCALL SHOW1LCALL SHOW2MOV P2,#08HMOV A,R4LCALL SHOW1LCALL SHOW2LJMP MAINSHOW1:MOVC A,@A+DPTRMOV P0,ARETSHOW2:MOV R7,#200MOV R6,#200DJNZ R6,$DJNZ R7,$RETT0X: INC R0 ;每100微妙进1RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;前10位无小数点DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H ;后10位有小数点END4.实验心得通过实验5加强了对单片机的理解,学会利用单片机进行脉冲宽度和周期的测量,并且掌握了十六进制转换为十进制的技巧。

实验六.串行通信实验1.功能要求(1)利用串行口方式0 实现一个七段数码管的显示控制,轮流显示0~9十个数码。

(2)两人一组,利用异步通信功能将一方的8个按键的高低电平状态传到另一方,并利用另一方的8个LED 显示其开关状态,要求双向通信,互相显示。

2.程序清单要求1ORG 0000HLJMP MAINORG 0030H MAIN: MOV SCON,#00H CLR ESLED: MOV P2,#01 LOOP: MOV R3,#10要求2ORG 0000HLJMP MAINORG 0030HMAIN: MOV SCON,#50H MOV TMOD,#20H MOV PCON,#80HMOV TL1,#0F4HMOV TH1,#0F4HSETB RILOP1: MOV DPTR,#TABMOV A,R3MOVC A,@A+DPTRMOV SBUF,AJNB TI,$CLR TILCALL DELAYDJNZ R3,LOP1LJMP LEDDELAY:MOV R7 ,#40W2: MOV R6 ,#40W1: MOV R5 ,#150DJNZ R5,$DJNZ R6, W1DJNZ R7, W2RETTAB: DB 00H,03H,9FH,25H,0DHDB 99H,49H,0C1H,1FH,01H,09H END实验七 .RAM 扩展与读写控制实验1.功能要求(1)利用74LS573 进行总线扩展。

相关主题