subscriptonnon-arrayortoomanydimensions5

360U3313254150 |浏览723次
收藏|2021/07/10 06:32

满意回答

2021/07/10 06:59

改好可以编译通过的程序如下。不作解释了,因为单片机的程序你必须自己理解及配置相应的硬件才能运行的,参考别人的程序基本没意义。#include "reg52.h"//#include "intrins.h"#define uchar unsigned char#define uint unsignedsbit IN=P1^0; //红外接收sbit CNTROL=P1^1;const uchar tab1[]= { 0x18,0x00,0x18,0x00,0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x08,0x20,0x18,0x00,0x18,0x00, /*"T",0*/ 0x08,0x20,0xF8,0x3F,0xF8,0x3F,0x88,0x20,0x88,0x20,0xF8,0x31,0x70,0x1F,0x00,0x0E, /*"I",1*/ 0x10,0x04,0x10,0x07,0xD0,0x03,0xFF,0xFF,0xFF,0xFF,0xD0,0x04,0x94,0x06,0x04,0x03, 0x84,0x01,0xE4,0xFF,0xFC,0xFF,0x9C,0x00,0x84,0x01,0x04,0x07,0x04,0x06,0x04,0x00, /*"杯",2*/};const uchar tab2[]= { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; // 同心圆/***************************************************************************延时函数***************************************************************************/void delay(uint k){ //延时k*1ms uint m,n,b; for(m=0; m<k; m++) { b=0; for(n=0; n<120; n++) b=1; }}/***************************************************************************TI杯函数***************************************************************************/void TIT(){ uchar j,i,q=0; while(1) { //等待标志杆到了开始显示 IN=1; if(IN==0) { IN=1; break; } } while (1) //循环滚屏显示TI杯 { P0=0xff; P2=0xff; for (i=0; i<20; i++) { for(j=q; IN==1; j++) { if(q==7) { P2=tab1[j%64]; delay(20); } else { P0=tab1[j%64]; delay(20); } } } if(CNTROL!=1) break; //功能键下不是1跳出函数 } q=q+2; //显示下一屏内容}/***************************************************************************同心圆函数***************************************************************************/void circle(){ uchar j,i,q=0; while(1) { // 等待标志杆到来开始显示同心圆 IN=1; if(IN==0) { IN=1; break; } } while (1) { P0=0xff; P2=0xff; for (i=0; i<20; i++) { for(j=q; IN==1; j++) //外层起显示一圈同心圆 { if(q==7) { P0=tab2[j/16]; delay(20); } else { P2=tab2[j/16]; delay(20); } } } if(CNTROL!=0) break; } q=q+1;}void main (void ){ uchar i; { for (i=0; i<16; i++) { if (i!=7) P2=tab2[i]; else P1=tab2[i]; } while(1) { switch((int)CNTROL) { case 0 : circle() ; break; // 显示TI杯 case 1 : TIT() ; break; // 显示同心圆 default : break; } } }}

whoami1978

其他回答(0)
0人关注该问题
+1

 加载中...