📄 1.5rohmstn.c
字号:
for(x=0;x<12;x++)
{
for(l=0x80;l>=1;l=l>>1)
{
if((Downloaded[(15-y)*12+x]&l)!=0)
{
LCDDATA=0;
LCDDATA=0;
}
else
{
LCDDATA=0xff;
LCDDATA=0xff;
}
}
}
}
}
void Display_eraseing()
{
unsigned char l;
unsigned char x;
unsigned char y;
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=0x00;
LCDDATA=0x12;
LCDDATA=0x00;
LCDDATA=0x71;
LCDREG=0x2b;
LCDDATA=0x00;
LCDDATA=0x38;
LCDDATA=0x00;
LCDDATA=0x7f;
LCDREG=0x2c;
for(y=0;y<16;y++)
{
for(x=0;x<12;x++)
{
for(l=0x80;l>=1;l=l>>1)
{
if((Erasing[(15-y)*12+x]&l)!=0)
{
LCDDATA=0;
LCDDATA=0;
LCDDATA=0;
}
else
{
LCDDATA=0xff;
LCDDATA=0xff;
LCDDATA=0xff;
}
}
}
}
}
void Display_erased()
{
unsigned char l;
unsigned char x;
unsigned char y;
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=0x00;
LCDDATA=0x12;
LCDDATA=0x00;
LCDDATA=0x71;
LCDREG=0x2b;
LCDDATA=0x00;
LCDDATA=0x38;
LCDDATA=0x00;
LCDDATA=0x7f;
LCDREG=0x2c;
for(y=0;y<16;y++)
{
for(x=0;x<12;x++)
{
for(l=0x80;l>=1;l=l>>1)
{
if((Erased[(16-y)*12+x]&l)!=0)
{
LCDDATA=0;
LCDDATA=0;
LCDDATA=0;
}
else
{
LCDDATA=0xff;
LCDDATA=0xff;
LCDDATA=0xff;
}
}
}
}
}
void Display_chipcopy_transfering()
{
unsigned char l;
unsigned char x;
unsigned char y;
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=0x12; LCDDATA=0x71;
LCDREG=0x2b;
LCDDATA=0x2c; LCDDATA=0x7f;
LCDREG=0x2c;
for(y=0;y<40;y++)
{
for(x=0;x<12;x++)
{
for(l=0x80;l>=1;l=l>>1)
{
if((Transfering[(39-y)*12+x]&l)!=0)
{
LCDDATA=0;
LCDDATA=0;
}
else
{
LCDDATA=0xff;
LCDDATA=0xff;
}
}
}
}
}
void Display_chipcopy_receiving()
{
unsigned char l;
unsigned char x;
unsigned char y;
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=0x12; LCDDATA=0x71;
LCDREG=0x2b;
LCDDATA=0x2c; LCDDATA=0x7f;
LCDREG=0x2c;
for(y=0;y<40;y++)
{
for(x=0;x<12;x++)
{
for(l=0x80;l>=1;l=l>>1)
{
if((Receiving[(39-y)*12+x]&l)!=0)
{
LCDDATA=0;
LCDDATA=0;
}
else
{
LCDDATA=0xff;
LCDDATA=0xff;
}
}
}
}
}
//============================================================================================================
void Program_flash(unsigned char block_addr,unsigned char xdata *image_data_addr,unsigned char io_data)
{
Auxdata_write(BLOCK_ADDR_MASK,block_addr);
Chip_select_flash();
FLASH_5555=0xaa;
FLASH_2AAA=0x55;
FLASH_5555=0xa0;
// if (Download_counter>=0x30) io_data=io_data>>2;
*image_data_addr=io_data;
}
void Chip_erase_flash()
{
unsigned char i;
Chip_select_flash();
FLASH_5555=0xaa;
FLASH_2AAA=0x55;
FLASH_5555=0x80;
FLASH_5555=0xaa;
FLASH_2AAA=0x55;
FLASH_5555=0x10;
for (i=0;i<15;i++)
{
Led_light(true);
Delayms(200);
Led_light(false);
Delayms(200);
}
}
void Auxdata_write(unsigned char data_mask,unsigned char auxa_data)
{
Chip_select_LCD();
Auxdata=(Auxdata&data_mask)+auxa_data;
AUXOUT=Auxdata;
}
//*****************************************
void serial () interrupt 4
{
unsigned char image_data;
EA=0;
if (Chip_copy)
{
if (RI)
{
RI=0;
Chip_select_flash();
image_data=SBUF;
Program_flash(Block_addr&block_mask,Image_data_addr,image_data);
Image_data_addr++;
if (Image_data_addr==0x0000)
{
Block_addr++;
if (Block_addr==8) Chip_copy_over=true;
Auxdata_write(BLOCK_ADDR_MASK,Block_addr&block_mask);
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=(Block_addr<<3)+26; LCDDATA=(Block_addr<<3)+33;
LCDREG=0x2b;
LCDDATA=0x4e; LCDDATA=0x51;
LCDREG=0x2c;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
Chip_select_flash();
}
}
else
{
TI = 0;
Chip_select_flash();
SBUF=*(Image_data_addr);
Image_data_addr++;
if (Image_data_addr==0x0000)
{
Block_addr++;
if (Block_addr==8) Chip_copy_over=true;
Auxdata_write(BLOCK_ADDR_MASK,Block_addr&block_mask);
Chip_select_LCD();
LCDREG=0x2a;
LCDDATA=(Block_addr<<3)+26; LCDDATA=(Block_addr<<3)+33;
LCDREG=0x2b;
LCDDATA=0x4e; LCDDATA=0x51;
LCDREG=0x2c;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
Chip_select_flash();
}
}
}
else
{
if (RI )
{
RI = 0;
{
image_data=SBUF;
if (Download_counter==2) Download_total=image_data;
if (Download_counter==3) Download_total=image_data*256+Download_total;
Program_flash(Block_addr&block_mask,Image_data_addr,image_data); //program
if (Download_counter==(Download_total-1)) Download_over=true;
Image_data_addr++; //addr+1
Download_counter++;
#if defined(tft19LCD)
Download_process++;
Chip_select_LCD();
if (Download_process==0xcd)
{
LCDREG=0x2a;
LCDDATA=Download_x/4+36; LCDDATA=Download_x/4+36;
LCDREG=0x2b;
LCDDATA=0x4f; LCDDATA=0x52;
LCDREG=0x2c;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
LCDDATA=0xff;LCDDATA=0xff;
Download_process=0xff;
Download_x++;
}
#endif
}
}
}
EA=1;
}
//*****************************
void Serial_init() //serial port setup
{
IP0H=0x10; //proitity setup
EA=1; //interrupt enable
T2CON=0x30; //timer2
T2MOD=0x00; //timer2mode
PCON=0; //SMOD baudrate double disable
SCON=0x50; //8bitsUART, baud rate variable
#if defined(baudrate9600)
RCAP2L = 0xbf; //bf 9600 df 19200 f0 38400
#endif
#if defined(baudrate19200)
RCAP2L = 0xdf; //bf 9600 df 19200 f0 38400
#endif
#if defined(baudrate38400)
RCAP2L = 0xf0; //bf 9600 df 19200 f0 38400
#endif
RCAP2H = 0xff; //baudrate setup:
TR2=true; //run timer2
}
void Pcam1_init()
{
TMOD=0x02; //timer 0 auto-loadmode
TH0=256-8950000/5.5/51200; //timer0=51.2kHz=50us YYS TEST:203HZ
//TH0=256-8950000/6/51200; // YYS TEST:224HZ
//TH0=256-8950000/3.5/51200; // YYS TEST:130HZ
TR0=true;
CMOD=0x04; //PCA's input :timer0:20kHz;pwm :51.2k/256=200Hz
CCON=0x40; //RUN the pca
CCAPM1=0x42; //PWM mode
CCAP1H=255-Bl_brightness; //set duty
}
//===========================================keyboard server begin
void Key_int() interrupt 0
{
unsigned char key;
EA=false;
EX0=false;
Delayms(10);
P1=P1|key_mask;
key=P1&key_mask;
Delayms(5);
if(key!=(P1&key_mask)) goto keyend;
Delayms(5);
if(key!=(P1&key_mask)) goto keyend;
switch(key)
{
case key_up: Key_up_server();
break;
case key_down: Key_down_server();
break;
case key_shift: Key_shift_server();
break;
case key_playpause: Key_playpause_server();
break;
default: ;
}
keyend: Delayus(10);
EA=true;
EX0=true;
}
void Key_up_server()
{
if (Shift==0)
{
switch(Bl_brightness)
{
case 255: Bl_brightness=255;// 100%
break;
case 204: Bl_brightness=255;// 80%
break;
case 153: Bl_brightness=204;// 60%
break;
case 102: Bl_brightness=153;// 40%
break;
case 80: Bl_brightness=102;
break;
case 60: Bl_brightness=80;
break;
case 40: Bl_brightness=60;
break;
case 0: Bl1=1; Pcam1_init(); Bl_brightness=40;
break;
default: ;
}
CCAP1H=255-Bl_brightness;
}
else
{
if(Contrast<127) Contrast++;
else Contrast=127;
Chip_select_LCD();
LCDREG=0x25; //volumn centrer set
LCDDATA=Contrast; //Volume set
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -