创作不易点点赞吧,呜呜呜
文章目录
前言
开发板:CT107D (IAP15F2K61S2)
开发环境:Keil5
涉及题目:第十届蓝桥杯单片机国赛真题
一、基础模块代码块
1、基础模块变量定义,用under表示
unsigned char code t_display[]={ //标准字库
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
//black - H J K L N o P U t G Q r M y
0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46,0x37}; //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1
unsigned char code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //位码
unsigned char pp;
unsigned char DIG1[8]={12,16,16,16,16,16,16,16};//五个界面所需要的五个显示,当然可以用多维数组
unsigned char DIG2[8]={21,16,16,16,16,16,16,16};
unsigned char DIG3[8]={43,16,16,16,16,16,16,16};
unsigned char DIG4[8]={24,16,16,1,16,16,16,16};
unsigned char DIG5[8]={24,16,16,2,16,16,16,16};
unsigned char *DIG=DIG1;
unsigned char LED_state=0x00;//控制LED
unsigned char code keys_num[2][2]=//矩阵键盘的编号,只用了四个
{
12,16,
13,17,
};
unsigned char key_num;//键值
unsigned char key_state;//按键被刷新了几次,每10ms刷新一次
2、键盘、数码管、延时函数、定时器、超声波、串口等的一些模块
void keys()
{
unsigned char R=255,C=255;
P33=P32=1;P35=P34=0;//因为有串口所以只能位操作
P4=0X00;
if(~P3&0X0F)
{
if(key_state<250)key_state++;
if(P33==0)R=0;
if(P32==0)R=1;
P35=P34=