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

📄 训练项目七:键盘的使用.c

📁 长沙理工自己的实验程序
💻 C
字号:
/****************************************************************************
** File Name:          键盘的使用
** Createed By:        Wangchangsong
** Create Date:        07/28/2008
** Version:            1.0
** Descriptions:       led display
**
**---------------------------------------------------------------------------
** Modified By:
** Modified Date:
** Version:
** Descriptions:
**
****************************************************************************/

#include <iom128v.h>

#define data (PIND&0x04)==0x04
                                                /* 判断PD2是否为1            */
#define set_cs asm("sbi 0x18,2")             
                                                /* PB输出为1                 */
#define set_clk asm("sbi 0x18,3")
                                                /* PB3输出为1                */  
#define set_data asm("sbi 0x12,2")
                                                /* PD2输出为1                */
#define cl_cs  asm("cbi 0x18,2")
                                                /* PB2输出为0                */ 
#define cl_clk asm("cbi 0x18,3")
                                                /* PB3输出为0                */                     
#define cl_data asm("cbi 0x12,2")
                                                /* PD2输出为0                */
#pragma interrupt_handler key_check:5
                                                /* 外部中断3                 */
unsigned char k = 0x00;n = 0;

/****************************************************************************
** Function Name:      main       
** Descriptions:       
** Input Parameters:   uiTime
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void main()
{
    unsigned char i = 0;
	
    init_7279();
    s_delay();
    send (0xA4); 
	                                              /* 复位                     */
    while(1)
    {
        switch(k)
        {
        case 65:set_cs;send(0xc8);send(0x00);break;/*下载数据且按方式1译码     */
        case 66:set_cs;send(0xc8);send(0x01);break;
        case 67:set_cs;send(0xc8);send(0x02);break;
        case 68:set_cs;send(0xc8);send(0x03);break;
        case 73:set_cs;send(0xc8);send(0x04);break;
        case 74:set_cs;send(0xc8);send(0x05);break;
        case 75:set_cs;send(0xc8);send(0x06);break;
        case 76:set_cs;send(0xc8);send(0x07);break;
        case 81:set_cs;send(0xc8);send(0x08);break;
        case 82:set_cs;send(0xc8);send(0x09);break;
        case 83:set_cs;send(0xc8);send(0x0A);break;
        case 84:set_cs;send(0xc8);send(0x0B);break;
        case 89:set_cs;send(0xc8);send(0x0C);break;
        case 90:set_cs;send(0xc8);send(0x0D);break;
        case 91:set_cs;send(0xc8);send(0x0E);break;
        case 92:set_cs;send(0xc8);send(0x0F);break;
        default:break;         
        
        }
    }
}
/****************************************************************************
** Function Name:      key_check       
** Descriptions:       read the key
** Input Parameters:   K
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/

void key_check()
{ 
    n=1;
    send(0x15);                                /* 读键盘指令                   */
    k=receive()+61;
    set_cs;
}
/****************************************************************************
** Function Name:      led_init       
** Descriptions:       
** Input Parameters:   uiTime
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/
void led_init (void)
{
    DDRB|= 0x0C;                              /* PB0和PB1为输入              */
	set_cs;
	send (0xA4);
}

/****************************************************************************
** Function Name:      init_7279       
** Descriptions:       initialization
** Input Parameters:   uiTime
** Output parameters:  void
** Returned Value:     void
**---------------------------------------------------------------------------
****************************************************************************/
void init_7279()
{
    SREG|=0x80;                                   /* 状态寄存器,全局中断允许 */
    EIMSK|=0x08;                                  /* 外部中断屏蔽寄存器       */
    EICRA&=0x3f;                                  /* 外部中断控制寄存器A

⌨️ 快捷键说明

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