了解 51单片机的使用

1. 使用普中科技的51开发板A4型号,结合 江协科技的视频

keil 软件的芯片 选择microchip系列的 89C52
然后stc-isp软件 下载烧录选择 STC89C516RD+/LE516RD+

2. 在对矩阵键盘编写扫描代码时,想简化成如下代码。感觉这是分层思想的体现,如下可认为是驱动代码,然后基于这个函数的返回值(1~16), 在应用层做键值映射,实现业务逻辑。比如可以把 13~16 映射成加减乘除,做一个简单的计算器

int scan_row(int line) {
    int key = 0;
    while (0 == P1_3) { delay_ms(20); while(0 == P1_3); delay_ms(20); key = 1 + line * 4;}
    while (0 == P1_2) { delay_ms(20); while(0 == P1_2); delay_ms(20); key = 2 + line * 4;}
    while (0 == P1_1) { delay_ms(20); while(0 == P1_1); delay_ms(20); key = 3 + line * 4;}
    while (0 == P1_0) { delay_ms(20); while(0 == P1_0); delay_ms(20); key = 4 + line * 4;}
    return key;
}

int matrix_get_key(){
    int key = 0;
    unsigned char mask = 0x80, ix;
    for (ix = 0; ix < 4; ix++) {
        P1 &= ~(mask >> ix);
        key = scan_row(ix);
        P1 |= (mask >> ix);
        if (key)  break;
    }
    return key;
}

 

posted @ 2024-12-21 12:49  靖意风  Views(36)  Comments(0)    收藏  举报