大佬救命,我用的是清翔的51单片机,下面这个程序是控制共阳8*8点阵屏亮出相应图形。下面这个程序是第一种代码(运行还算正常,但是第一行最后一列那个灯珠亮得比第一列的灯暗,也不知道为啥),将colwall数组中第一个元素和第二个元素互换位置是第二种代码。第二种代码亮的实际效果和我在第二种代码写的不一样,本应是最后一列就第二行那个灯亮,结果最后一列的灯全亮了,而且最后一列亮得还比第一列暗。 求解,晚上就要交作业了 ,呜呜呜。#include"reg52.h"#include"intrins.h"#define uchar unsigned char#define uint unsigned intsbit dio=P3^4;sbit s_k=P3^5;sbit r_k=P3^6;void main() { char rowwall=0x80,colwall[9]={0x7e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe}; int i,p,q; for(i=0;i<8;i++) { r_k=0; for(q=0;q<8;q++) { s_k=0; if(colwall[i]&0x01) dio=1; else dio=0; s_k=1; colwall[i]>>=1; } for(p=0;p<8;p++) { s_k=0; if(rowwall&0x01) dio=1; else dio=0; s_k=1; rowwall>>=1; } rowwall=_cror_(rowwall,1); r_k=1; }}