资源描述:
《at89s51单片机试验及实践教程之广告灯(利用取表方式)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、AT89S51单片机试验及实践教程之广告灯(利用取表方式)
2、第1...lunouseg(this)">图4.5.13.系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。4.程序设计内容在用表格进行程序设计的时候,要用以下的指令来完成•利用MOVDPTR,#DATA16的指令来使数据指针寄存器指到表的开头。•利用MOVCA,@A+DPTR的
3、指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。因此,只要把控制码建成一个表,而利用MOVC 工,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:5.程序框图500)this.style.ouseg(this)">图4.5.26.汇编源程序ORG0START:MOVDPTR,#TABLELOOP:CLRAMOVCA,A+DPTRCJNEA,#01H,LOOP1JMPSTARTLOOP1:MOVP1,AMOVR3,#20LCALLDELAY
4、INCDPTRJMPLOOPDELAY:MOVR4,#20D1:MOVR5,#248DJNZR5,$DJNZR4,D1DJNZR3,DELAYRETTABLE:DB0FEH,0FDH,0FBH,0F7HDB0EFH,0DFH,0BFH,07FHDB0FEH,0FDH,0FBH,0F7HDB0EFH,0DFH,0BFH,07FHDB07FH,0BFH,0DFH,0EFHDB0F7H,0FBH,0FDH,0FEHDB07FH,0BFH,0DFH,0EFHDB0F7H,0FBH,0FDH,0FEHDB00H,0FFH
5、,00H,0FFHDB01HEND7.C语言源程序#includeunsignedcharcodetable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00,0xff,0x00,0xff,0x01};unsignedchari;
6、voiddelay(void){unsignedcharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}voidmain(void){while(1){if(table[i]!=0x01){P1=table[i];i++;delay();}else{i=0;}}}