职位关键字 工作地点
工作名称 公司名称 校园招聘
中国最好的工作搜索引擎!
  回复留言  
  单片机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

标 题:
内 容:
用户名:
 游客
 
 
Copyright©2005-2007, 版权所有 WWW.JOBMET.COM
ICP证:京ICP备06019556号