《单片机并行IO口的应用实验(8页).doc》由会员分享,可在线阅读,更多相关《单片机并行IO口的应用实验(8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-一、 实验目的 1、熟悉Proteus软件和Keil软件的使用方法 。 2、熟悉单片机应用电路的设计方法 。 3、掌握单片机并行I/O口的直接应用方法 。 4、掌握单片机应用程序的设计和调试方法。 二、设计要求 1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口线上分别接 LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。三、实验程序流程框图和程序清单 延时程序流程框图: 实验程序流程框图: 汇编程序:
2、 ORG 0000H MOV A, #11111110B MOV P3, #0FFHMAIN : 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 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
3、 R5,$ DJNZ R6,DL0 DJNZ R7,DL1 RET ENDC语言程序:#include#include unsigned char temp; int i; void delay(void); sbit speaker=P20; void main() temp=0xfe; P3=temp; while(1) for(i=0;i7;i+) temp=_crol_(temp,1);speaker=0; delay();speaker=1;delay(); P3=temp;for(i=0;i0;c-) for(b=171;b0;b-) for(a=16;a0;a-); _nop_;
4、 四:电路原理图:五:实验结果1. 2. 3. 4. 5. 6. 7. 8. 9. 10.11. 12.13. 14. 15. 16. 六、实验总结通过本次实验,我复习了Proteus软件的使用方法,学习了更多的对KEIL的调试方法,对keil和Proteus的使用更加熟悉了,通过用Proteus软件画图,熟悉了单片机电路基本的设计方法,掌握了单片机并行I/O口的直接应用方法,对子程序的调用左移、右移指令可以灵活的运用,同时对keil产生的HEX型的文件的有了新的认识和应用七、 思考题1、编程实现LED0至LED7以十六进制计数规律亮灯 ? 程序设计流程框图如下:汇编实验程序: ORG 000
5、0HMAIN: MOV P3, #256 MOV A, #0FFHLOOP: 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,$ DJNZ R6,DL0 DJNZ R7,DL1 RET END C语言程序: #include#includeunsigned char temp; int i; void delay(void); sbit speaker=P31;void main() P3=0X00; temp=0xFF; while(1) for(i=0;i0;c-) for(b=171;b0;b-) for(a=16;a0;a-); _nop_; 结果如下图所示:1. 2. 3. 4.5. 6.7. 8.9. 10.11. 12. -第 8 页-