上移的:
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;
}
}
}
}
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |