预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验目得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、编写程序:要求在灯移动得同时,蜂鸣器逐位报警。三、实验程序流程框图与程序清单延时程序流程框图:实验程序流程框图:汇编程序:ORG0000HMOVA,#11111110BMOVP3,#0FFHMAIN:MOVR0,#07HLOOP1:LCALLDELAYMOVP3,ARLACLRP2、0LCALLDELAYSETBP2、0DJNZR0,LOOP1MOVR0,#07HLOOP2:LCALLDELAYMOVP3,ARRACLRP2、0LCALLDELAYSETBP2、0DJNZR0,LOOP2LJMPMAINDELAY:MOVR7,#17HDL1:MOVR6,#98HDL0:MOVR5,#46HDJNZR5,$DJNZR6,DL0DJNZR7,DL1RETENDC语言程序:#include<reg52、h>#include<intrins、h>unsignedchartemp;inti;voiddelay(void);sbitspeaker=P2^0;voidmain(){temp=0xfe;P3=temp;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;delay();P3=temp;}}}voiddelay(void){unsignedchara,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、14、15、16、六、实验总结通过本次实验,我复习了Proteus软件得使用方法,学习了更多得对KEIL得调试方法,对keil与Proteus得使用更加熟悉了,通过用Proteus软件画图,熟悉了单片机电路基本得设计方法,掌握了单片机并行I/O口得直接应用方法,对子程序得调用左移、右移指令可以灵活得运用,同时对keil产生得HEX型得文件得有了新得认识与应用思考题1、编程实现LED0至LED7以十六进制计数规律亮灯?程序设计流程框图如下:汇编实验程序:ORG0000HMAIN:MOVP3,#256MOVA,#0FFHLOOP:MOVP3,ACLRP2、0LCALLDELAYSETBP2、0LCALLDELAYDECALJMPLOOPDELAY:MOVR7,#17HDL1:MOVR6,#98HDL0:MOVR5,#46HDJNZR5,$DJNZR6,DL0DJNZR7,DL1RETENDC语言程序:#include<reg52、h>#include<intrins、h>unsignedchartemp;inti;voiddelay(void);sbitspeaker=P3^1;voidmain(){P3=0X00;temp=0xFF;while(1){for(i=0;i<0XFF;i++){speaker=0x00;delay();speaker=0x01;P3=temp;temp=temp-1;}}}voiddelay(void){unsignedchara,b,c;for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);_nop_;}结果如下图所示:2、4、6、8、10、11、12、