⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 键盘.c

📁 基于AVR实验平台下ATMega128芯片实习作业
💻 C
📖 第 1 页 / 共 2 页
字号:
0x80,0x08,0x10,0x41,0x8E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x1C,0x10,0x40,0x87,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x37,0x30,0x67,0xC2,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0xA0,0x6C,0x67,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x40,0x60,0x78,0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xC0,0x60,0x70,0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xC0,0x60,0x60,0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x7F,0xC0,0x7F,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

unsigned char b[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0xFD,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0xFB,0xFB,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x0D,0xF4,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x06,0xEC,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x18,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x07,0xB8,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3E,0x01,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x77,0x01,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x03,0x81,0xE3,0x83,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x9D,0xC7,0x00,0x00,0x0F,0xFC,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x7C,0xDE,0x00,0x00,0x0F,0xFC,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0xFF,0x00,0x00,0x0E,0x1F,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x1C,0x0F,0xFC,0xFF,0x00,0x00,0x0F,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x1F,0xFF,0xFF,0xC0,0x00,0x0F,0xFC,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xE0,0x00,0x0E,0x1C,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x0F,0xE1,0xE0,0x00,0x0F,0xFF,0x87,0x00,0x00,
0x00,0x0C,0x00,0x00,0x00,0x38,0x06,0x00,0xE1,0xC0,0x00,0x0F,0xFD,0xC7,0x00,0x00,
0x00,0x7F,0xF8,0x1F,0xE0,0x38,0x3E,0x00,0xFF,0x80,0x00,0x0E,0x1D,0xE7,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0x90,0x38,0xFC,0x00,0xFF,0x80,0x00,0x0E,0x1C,0xE7,0x00,0x00,
0x00,0x60,0x1F,0xFF,0xF0,0x79,0xF0,0x00,0xE3,0x80,0x00,0x1F,0xFC,0x77,0x00,0x00,
0x00,0x61,0xFF,0xFF,0xFF,0xED,0xC0,0x00,0xF3,0xC0,0x00,0x1F,0xFC,0x07,0x00,0x00,
0x00,0x7F,0xFF,0xF3,0xFF,0xEC,0x00,0x01,0xFB,0xC0,0x00,0x00,0xFC,0x07,0x00,0x00,
0x00,0x7F,0xFF,0xF3,0x80,0xEC,0x00,0x01,0xFF,0x80,0x00,0x03,0xFC,0x07,0x00,0x00,
0x00,0x06,0x00,0x7E,0x00,0x0F,0xE0,0x01,0xC7,0x00,0x00,0x0F,0x9C,0x07,0x00,0x00,
0x00,0x07,0xFF,0xFF,0xC0,0x07,0x80,0x01,0xE7,0x80,0x00,0x3F,0x1C,0x0F,0x00,0x00,
0x00,0x00,0x3F,0xFF,0xE0,0x07,0x00,0x00,0xF7,0x80,0x00,0x1C,0xFC,0xFF,0x00,0x00,
0x00,0x00,0x0F,0xFC,0x70,0x03,0xC0,0x00,0xFF,0x80,0x00,0x00,0xF8,0xFE,0x00,0x00,
0x00,0x00,0x01,0xFE,0x30,0x01,0xF0,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x30,0x00,0x7E,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x3F,0xF0,0x1F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFF,0x3F,0xF8,0xF0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFC,0x0F,0xF3,0xF0,0x38,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFC,0x01,0xFC,0x38,0x1C,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFC,0x00,0xE8,0x18,0x0C,0x00,0x00,0x0F,0xFF,0xFF,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x38,0x0E,0x00,0x00,0x0F,0xFF,0xFF,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x70,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x60,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0xF0,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x60,0x0C,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x70,0x1C,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x38,0x38,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x87,0xF9,0xF0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x01,0xE9,0xC0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0xE0,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0C,0x01,0xC0,0x70,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1C,0x01,0xE0,0x30,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x03,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x03,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF0,0x06,0x60,0x0C,0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x06,0x60,0x0E,0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xC0,0x06,0x60,0x06,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x80,0x06,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xC0,0x0E,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF0,0xFC,0x70,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};
#define key (PIND&0x08)==0 
#define data (PIND&0x04)==0x04
#define set_cs asm("sbi 0x18,2")
#define set_clk asm("sbi 0x18,3")
#define set_data asm("sbi 0x12,2")
#define cl_cs asm("cbi 0x18,2")
#define cl_clk asm("cbi 0x18,3")                     
#define cl_data asm("cbi 0x12,2")
#pragma interrupt_handler key_check:5

 unsigned char k = 0x00;  ;n = 0;

