我是菜鸟
那为大哥可以帮我把bg6cr的频率计的程序编译成hex文件,我为什么编译不了,老是提示can't compile/assembie this file
no transtor is availabie for files with this extension.
我想请问一下这是什么意思,我为什么不能编译?
// --------------------------------------
// diy-a1 frequency display module
// mcu code version 1.00
// 2002.07.08
// designed by rong xinhua, bd6cr
// e-mail:
bd6cr@qsl.net// --------------------------------------
// hardware: diy-a1 rev a
//
http://www.qsl.net/bd6cr/fc// order:
http://www.qsl.net/bd6cr/store// at89c2051 + 74hc390 + c-284ci
// clock: 12mhz
// --------------------------------------
// compiler:
// keil 8051 c compiler v5.20 (dll: 1.24)
// (uvision/51 for windows version 1.24)
// download:
http://www.mcu51.com// --------------------------------------
#include <at892051.h>
//pin definition
#define mhz_butt p3_3
#define offset p3_2
#define seg1 p3_7
#define seg2 p3_4
#define seg3 p3_1
#define seg4 p3_0
#define finput p3_5
#define leddata p1
//constant definition
//frequency offset for 139a receiver
#define offset1 -4650 //default, usually set to 0. -4650 means f(rx) = f(vfo)-465.0khz
#define offset2 4650
//variable definition
unsigned char convert[10] = {0x3f,0x21,0x5b,0x73,0x65,0x76,0x7e,0x23,0x7f,0x77};
unsigned char digits[4] = {0xff,0xff,0xff,0xff};
unsigned char timer0_count = 0, timer1_count = 0;
unsigned char temp1, temp2, temp3;
unsigned char tag = 0, mhz = 0;
//subroutines
void timer0() interrupt 1 using 1 {
timer0_count ++;
if (timer0_count == 16) {
ea = 0;
tag = 1;
tr1 = 0;
tr0 = 0;
temp1 = timer1_count;
temp2 = th1;
temp3 = tl1;
timer0_count = 0;
th0 = 189;
tl0 = 208;
timer1_count = 0;
th1 = 0;
tl1 = 0;
tr0 = 1;
tr1 = 1;
ea = 1;
}
}
void timer1() interrupt 3 using 2 {
timer1_count ++;
}
unsigned char bcd_seg(unsigned char n) {
if (n < 10) return(convert[n]);
return(0);
}
void delay() {
int j;
for (j=0; j< 120; j++) {
if (mhz_butt == 0) mhz = 1; //mhz_butt pressed?
} //delay some time
}
void display() {
leddata = digits[3];
seg4 = 0;
delay();
seg4 = 1;
leddata = digits[2];
seg3 = 0;
delay();
seg3 = 1;
leddata = digits[1];
seg2 = 0;
delay();
seg2 = 1;
leddata = digits[0];
seg1 = 0;
delay();
seg1 = 1;
}
//main goes here
main()
{
unsigned long count;
tmod = 0x51; //tmr1 external input: 0x51
ie = 0x8a;
ip = 0x08; //timer1 piority higher than timer0
th0 = 189;
tl0 = 208;
th1 = 0;
tl1 = 0;
tr0 = 1; //start tmr0 here
tr1 = 1;
while (1) {
if (tag) {
display();
display();
count = temp1 * 65536;
display();
display();
count = count + temp2 * 256;
display();
display();
count = count + temp3;
display();
display();
if (offset) count = count + (offset1);
else count = count + (offset2);
display();
display();
if (mhz) count = count / 100;
else count = count % 10000;
display();
display();
digits[3] = bcd_seg(count / 1000);
if (mhz) digits[3] = digits[3] + 128;
display();
display();
count = count % 1000;
display();
display();
digits[2] = bcd_seg(count / 100);
display();
display();
count = count % 100;
display();
display();
digits[1] = bcd_seg(count / 10);
if (mhz == 0) digits[1] = digits[1] + 128;
display();
display();
count = count % 10;
digits[0] = bcd_seg(count);
tag = 0;
mhz = 0;
}
display();
display();
}
}