这是原理图,下面是程序
- #include<reg51.h>
- void delay(); //延时约1ms函数声明
- void main()
- {
- unsigned char code led[10][8]={0x18,0x24,0x24,0x24,0x24,0x24,0x24,0x18, //0
- 0x00,0x18,0x1c,0x18,0x18,0x18,0x18,0x18, //1
- 0x00,0x1e,0x30,0x30,0x1c,0x06,0x06,0x3e, //2
- 0x00,0x1e,0x30,0x30,0x1c,0x30,0x30,0x1e, //3
- 0x00,0x30,0x38,0x34,0x32,0x3e,0x30,0x30, //4
- 0x00,0x1e,0x02,0x1e,0x30,0x30,0x30,0x1e, //5
- 0x00,0x1c,0x06,0x1e,0x36,0x36,0x36,0x1c, //6
- 0x00,0x3f,0x30,0x18,0x18,0x0c,0x0c,0x0c, //7
- 0x00,0x1c,0x36,0x36,0x1c,0x36,0x36,0x1c, //8
- 0x00,0x1c,0x36,0x36,0x36,0x3c,0x30,0x1c}; //9
- unsigned char w;
- unsigned int i,k,m;
- while(1)
- {
- for(k=0;k<10;k++) //字符个数控制变量
- {
- for(m=0;m<400;m++)
- {
- //每个字符扫描显示400次,控制每个字符显示时间 {
- w=0x01; //行变量w指向第一行
- for(i=0;i<8;i++)
- {
- P3=w; //行数据送P3口
- P0=~led[k][i]; //列数据送P0口
- delay();
- w<<=1;
- P0=0xff;
- }
- }
- }
- }
- }
- void delay()
- {
- unsigned char i,j;
- for
- (i=0;i<1;i++);
- for(j=0;j<10;j++);
- }
复制代码
仿真时发现旋转了90度,想了很久也不知道怎转过来,老师要求把它摆正,求各位写一下程序教教小弟,谢谢!
|