void key_check()
{ 
    n=1;
    send(0x15);                                  /* 读键盘指令  */
    k=receive()+61;
    set_cs;
}

void led_init (void)
{
    DDRB|= 0x0C;                                /* PB0和PB1为输入   */
	set_cs;
	send (0xA4);
}

void init_7279()
{
    SREG|=0x80;                                   /* 状态寄存器,全局中断允许    */
    EIMSK|=0x08;                                  /* 外部中断屏蔽寄存器          */
    EICRA&=0x3f;                                 /* 外部中断控制寄存器A,INTn的上
                                                 /*   升沿产生一个异步终端请求     */
    DDRD&=0xf7;                                   /* PD3为输入                   */
    DDRB|=0x0c;
    PORTD&=0xfb;                                  /* PD2输出为1                  */
}

void send (unsigned char out_data)
{
    unsigned char i;
	
    DDRD|=0x04;                                   /* PD2为输出   */
    cl_cs;                                           /* PB2输出为0 */
    l_delay();
	
    for(i=0;i<8;i++)
    {
        if(out_data&0x80)
        {
            set_data;                                /* PD2输出为1   */
        }
        else
        {
           cl_data;                                  /* PD2输出为0   */
        }
    s_delay();
    set_clk;
    s_delay();
    cl_clk;
    s_delay();
    out_data*=2;                                     /* 数据向左移一位   */
    }
    cl_data;
}
unsigned char receive(void)
{
    unsigned char i;
    unsigned char in_data=0x00;
	
    DDRD&=0xfb;
	                                                 /* PD2为输入  */
    for(i=0;i<8;i++)
    {
    set_clk;
    s_delay();
    in_data*=2;                                       /* 数据左移一位  */
        if(data)
        {
        in_data|=0x01;
        }
    cl_clk;
    s_delay();
    }
    cl_data;
    return(in_data);
}


void main()
{
    unsigned char i = 0;
    lcd_init();
    lcd_clear();
    init_7279();
    s_delay();
    send (0xA4); 
	                                                   
    while(1)
    {
        switch(k)
        {
        case 65:set_cs;send(0xc8);send(0x00);lcd_putsc(0,0,"北京欢迎你");break;  
        case 66:set_cs;send(0xc8);send(0x01);lcd_putsc(2,2,"福娃迎奥运");break;
        case 67:set_cs;send(0xc8);send(0x02);lcd_w(0xf4);lcd_putsm(0,1,"运奥迎娃福你迎欢京北");break;
        case 68:set_cs;send(0xc8);send(0x03);lcd_putse(0,0,a);move();break;
        case 73:set_cs;send(0xc8);send(0x04);lcd_putse(0,0,b);move1();break;
        case 74:set_cs;send(0xc8);send(0x05);lcd_putsc(0,0,"五");break;
        case 75:set_cs;send(0xc8);send(0x06);lcd_putsc(0,0,"六");break;
        case 76:set_cs;send(0xc8);send(0x07);lcd_putsc(0,0,"七");break;
        case 81:set_cs;send(0xc8);send(0x08);lcd_putsc(0,0,"八");break;
        case 82:set_cs;send(0xc8);send(0x09);lcd_putsc(0,0,"九");break;
        case 83:set_cs;send(0xc8);send(0x0A);lcd_putsc(0,0,"拾");break;
        case 84:set_cs;send(0xc8);send(0x0B);lcd_putsc(0,0,"十一");break;
        case 89:set_cs;send(0xc8);send(0x0C);lcd_putsc(0,0,"十二");break;
        case 90:set_cs;send(0xc8);send(0x0D);lcd_putsc(0,0,"十三");break;
        case 91:set_cs;send(0xc8);send(0x0E);lcd_putsc(0,0,"十四");break;
        case 92:set_cs;send(0xc8);send(0x0F);lcd_putsc(0,0,"十五");break;
        default:break;         
        
        }
    }
}







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -