单片机课程同步实验指导 实验报告及答案)
实验报告配套教材:
书名:单片机课程同步实验指导
作者:韩晓东
出版社:清华大学出版社
实验报告概述:
1、延时程序设计 要使程序“逗留”,就要使它原地踏步。实现这一目的的方法就是让它反复执行同一指令,并控制重复的次数,已确定其延时的时间。程序运行一次耗时2T,即2微秒,现在设计0.1s延时程序如下: Delay100ms: ;0.1s延时程序 MOV R7,#0 ;延时1微秒,给R7=0 MOV R6,#195 ;延时1微秒 R6=195 LOP:DJNZ R7,$ ;R7子减一直到零,延时 DJNZ R6,LOP ;判断R6是否减到0,为0跳出循环,延时 RET ;返回,延时 如果需要4s,5s,1s只要将上面的程序循环40次,50次,10次即可,程序如: Delay1s:/*延时1秒*/ MOV R7,#0 MOV R6,#195 mov R5,#10 LOP2:DJNZ R7,$ djnz R6,lop2 mov R6,#195 djnz R5,lop2 ;再次循环0.1s的程序10次,即为1秒 ret Delay4s:/*延时4秒*/ MOV R7,#0 MOV R6,#195 mov R5,#40 LOP3:DJNZ R7,$ djnz R6,lop3 mov R6,#195 djnz R5,lop3 ;再次循环0.1s的程序40次,即为4秒 ret Delay5s:/*延时5秒*/ MOV R7,#0 MOV R6,#195 mov R5,#50 LOP4:DJNZ R7,$ djnz R6,lop4 mov R6,#195 djnz R5,lop4 ;再次循环0.1s的程序50次,即为5秒 ret 2、红绿黄灯点亮程序设计 分别给P1口的8个端口赋值即可以让红绿黄LED发光,让第一支红色的点亮就给P1=0feh,也就是说只让第一支LED发光,其它的端口都为高电平。同理黄灯点亮为P1=0fdh,绿灯P1=0fbh。设计出的主程序如下: org 0000h ;程序从0000h单元开始 main: ;主函数 lop1:mov P1,#0feh /*点亮红色的LED*/ call delay4s /*调用延时程序*/ mov P1,#0fdh /*点亮黄色的LED*/ call delay1s /*调用延时程序*/ mov P1,#0fbh /*点亮绿色的LED*/ call delay5s /*调用延时程序*/ jmp lop1 ;再次循环 3、设计两个路口红绿灯程序 要使两个路口的的交通灯都工作,即让两路口的灯都亮,只是LED指示的颜色不一样,就在上面程序中在点亮一只LED即可,程序如下: org 0000h main: lop1:mov P1,#0deh /*点亮一个路口的红灯和另一个路口的绿灯*/ call delay4s /*调用延时程序*/ mov P1,#0edh /*点亮一个路口的黄灯和另一个路口的黄灯*/ call delay1s /*调用延时程序*/ mov P1,#0f3h /*点亮一个路口的绿灯和另一个路口的红灯*/ call delay5s /*调用延时程序*/ jmp lop1