📄 btm48.i
字号:
#line 1 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
#line 1 "C:/PROGRA~1/icc/include/iom48v.h"
#line 7 "C:/PROGRA~1/icc/include/iom48v.h"
#line 11 "C:/PROGRA~1/icc/include/iom48v.h"
#line 14 "C:/PROGRA~1/icc/include/iom48v.h"
#line 17 "C:/PROGRA~1/icc/include/iom48v.h"
#line 2 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
#line 1 "D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h"
#line 1 "C:/PROGRA~1/icc/include/iom48v.h"
#line 7 "C:/PROGRA~1/icc/include/iom48v.h"
#line 11 "C:/PROGRA~1/icc/include/iom48v.h"
#line 14 "C:/PROGRA~1/icc/include/iom48v.h"
#line 17 "C:/PROGRA~1/icc/include/iom48v.h"
#line 2 "D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h"
#line 1 "C:/PROGRA~1/icc/include/macros.h"
#line 35 "C:/PROGRA~1/icc/include/macros.h"
void _StackCheck(void);
void _StackOverflowed(char);
#line 3 "D:\ele\AVR\ICC\biaotao\biaotouM48/bt.h"
unsigned char shu[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
unsigned char tm[4]={11,11,11,11};
unsigned char doudian;
void port_init(void)
{
(*(volatile unsigned char *)0x25) = 0x30;
(*(volatile unsigned char *)0x24) = 0x3C;
(*(volatile unsigned char *)0x28) = 0x06;
(*(volatile unsigned char *)0x27) = 0x0F;
(*(volatile unsigned char *)0x2B) = 0xDf;
(*(volatile unsigned char *)0x2A) = 0xD8;
}
void DAT(unsigned char x)
{
if((x&0x01)==0x01)(*(volatile unsigned char *)0x2B)|=0X40;else(*(volatile unsigned char *)0x2B)&=~0X40;
if((x&0x02)==0x02)(*(volatile unsigned char *)0x2B)|=0X80;else(*(volatile unsigned char *)0x2B)&=~0X80;
if((x&0x04)==0x04)(*(volatile unsigned char *)0x25)|=0X20;else(*(volatile unsigned char *)0x25)&=~0X20;
if((x&0x08)==0x08)(*(volatile unsigned char *)0x28)|=0X02;else(*(volatile unsigned char *)0x28)&=~0X02;
if((x&0x10)==0x10)(*(volatile unsigned char *)0x28)|=0X04;else(*(volatile unsigned char *)0x28)&=~0X04;
if((x&0x20)==0x20)(*(volatile unsigned char *)0x2B)|=0X10;else(*(volatile unsigned char *)0x2B)&=~0X10;
if((x&0x40)==0x40)(*(volatile unsigned char *)0x2B)|=0X08;else(*(volatile unsigned char *)0x2B)&=~0X08;
if((x&0x80)==0x80)(*(volatile unsigned char *)0x25)|=0X10;else(*(volatile unsigned char *)0x25)&=~0X10;
}
void del(int time)
{
do
{
time--;
}
while (time>1);
}
void dot(unsigned char dou)
{
switch(dou)
{
case 1 :(*(volatile unsigned char *)0x25)|=0X04;DAT(~0x80);del(226);(*(volatile unsigned char *)0x25)&=~0X04;DAT(0xff);del(5); break;
case 2 :(*(volatile unsigned char *)0x25)|=0X08;DAT(~0x80);del(226);(*(volatile unsigned char *)0x25)&=~0X08;DAT(0xff);del(5); break;
case 3 :(*(volatile unsigned char *)0x28)|=0X01;DAT(~0x80);del(226);(*(volatile unsigned char *)0x28)&=~0X01;DAT(0xff);del(5); break;
case 4 :(*(volatile unsigned char *)0x28)|=0X08;DAT(~0x80);del(226);(*(volatile unsigned char *)0x28)&=~0X08;DAT(0xff);del(5); break;
}
}
void A()
{
(*(volatile unsigned char *)0x25)|=0X04;DAT(shu[tm[0]]);del(180);(*(volatile unsigned char *)0x25)&=~0X04;DAT(0xff);del(5);asm("wdr");
(*(volatile unsigned char *)0x25)|=0X08;DAT(shu[tm[1]]);del(180);(*(volatile unsigned char *)0x25)&=~0X08;DAT(0xff);del(5);asm("wdr");
(*(volatile unsigned char *)0x28)|=0X01;DAT(shu[tm[2]]);del(180);(*(volatile unsigned char *)0x28)&=~0X01;DAT(0xff);del(5);asm("wdr");
(*(volatile unsigned char *)0x28)|=0X08;DAT(shu[tm[3]]);del(180);(*(volatile unsigned char *)0x28)&=~0X08;DAT(0xff);del(5);asm("wdr");
dot(doudian);
}
void bee(unsigned int soundlong,unsigned int tone)
{
unsigned int spfreq,j,j1,k;
spfreq=(15000/tone)/2;
for(j=0;j<soundlong;j++)
for(j1=0;j1<20;j1++)
{
(*(volatile unsigned char *)0x25)&=~0X40;
for(k=0;k<spfreq;k++);
(*(volatile unsigned char *)0x25)|=0X80;
for(k=0;k<spfreq;k++);
asm("wdr");
}
(*(volatile unsigned char *)0x25)|=0X80;
}
void delay(unsigned int n)
{
unsigned int i2=0;
while(i2<n)
{
A();i2++;asm("wdr");
}
}
void show(unsigned char n,unsigned int dat)
{
unsigned char i;
for(i=0;i<4;i++){
tm[i]=dat%10;
dat/=10;
}
i=3;
while(tm[i]==0&&i>0){
tm[i]=11;
i--;
}
tm[3]=n;
A();
}
void show4(unsigned int dat,unsigned char x)
{
unsigned char i;
doudian=x;
for(i=0;i<4;i++){
tm[i]=dat%10;
dat/=10;
}
i=3;
while(tm[i]==0&&i>0)
{
tm[i]=11;
i--;
}
A();
}
#line 3 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
#line 1 "D:\ele\AVR\ICC\biaotao\biaotouM48/PT100.h"
unsigned int const RPt100[20]={0,0,0,0,10000,0,11361,35,11940,50,13850,100,17216,190,21202,300,28090,500,31513,700};
unsigned int PT100(unsigned long dat)
{
unsigned char ii=0;
unsigned int Rx;
Rx=(((1024-dat)*22000)/dat);
while(RPt100[2*ii]<=Rx)
{
ii++;
}
ii<<=1;
ii-=2;
return (((RPt100[ii+3]-RPt100[ii+1])*((Rx-RPt100[ii])/10))/((RPt100[ii+2]-RPt100[ii])/10)+RPt100[ii+1]) ;
}
#line 4 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
#line 1 "C:/PROGRA~1/icc/include/macros.h"
#line 35 "C:/PROGRA~1/icc/include/macros.h"
#line 5 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
#line 1 "C:/PROGRA~1/icc/include/eeprom.h"
#line 4 "C:/PROGRA~1/icc/include/eeprom.h"
int EEPROMwrite_extIO( int location, unsigned char);
unsigned char EEPROMread_extIO( int);
void EEPROMReadBytes_extIO(int addr, void *ptr, int size);
void EEPROMWriteBytes_extIO(int addr, void *ptr, int size);
#line 6 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
unsigned int StandartVref=0;
void watchdog_init(void)
{
asm("wdr");
(*(volatile unsigned char *)0x60) = 0x0B;
}
void putchar(unsigned char c)
{
while (!((*(volatile unsigned char *)0xC0)&(1<< 5)))asm("wdr");
(*(volatile unsigned char *)0xC6)=c;
}
void uart0_init(void)
{
(*(volatile unsigned char *)0xC1) = 0x00;
(*(volatile unsigned char *)0xC0) = 0x02;
(*(volatile unsigned char *)0xC2) = 0x06;
(*(volatile unsigned char *)0xC4) = 0x67;
(*(volatile unsigned char *)0xC5) = 0x00;
(*(volatile unsigned char *)0xC1) = 0x18;
}
unsigned long adc_rel[8];
unsigned char adc_mux;
void adc_init(void)
{
(*(volatile unsigned char *)0x7A) = 0x00;
(*(volatile unsigned char *)0x7C) = 0xC0;
(*(volatile unsigned char *)0x50) = 0x80;
(*(volatile unsigned char *)0x7A)=(1<< 7)|(1<< 6)|(1<< 2)|(1<< 1)|(1<< 0) ;
}
unsigned int cw(unsigned char mux)
{
(*(volatile unsigned char *)0x7C)=(1<< 6)|(mux&0x0f);
(*(volatile unsigned char *)0x7A)|=0xC0;
del(200);
return((*(volatile unsigned int *)0x78));
}
unsigned int cw1(unsigned char mux)
{
unsigned int adc_rel=0,a;
unsigned char i;
for(i=0;i<5;i++)
{
adc_rel+=cw(mux);
asm("wdr");
}
return (unsigned int)(adc_rel/5);
}
void cwStand(unsigned char mux)
{
unsigned int adc_rel=0,a;
unsigned char i;
(*(volatile unsigned char *)0x7A) = 0x00;
(*(volatile unsigned char *)0x7C) = 0x40;
(*(volatile unsigned char *)0x50) = 0x80;
(*(volatile unsigned char *)0x7A)=(1<< 7)|(1<< 6)|(1<< 2)|(1<< 1)|(1<< 0) ;
for(i=0;i<5;i++)
{
(*(volatile unsigned char *)0x7C)=(1<< 6)|(mux&0x0f);
(*(volatile unsigned char *)0x7A)|=0x40;
del(200);
adc_rel=(*(volatile unsigned int *)0x78);
}
adc_rel=0;
for(i=0;i<5;i++)
{
(*(volatile unsigned char *)0x7C)=(1<< 6)|(mux&0x0f);
(*(volatile unsigned char *)0x7A)|=0x40;
del(200);
adc_rel+=(*(volatile unsigned int *)0x78);
asm("wdr");
}
StandartVref=adc_rel;
}
void init_devices(void)
{
asm("cli");
port_init();
watchdog_init();
adc_init();
(*(volatile unsigned char *)0x55) = 0x00;
(*(volatile unsigned char *)0x69) = 0x00;
(*(volatile unsigned char *)0x3D) = 0x00;
(*(volatile unsigned char *)0x6E) = 0x00;
(*(volatile unsigned char *)0x6F) = 0x00;
(*(volatile unsigned char *)0x70) = 0x00;
(*(volatile unsigned char *)0x6B) = 0x00;
(*(volatile unsigned char *)0x6C) = 0x00;
(*(volatile unsigned char *)0x6D) = 0x00;
(*(volatile unsigned char *)0x68) = 0x00;
(*(volatile unsigned char *)0x64) = 0x00;
asm("sei");
}
void main(void)
{
unsigned int n=11100;
unsigned char ii=0;
unsigned int Counter,Rx,TH,Zb,TL;
init_devices();
cwStand();
while(1)
{
dat=0;
delay1(100);
dat=cw1(7);
Rx=dat*(5000/1024);
show41(Rx,1) ;
}
while(1)
{
(*(volatile unsigned char *)0x25)|=0X01;(*(volatile unsigned char *)0x24)&=~0X01;
Counter=0;Rx=0;
while(!(((*(volatile unsigned char *)0x23)&0X01)==0X01));
while((((*(volatile unsigned char *)0x23)&0X01)==0X01));
(*(volatile unsigned char *)0x85) = 0x00;(*(volatile unsigned char *)0x84) = 0x00;(*(volatile unsigned char *)0x81) = 0x02;
while(!(((*(volatile unsigned char *)0x23)&0X01)==0X01));
TH=0xffff*Counter+(*(volatile unsigned int *)0x84);
while((((*(volatile unsigned char *)0x23)&0X01)==0X01));
while(!(((*(volatile unsigned char *)0x23)&0X01)==0X01));
(*(volatile unsigned char *)0x85) = 0x00;(*(volatile unsigned char *)0x84) = 0x00;(*(volatile unsigned char *)0x81) = 0x02;
while((((*(volatile unsigned char *)0x23)&0X01)==0X01));
TL=0xffff*Counter+(*(volatile unsigned int *)0x84);
}
#line 217 "D:\ele\AVR\ICC\biaotao\biaotouM48\btm48.c"
while(1)
{
delay(10);
show4(PT100(cw1(5)),1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -