标题:
51单片机实现8*8滚动箭头的程序,运行时什么图案都没有,甚至根本不亮
[打印本页]
作者:
+嗄过6
时间:
2022-11-30 15:43
标题:
51单片机实现8*8滚动箭头的程序,运行时什么图案都没有,甚至根本不亮
各位大佬,我是刚刚开始学习单片机的小白,今天尝试做滚动箭头时做了一下午在Proteus上仿真运行都没有效果,照着类似帖子做的图和代码如下,运行时什么图案都没有,甚至根本不亮。求助问题出在哪
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar code M[]={0xff,0xff,0xfe,0xfd,0xf8,0xfd,0xfe,0xff,
0xff,0xff,0xfd,0xfb,0xf0,0xfb,0xfd,0xff,
0xff,0xff,0xfb,0xf7,0xe0,0xf7,0xfb,0xff,
0xff,0xff,0xf7,0xef,0xc0,0xef,0xf7,0xff,
0xff,0xff,0xef,0xdf,0x80,0xdf,0xef,0xff,
0xff,0xff,0xdf,0xbf,0x00,0xbf,0xdf,0xff};
uchar i,num,t;
int main(){
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
EA=1;
ET0=1;
P3=0x80;
while(1);
return 0;
}#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar code M[]={0xff,0xff,0xfe,0xfd,0xf8,0xfd,0xfe,0xff,
0xff,0xff,0xfd,0xfb,0xf0,0xfb,0xfd,0xff,
0xff,0xff,0xfb,0xf7,0xe0,0xf7,0xfb,0xff,
0xff,0xff,0xf7,0xef,0xc0,0xef,0xf7,0xff,
0xff,0xff,0xef,0xdf,0x80,0xdf,0xef,0xff,
0xff,0xff,0xdf,0xbf,0x00,0xbf,0xdf,0xff};
uchar i,num,t;
int main(){
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
EA=1;
ET0=1;
P3=0x80;
while(1);
return 0;
}
X6${UBZNR1EW(ND08BCEB4J.png
(74.68 KB, 下载次数: 37)
下载附件
2022-11-30 15:41 上传
作者:
xianfajushi
时间:
2022-11-30 18:32
看我帖子有荔枝
作者:
Longan.Wang
时间:
2022-12-1 09:56
你用了while(1); 看来是想在定时器中断里更新显示帧,可是你连Timer的中断服务程序都没有。
只要你能完成一个静态帧的显示,动态帧就好处理了。
时间一到,显示下一帧时,把指针初始指向显示数组的第二行(这里的行是指代表显示屏上第二行的第一个字节),直到到数组最后一个字节,再跳转到数组第一个字节;
依此类推。。。。。。。。。
作者:
xianfajushi
时间:
2022-12-1 13:47
简单得很的基础,闲来无事,随意写一个:int main(){char ys=0,wei=0,sj=0;while(1){if(wei==0)wei=1;else wei*=2;P3=m[sj];P2=wei;while(++ys);P2=P3=255;if(++sj>8)sj=0;}}让看到前8个数据组成一屏是什么。
作者:
cooltao2008
时间:
2022-12-3 15:55
看了一下你的程序,发现只有中断初始化,但是中断函数不见了,你的显示函数也没有,连接的P2口也没有定义,能显示才怪了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1