关于单片机旋转POV显示C语言程序的错误

问题描述

关于单片机旋转POV显示C语言程序的错误

#include
#define uint unsigned int
#define uchar unsigned char
uchar code buffer[]= //*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*//
{
0x10,0x60,0x02,0x8C,0x20,0x18,0x08,0x08,0x88,0x7F,0x88,0x08,0x28,0x18,0x08,0x00, //沈
0x04,0x04,0x7E,0x01,0x80,0x40,0x30,0x0C,0x03,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,
0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0xFC,0x00,0x00, //阳
0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0xFF,0x41,0x41,0x41,0x41,0x41,0xFF,0x00,0x00,

0x80,0xFC,0x96,0xE5,0x84,0xFC,0x00,0x08,0xC8,0x49,0x4A,0xC8,0x08,0x08,0x00,0x00, //航
0x80,0x7F,0x02,0x4C,0x80,0x7F,0x80,0x60,0x1F,0x00,0x00,0x3F,0x40,0x40,0x78,0x00,

0x10,0x0C,0x44,0x24,0x14,0x04,0x05,0x06,0x04,0x04,0x14,0x24,0x44,0x14,0x0C,0x00, //空
0x00,0x40,0x40,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x40,0x00,0x00,
0x80,0xFC,0x96,0xE5,0x84,0xFC,0x00,0x08,0xC8,0x49,0x4A,0xC8,0x08,0x08,0x00,0x00, //航
0x80,0x7F,0x02,0x4C,0x80,0x7F,0x80,0x60,0x1F,0x00,0x00,0x3F,0x40,0x40,0x78,0x00,
0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00, //天
0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00, //大
0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00,
0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00, //学
0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,
};
uint i,sw=0,sd=0;
void delay(void)
{
EA=0;
TH0=0x78;TL0=0x78;
EA=1;
while(0==sw);
sw=0;
}
void display(uint kk) //显示函数,其中kk为定义第几个字
{
P1=0xff;P2=0xff;
for(i=0;i
{
P1=buffer[i*2+kk*32];P2=buffer[1+i*2+kk*32];
P1=0xff;P2=0xff;
delay();
}
P1=0xff;P2=0xff;
}
void display_pov(int j)
{
if(j>=7)
j=0;
display(j);
j++;
}
void timer0(void) interrupt 1 using 1
{
TH1=0xf6;TL1=0x3a;
sd=1;
}

void intersvr0(void) interrupt 1 //定时器0中断
{

sw=1;
}
void timer0_init(void) //定时器初始化
{
TMOD=0x12;

TH0=0x78;TL0=0x78; //方式2定时(T0),定时每个帧的时间为278us
TH1=0xf6;TL1=0x3a; //方式1定时(T1),定时显示每个字的时间为5004us,其中包括两列的空操作
IT0=1;ET0=1;
IT1=1;ET1=1;
TR0=1;TR1=1;
}
void main()
{
uint k=0;
timer0_init();
EA=1;
while(1)
{

    if(sd==1)
    {
        display_pov(k);
        sd=0;
    }
}

}

解决方案

在Keil软件下为何总显示
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 000BH
TO: 000DH
如何解决啊

解决方案二:

提示:代码空间内存重叠了,从000BH 到 000DH
建议看一下单片机的内存空间分配

时间: 2016-07-12
Tags: 显示

关于单片机旋转POV显示C语言程序的错误的相关文章

单片机时钟C语言程序 烧进去数码管乱跳。。

问题描述 单片机时钟C语言程序 烧进去数码管乱跳.. #include #define uchar unsigned char #define uint unsigned int sbit duan=P2^6; sbit wei=P2^7; sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

c语言-关于AT89C51单片机数字时钟的设计C语言程序warning问题

问题描述 关于AT89C51单片机数字时钟的设计C语言程序warning问题 本人新手,还希望各位大大帮忙看下怎么解决 Build target 'Target 1' assembling STARTUP.A51... linking... *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP) *** WARNING L2: REFERENCE MADE TO UN

lnk1112-51单片机显示水平度程序

问题描述 51单片机显示水平度程序 怎样编写51单片机在LCD显示屏上的测试水平度程序,或者在80c51的arm板上显示水平度程序 解决方案 sdsjn skdskfsk ndskfjddk k 解决方案二: 51单片机C语言程序(三)数-51单片机延时程序51单片机 Keil C 延时程序 解决方案三: 首先你要用过传感设备,得到水平度的测试数据,单片机分析数据,计算出正确的水平值,然后你要在LCD屏幕上显示,需要字库,剩下的就简单了.

c语言 c++ 单片机-51单片机利用两个外部中断(和一个定时器)计算两个中断的时间间隔的C语言程序。谢谢了

问题描述 51单片机利用两个外部中断(和一个定时器)计算两个中断的时间间隔的C语言程序.谢谢了 51单片机利用两个外部中断(和一个定时器)计算两个中断的时间间隔的C语言程序.谢谢了 .万分感谢... 解决方案 具体的哪个单片机?代码需要整个写好么? 解决方案二: http://zhidao.baidu.com/link?url=qpZQDUaPuGYd69ZgYe3bESTSAS7vjc0XO7puc-KtYMWVkxwtMbh5xTkWI5GbvvHT6Eb3WKFhqIfbl7HtGBGZV

Matlab与C语言程序应用编程接口

MATLAB作为世界顶尖的数学应用软件,以其强大的工程计算.算法研究.工程绘图.应用程序开发.数据分析和动态仿真等功能,在航空航天.机械制造和工程建筑等领域发挥着越来越重要的作用.而C语言功能丰富,使用灵活方便,目标程序效率高.既有高级语言的优点,又有低级语言的特点.因此,C语言是目前应用最广的编程语言.虽然MATLAB是一个完整的.功能齐全的编程环境,但在某些情况下,与外部环境的数据和程序的交互是非常必须而且有益的. 众所周知,MATLAB是用M语言编程,不能在M文件中直接调用C语言程序.可以

使用VC6.0对C语言程序进行调试的基本手段分享

这篇文章主要介绍了用VC6.0开发c语言程序的时候调试代码的一些小技巧,需要的朋友可以参考下   (1)设置固定断点或临时断点 所谓断点,是指定程序中的某一行,让程序运行至该行后暂停运行,使得程序员可以观察分析程序的运行过程中的情况.这些情况一般包括: ①在变量窗口(Varibles)中观察程序中变量的当前值.程序员观察这些值的目的是与预期值对比,若与预期值不一致,则此断点前运行的程序肯定在某个地方有问题,以此可缩小故障范围.例如以下程序是计算cos(x)并显示,运行时发现无论x输入为多少,结果

c语言 封装 运行-C语言程序如何在别人电脑上运行的问题

问题描述 C语言程序如何在别人电脑上运行的问题 我编写了一个小程序,一道选择测试的题目.写完后,拷贝了bug文件中的exe程序.运行exe程序后,可以输入数据.问题是最后出现结果后一闪而过,程序就跳出了.请问有什么办法可以清楚的显示结果,不跳出程序? 解决方案 程序结束前用下面两行代码 getchar(); getchar(); 第一行用于"吃掉"你输入你的数据末尾的'n',但它并不需要送给任何变量. 第二个用于等待用户输入一个字符,这样程序就需要等待这一操作发生才会结束. 解决方案二

下图问题怎么解决啊?C语言程序

问题描述 下图问题怎么解决啊?C语言程序 #include #include #define uchar unsinged char #define uint unsinged char #include"LM016LCD_drive.h" #include"MAX6675_drive.h" #include"DS1302_drive.h" #include"PWM.h" #define beep_0 (PORTD=PORTD

程序设计-这个C语言程序怎么写,求大神帮忙

问题描述 这个C语言程序怎么写,求大神帮忙 题目二十四:职工工资管理系统 功能设计要求(1-2人) 1. 输入记录:将每一个职工的姓名.ID号以及基本工资.职务工资.岗位津贴.医疗保险.公积金的数据作为一个记录.?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录. 2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资. 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示. 4.查找记录:可以对数据文件的任意记录的数据