《微机原理与应用》实验报告姓名:郭爽学号:2014012468年级: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,#248 DJNZ 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 DELAY2: MOV R0,#200 D4: MOV R1,#200 D5: MOV R2,#10 D6: DJNZ R2,D6DJNZ R1 ,D5 DJNZ R0,D4RETORG 0030HMAIN: SETB EX0SETB IT0SETB EAMOV A,#01HA1: MOV P0,AJB 20H、2,B1JNB 20H、2,B2A2: JB 20H、3,LOOP11 JNB 20H、3,LOOP22 B1: LCALL DELAY1LJMP A2B2: LCALL DELAY2LJMP A2LOOP11: RL ALJMP A1LOOP22: RR ALJMP A1ORG 0600HDELAY1: MOV R0,#100D1: MOV R1,#100D2: MOV R2,#10D3: DJNZ R2,D3DJNZ R1,D2DJNZ R0 ,D1RET4、实验心得开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。
实验三、七段LED 数码管控制实验1.功能要求首先用万用表判断所用数码管就是共阴极还就是共阳极数码管,并测出各引脚功能,画出引脚分布图。
实验采用4 位一体的数码管,用P1 口通过驱动芯片控制段码输出信号线,P0 口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能:(1)当开关K0 接低电平时,第一位依次显示0~F,然后第二位、第三位、第四位,再循环回第一位。
(2)当开关K0 接高电平时,四位动态显示“HELP”。
2.硬件要求3.程序清单ORG 0000HLJMP STARTORG 0030H START:JB P3、0 ,LOPP JNB P3、0 ,LOOP2 LOPP: MOV R1,#4 SETB P2、2 MOV P0,#0C7H LCALL DLAY2 CLR P2、2SETB P2、3 MOV P0,#8CH LCALL DLAY2 CLR P2、3LJMP STARTLOOP1:MOV R3,#16LOP1: MOV P0,#0FEHMOV DPTR,#TAB2MOV A,R1MOVC A,@A+DPTR MOV P2,AJNB P3、0 ,LOOP2 MOV DPTR,#TAB1 MOV A,R3MOVC A,@A+DPTR MOV P0,ALCALL DELAYDJNZ R3,LOP1DJNZ R1,LOOP1LJMP LOPPLOOP2:SETB P2、0MOV P0,#89HLCALL DLAY2CLR P2、0SETB P2、1MOV P0,#86HLCALL DLAY2CLR P2、14、实验心得开始掌握单片机,通过实验3加强了对单片机的理解,学会查表程序的书写方法,学会244芯片的工作原理,并且掌握了数码管工作的原理。
实验四、定时器中断实验1.功能要求实现一个4 位秒表:(1)用开关K0 模拟秒表的启动、停止、清零功能,K0 触发外部中断INT0,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。
(2)定时采用T0 定时器中断完成,最低位按1/10 秒计数,依次计数单位为1 分、10 秒、1 秒、1/10 秒。
(3)要求外部中断INT0 的优先级高于T0 的优先级2.硬件要求3.程序清单ORG 0000H LJMP START ORG 0003H LJMP ITRU0 ORG 000BHORG 0030H START: MOV TMOD,#01H MOV IP, #01H SETB ET0SETB IT0SETB EX0SETB EA LOPP: SETB P1、2MOV 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,#0C0H DJNZ R1,LOP1 JB P1、0 ,LOPP SETB TR0 CIRCLE: SETB P2、3MOV DPTR,#TAB3MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、3SETB P2、2MOV DPTR,#TAB4 MOV A,R5MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、2SETB P2、1MOV DPTR,#TAB3 MOV A,R6MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、1SETB P2、0MOV DPTR,#TAB4 MOV A,R7MOVC A,@A+DPTR MOV P0,ALCALL DELAY W1: INC R4CJNE R4,#10 ,W2 MOV R4,#0INC R5CJNE R5,#10,W2 MOV R5,#0INC R6CJNE R6,#6,W2 MOV R6,#0CLR P2、0JNB P1、0,CIRCLECLR TR0JNB P1、2,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, W3CLR P1、2LJMP W4W3: CPL P1、0W4: RETIITRU1: MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256CPL P1、5JNB P1、5 ,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晶振赋值,如果为11、0192M晶振,重新赋值164SETB EASETB ET0MOV DPTR,#TABMOV A,#0MOV R0,#0MOV R1,#0MOV R2,#0MOV R3,#0MOV R4,#0JB P1、0,M1 ;通过对P1,0的查询选择测量周期或者脉宽M0: JB P3、2,$ ;利用查询的方式开启定时器SETB TR0JNB P3、2,$JB P3、2,$JNB P3、2,$JB P3、2,$CLR TR0LJMP LOOPM1: JB P3、2,M1SETB TR0JNB P3、2,$JB P3、2,$CLR TR0LOOP: MOV A,TL0MOV B,#10DIV ABMOV R1,BMOV R2,AMOV A,R0MOV B,#10DIV ABMOV 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加强了对单片机的理解,学会利用单片机进行脉冲宽度与周期的测量,并且掌握了十六进制转换为十进制的技巧。