1、一、 实验目得 1、熟悉Proteus软件与Keil软件得使用方法 。 2、熟悉单片机应用电路得设计方法 。 3、掌握单片机并行I/O口得直接应用方法 。 4、掌握单片机应用程序得设计与调试方法。 二、设计要求 1、用Proteus软件画出电路原理图。要求在P1、0至P1、7口线上分别接 LED0至LED7八个发光二极管,在P3、0口线上接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、
2、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动得同时,蜂鸣器逐位报警。 三、实验程序流程框图与程序清单 延时程序流程框图: 实验程序流程框图: 汇编程序: ORG 0000H MOV A, #
3、11111110B MOV P3, #0FFH MAIN : MOV R0, #07H LOOP1: LCALL DELAY MOV P3, A RL A CLR P2、0 LCALL DELAY SETB P2、0 DJNZ R0, LOOP1 MOV R0, #07H LOOP2: LCALL DELAY
4、 MOV P3, A RR A CLR P2、0 LCALL DELAY SETB P2、0 DJNZ R0, LOOP2 LJMP MAIN DELAY: MOV R7, #17H DL1: MOV R6, #98H DL0: MOV R5, #46H DJNZ R5, $ DJNZ
5、R6, DL0
DJNZ R7, DL1
RET
END
C语言程序:
#include
6、 while(1) { for(i=0;i<7;i++) { temp=_crol_(temp,1); speaker=0; delay(); speaker=1; delay(); P3=temp; } for(i=0;i<7;i++) { speaker=0; temp=_cror_(temp,1); delay(); speaker=1;
7、 delay(); P3=temp; } } } void delay(void) { unsigned char a,b,c; for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--); _nop_; } 四:电路原理图: 五:实验结果 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 11、 12、 13、
8、14、 15、 16、 六、实验总结 通过本次实验,我复习了Proteus软件得使用方法,学习了更多得对KEIL得调试方法,对keil与Proteus得使用更加熟悉了,通过用Proteus软件画图,熟悉了单片机电路基本得设计方法,掌握了单片机并行I/O口得直接应用方法,对子程序得调用左移、右移指令可以灵活得运用,同时对keil产生得HEX型得文件得有了新得认识与应用 七、 思考题 1、编程实现LED0至LED7以十六进制计数规律亮灯 ? 程序设计流程框图如下: 汇编实验程序: ORG 0000H MAIN: MOV P3,
9、 #256 MOV A, #0FFH LOOP: MOV P3, A CLR P2、0 LCALL DELAY SETB P2、0 LCALL DELAY DEC A LJMP LOOP DELAY: MOV R7, #17H DL1: MOV R6, #98H DL0: MOV R5, #46H DJNZ R5, $ DJN
10、Z R6, DL0
DJNZ R7, DL1
RET
END
C语言程序:
#include
11、 {speaker=0x00; delay(); speaker=0x01; P3=temp ; temp=temp-1; } } } void delay(void) { unsigned char a,b,c; for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--); _nop_; } 结果如下图所示: 1. 2、 3. 4、 5. 6、 7. 8、 9. 10、 11、 12、
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818