code报错

#include <STC15F2K60S2.H>
#include <intrins.h>

void delay_us(int i);

uchar code blackblock[]={
0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0x00,
0x00,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x00,0x00};


 uchar code jiong1[]={

0x00,0xFE,0x82,0x42,0xA2,0x9E,0x8A,0x82,0x86,0x8A,0xB2,0x62,0x02,0xFE,0x00,0x00,
0x00,0x7F,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x7F,0x00,0x00};

 uchar code lei1[]={
0x80,0x80,0x80,0xBF,0xA5,0xA5,0xA5,0x3F,0xA5,0xA5,0xA5,0xBF,0x80,0x80,0x80,0x00,
0x7F,0x24,0x24,0x3F,0x24,0x24,0x7F,0x00,0x7F,0x24,0x24,0x3F,0x24,0x24,0x7F,0x00};

void transfer_command_lcd(int data1)   
{
    char i;
    lcd_cs1=0;
    lcd_rs=0;
    for(i=0;i<8;i++)
    {
        lcd_sclk=0;
        delay_us(1);
        if(data1&0x80) lcd_sid=1;
        else lcd_sid=0;
        lcd_sclk=1;
        delay_us(1);
        data1=data1<<=1;
    }
    lcd_cs1=1;
}


void transfer_data_lcd(int data1)
{
    char i;
    lcd_cs1=0;
    lcd_rs=1;
    for(i=0;i<8;i++)
    {
        lcd_sclk=0;
        if(data1&0x80) lcd_sid=1;
        else lcd_sid=0;
        lcd_sclk=1;
        data1=data1<<=1;
    }
    lcd_cs1=1;
}

void delay(int i)               
{
    int j,k;
    for(j=0;j<i;j++)
    for(k=0;k<500;k++);
}


void delay_us(int i)               
{
    int j,k;
    for(j=0;j<i;j++)
    for(k=0;k<2;k++);
}


void initial_lcd()
{
    lcd_reset=0;                 
    delay(20);
    lcd_reset=1;                
    delay(20);        
    transfer_command_lcd(0xe2);     
    delay(5);
    transfer_command_lcd(0x2c); 
    delay(5);    
    transfer_command_lcd(0x2e); 
    delay(5);
    transfer_command_lcd(0x2f);
    delay(5);
    transfer_command_lcd(0x24);  
    transfer_command_lcd(0x81); 
    transfer_command_lcd(0x15);  
    transfer_command_lcd(0xa2); 
    transfer_command_lcd(0xc8);  
    transfer_command_lcd(0xa0);  
    transfer_command_lcd(0x40);  
    transfer_command_lcd(0xaf);  
}

void lcd_address(uint page,uint column)
{
    column=column-1;
    transfer_command_lcd(0xb0+page-1);   
    transfer_command_lcd(0x10+(column>>4&0x0f));    
    transfer_command_lcd(column&0x0f);    
}


void clear_screen()
{
    unsigned char i,j;
    for(i=0;i<9;i++)
    {
        lcd_address(1+i,1);
        for(j=0;j<224;j++)
        {
              transfer_data_lcd(0x00);
        }
    }
     lcd_cs1=1;
}


void display_graphic_16x16(uint page,uint column,uchar reverse,uchar *dp)
{
    uint i,j;    
    for(j=0;j<2;j++)
    {
        lcd_address(page+j,column);
        for (i=0;i<16;i++)
        {    
            if(reverse==1)
                transfer_data_lcd(~*dp);        
            else
                transfer_data_lcd(*dp);        
            dp++;
        }
    }
}


/******************************************************************/

unsigned int code NoteFrequ[] = { 
    523, 587, 659, 698, 784, 880, 988, 
    1047, 1175, 1319, 1397, 1568, 1760, 1976 
};
unsigned int code NoteReload[] = { 
    65536 - (11059200/12) / (523*2),
    65536 - (11059200/12) / (587*2),
    65536 - (11059200/12) / (659*2),
    65536 - (11059200/12) / (698*2),
    65536 - (11059200/12) / (784*2),
    65536 - (11059200/12) / (880*2),
    65536 - (11059200/12) / (988*2),
    65536 - (11059200/12) / (1047*2),
    65536 - (11059200/12) / (1175*2),
    65536 - (11059200/12) / (1319*2),
    65536 - (11059200/12) / (1397*2),
    65536 - (11059200/12) / (1568*2),
    65536 - (11059200/12) / (1760*2), 
    65536 - (11059200/12) / (1976*2), 
};
bit enable = 1;
bit tmrflag = 0; 
unsigned char T0RH = 0xFF; 
unsigned char T0RL = 0x00; 
int t;
uchar code bmp1[];
uchar code bmp2[];
uchar code bmp3[];
uchar code bmp4[];
uchar code bmp5[];
uchar code bmp6[];


unsigned char code TwoTigerNote[] = {
1, 2, 3, 1, 1, 2, 3, 1, 3, 4, 5, 3, 4, 5,
5,6, 5,4, 3, 1, 5,6, 5,4, 3, 1, 1, 5, 1, 1, 5, 1,
};


unsigned char code TwoTigerBeat[] = {
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8,
3, 1, 3, 1, 4, 4, 3, 1, 3, 1, 4, 4, 4, 4, 8, 4, 4, 8,
};


void display_128x64(uchar *dp)
{
    uint i,j;
    for(j=0;j<8;j++)
    {
        lcd_address(j+1,1);
        for (i=0;i<128;i++)
        {    
            transfer_data_lcd(*dp);                    
            dp++;
        }
    }
}

//===============main program===================
void main(void)
{
    Rom_CS=1;
    lcd_cs1=0;
    initial_lcd();    
    delay(1000);          
    
    EA = 1; 
    TMOD = 0x01; 
    TH0 = T0RH;
    TL0 = T0RL;
    ET0 = 1; 
    TR0 = 1; 
    while(1)
    {
        clear_screen(); 
        if(TwoTigerNote[t] == 1)
        {
            display_128x64(bmp1);
        }
        else if(TwoTigerNote[t] == 2)
        {
            display_128x64(bmp2);
        }
        else if(TwoTigerNote[t] == 3)
        {
            display_128x64(bmp3);
        }
        else if(TwoTigerNote[t] == 4)
        {
            display_128x64(bmp4);
        }
        else if(TwoTigerNote[t] == 5)
        {
            display_128x64(bmp5);
        }
        else if(TwoTigerNote[t] == 6)
        {
            display_128x64(bmp6);
        }
        
unsigned char beat;
unsigned char note; 
unsigned int time = 0; 
unsigned int beatTime = 0; 
unsigned int soundTime = 0; 

    

void InterruptTimer0()  1
{
    TH0 = T0RH; 
    TL0 = T0RL;
    tmrflag = 1;
    if (enable) 
        BUZZ = ~BUZZ;
    else 
        BUZZ = 1;
    
    
    
    if (time == 0) 
    {
        t++;
        note = TwoTigerNote[beat] - 1;
        T0RH = NoteReload[note] >> 8;
        T0RL = NoteReload[note];
        
        beatTime = (TwoTigerBeat[beat] * NoteFrequ[note]) >> 2;
        
        soundTime = beatTime - (beatTime >> 2);
        enable = 1; 
        time++;
    }
    else 
    {
        if (time >= beatTime) 
        { 
            time = 0;
            beat++;
        }
        else 
        {
            time++; 
            if (time == soundTime) 
            { 
                enable = 0; 
            }
        }
    }    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值