
上移的:
void delay(void);
int8 n;
int8 delta_p;
int8 *p;
void main(void){
int8 i;
int8 j;
p=&num_tab[0][0];
TMOD=0x01;
TH0=0xfc;
TL0=0x18;
ET0=1;
EA=1;
TR0=1;
while(1)
{
for(i=0;i<8;i++){
delay();
P0=*(p+delta_p);
P2=i|0x18;
p++;
if(p>&num_tab[0][7])
p=&num_tab[0][0];
}
}
}
void delay(void){
int16 i;
for(i=0;i<500;i++);
}
void timer0() interrupt 1 using 3
{
TF0=0;
TH0=0xfc;
TL0=0x18;
if(n<200)
{
n++;
}
else
{
n=0;
if(delta_p>240)
delta_p=0;
else
delta_p+=2;
}
}

谢谢了呵呵!向上移动的我知道怎么写啊!就是向左右移动不知道怎么写的!请帮我看一下这个程序(向右移动的)什么意思啊?有3句看不懂啊?谢谢!
//功能:实现→向右移动
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code TAB[]={0xFF,0xC1,0xDF,0xDF,0xC1,0xFD,0xFD,0xC1};
uchar i,t,j=0;
delay(uchar t)
{
while (t--)
{;}
}
void main(void)
{
uchar T,Y,Q;
while(1)
{
for(Q=0;Q<8;Q++)
for(T=0;T<100;T++) //速度
{ P1=0x01;
for(i=0;i<8;i++)
{
Y=TAB[i+1]*256+TAB[i];//这什么意思 为什么乘256
Y=Y<<(7-Q)|Y>>Q; //这什么意思
P0=Y%256; //什么意思 为什么要取它的摸!
delay(60);
P1=P1<<1|P1>>7;
}
}
}
}

回复
打赏帖 | |
---|---|
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】mcxa156使用低功耗定时器适配硬件RTC框架被打赏26分 | |
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 |