📄 0316.c
字号:
#include <ht46c23.H>
const unsigned char dispbitcode[3]={0xdf,0xbf,0x7f};
const unsigned char dispcode[11]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x80};
//#pragma rambank0;
unsigned char dispbuf[8];
unsigned char dispcount;
unsigned char getdata1;
unsigned char getdata2;
unsigned long datasum;
unsigned long dataconvert;
//#pragma rambank0;
bit dispcode_5;
bit dispcode_6;
bit BPI;
bit BPS;
bit DIS2;
bit DIS4;
bit DRI2;
bit DRI4;
unsigned char DIS0;
unsigned char DIS1;
unsigned char DIS1BUF;
unsigned char DIS3;
unsigned char DRI0;
unsigned char DRI1;
unsigned char DRI3;
#pragma vector isr_8 @ 0x8
void isr_8() // timer/event 0
{
_tf=0;
_tmrh=(65535-24000)/256;
_tmrl=(65535-24000)%256;
if((BPI)&(BPS==0))
{
DRI0=DIS0;
DRI1=DIS1;
DRI3=DIS3;
DRI4=DIS4;
DRI2=DIS2;
BPI=BPS;
_pd1=BPI;
_pa=DRI0;
_pb=DRI1;
_pc=DRI3;
_pd0=DRI4;
_pa7=DRI2;
BPS=1;
}
else
{
BPI=~BPI;
DRI0^=0xFF;
DRI1^=0xFF;
DRI3^=0xFF;
DRI4=~DRI4;
DRI2=~DRI2;
_pd1=BPI;
_pa=DRI0;
_pb=DRI1;
_pc=DRI3;
_pd0=DRI4;
_pa7=DRI2;
}
}
void safeguard_init()
{
_intc0 = 0;
_intc1 = 0;
_tmrc = 0;
_tmrh = 0;
_tmrl = 0;
_pac = 0xff;
_pbc = 0xff;
_pcc = 0xff;
_pdc = 0xff;
}
void initial()
{
_tmrc=0x80;
_tmrh=(65535-24000)/256;
_tmrl=(65535-24000)%256;
_ton=1;
_eti=1;
_emi=1;
_eei=0;
_acs0=0;
_acs1=0;
_acs2=0;
_pcr0=1;
_pcr1=0;
_pcr2=0;
_adcs0=1;
_adcs1=0;
_pac = 0x00; //set port A to out put port
_pa = 0;
_pbc = 0x01; //set port B
_pcc = 0x00;
_pdc = 0x00;
_pb = 0x00;
_pc = 0x00;
_pd = 0x00;
}
void main()
{
unsigned long i;
dispcount=0;
dispcode_5=0;
dispcode_6=0;
BPI=0;
BPS=0;
DIS0=0;
DIS1=0;
DIS2=0;
DIS3=0;
DIS4=0;
DRI0=0;
DRI1=0;
DRI2=0;
DRI3=0;
DRI4=0;
safeguard_init();
initial();
getdata1=0x2E;
getdata2=0xE0;
while(1)
{
_start=0;
_start=1;
_start=0;
while(_eocb);
for(i=30000;i>1;i--);
getdata1=_adrh;
getdata2=_adrl;
datasum=0x0000+getdata1;
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
_lrl(&datasum);
datasum=datasum+getdata2;
if(datasum<8000)
datasum=8000;
_start=0;
if(datasum>56000)
datasum=56000;
_start=0;
dataconvert=(750-(datasum-8000)/64);
dispbuf[2]=dataconvert/100;
dataconvert=dataconvert%100;
dispbuf[1]=dataconvert/10;
dispbuf[0]=dataconvert%10;
if(dispcode[dispbuf[0]]&0x20)
{
dispcode_5=1;
}
else
{
dispcode_5=0;
}
if(dispcode[dispbuf[0]]&0x40)
{
dispcode_6=1;
}
else
{
dispcode_6=0;
}
DIS1BUF=dispcode[dispbuf[1]];
_rl(&DIS1BUF);
DIS0=dispcode[dispbuf[2]];
DIS1=DIS1BUF;
DIS3=dispcode[dispbuf[0]];
DIS4=dispcode_5;
DIS2=dispcode_6;
BPS=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -