| |
单片机C语言问题
|
|
作者: shampaign
01-01 08:00
回复
|
|
有没有大虾帮看一下以下问题呢,为什么会不能编译?
#include<regx51.h>
#define TIMER0_COUNT 0xEE11
const seven[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
unsigned char timer0_tick,i=0;
static void timer0_isr(void) interrupt TF0_VECTOR using1
{
TR0=0;
TL0=(TIMER0_COUNT & 0x00FF);
TH0=(TIMER0_COUNT >> 8);
TR0=1;
timer0_tick+=;
if (timer0_tick==200) {
i++;
if(i==10) i=0;
timer0_tick=0;
P1=seven_seg[i];
}
}
static void timer0_initialize (void)
{
EA=0;
timer0_tick=0;
TR0=0;
TMOD=0x01;
TL0=(TIMER0_COUNT & 0X00FF);
TH0=(TIMER0_COUNT >>8);
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main(void) {
timer0_initialize();
while(1);
}
问题补充:哦,不好意思,编译错误提示是这样的:
* ERROR L121: IMPROPER FIXUP
MODULE:timer0.obj(TIMER0)
SEGMENT:ABSOLUTE
OFFSET:000BH
Target not created
也没见人回答实质性问题呀,算了!
还有,我的<regx51.h>应该是有这个文件的,因为我已经用它编了好几个程序了,在硬件上也实现了。
谢谢你们,那么,现在能再看看吗?
还有,程序描述:
这个程序利用89S51控制一个七段显示器,然后通过timer0的控制不停地显示0~9 |
|
| |
回复:单片机C语言问题
|
|
作者: vickyjoe
01-01 08:00
回复
|
|
1、你建立工程了没?
2、我在keil下编译你的程序,修改了三个地方,然后OK!
第一个地方:static void timer0_isr(void) interrupt TF0_VECTOR using1 中using 和1之间有空格。
第二个地方:timer0_tick+=;应该是timer0_tick++;(按你的程序描述而知)
第三个地方:P1=seven_seg[i]; 该成P1=seven[i];因为你前面定义的数组是const seven[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; |
|
| |
回复:单片机C语言问题
|
|
作者: shampaign
06-25 19:38
回复
|
|
对了,由于你的提醒,我知道原来我的程序没错,不过为什么当在下拉菜单:options for Target"Target 1',中,我一定要设置
code rom size: compact:2K functions,64Kprogram 或者
Large: 64K program |
|
|