测试C51stc板的流水灯、数码管、按键

测试C51stc板的流水灯、数码管、按键


内容简介

新学期开学第一周主要是对自己焊接的C51stc学习板进行测试,今天主要介绍最基础的对按键、led灯、数码管的测试,测试三项:

  • 按键对led灯的控制
  • LED灯滚动显示
  • 数码管的显示以及滚动显示

电路图

芯片

这里写图片描述

数码管、led灯

按键

这里写图片描述

测试代码块

按键测试代码:

#include"STC15F2K60S2.H"//芯片型号头文件库

//引脚别名,对应芯片引脚图
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
sbit KEY3 = P1^7;
sbit led_sel = P2^3;

void Init(){
    //设置P0和P2.3管脚为推挽输出(1)
    P0M0 = 0XFF;
    P0M1 = 0X00;
    P2M0 = 0X08;
    P2M1 = 0X00;

    led_sel = 1;            //设置2.3脚为高电平,从而使led灯显示
    P0 = 0;                     //P0八个管脚控制八个led灯显示,首先初始化,使所有led灯熄灭
}
void main()
{
    Init();

    while(1)
    {
        if(KEY1 == 0)       //当K1按键被按下时,KEY1接地,电平为低电平
            P0 |= 0x01;     //所以此时设置第一个对应的led灯为高电平,即点亮第一个led灯
        else
            P0 &= ~0x01;   //否则将第一个led灯熄灭

        if(KEY2 == 0)       //当K2按键被按下时,KEY2接地,电平为低电平
            P0 |= 0x02;     //所以此时设置第二个对应的led灯为高电平,即点亮第二个led灯
        else
            P0 &= ~0x02;   //否则将第二个led灯熄灭

        if(KEY3 == 0)       //当K3按键被按下时,KEY3接地,电平为低电平
            P0 |= 0x04;     //所以此时设置第三个对应的led灯为高电平,即点亮第三个led灯
        else
            P0 &= ~0x04;   //否则将第三个led灯熄灭
    }

注释
(1)推挽输出的定义:
通过设置对应的P0口模式配置寄存器和P2口模式配置寄存器来实现P0口和P2.3工作模式设置为推挽输出
这里写图片描述


版权声明:本文为jiangbaige原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。