玩转按键+数码管多文件例程

本文档提供了一个使用key.h、key.c、system.c和system、main.c等文件实现的按键和数码管交互的多文件项目案例。通过这个实例,读者可以学习如何在嵌入式系统中组织和管理代码,以及如何处理按键输入和数码管显示的相关技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

key.h

#include "system.h"	   //把timer0.h文件包含进来
sbit LSA=P2^2;	   //数码管位选管脚
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;	 //定义按键端口
		
void delay(uint i);
void DigDisplay();
uchar KeyScan(uchar mode);
void datapros();
void xssmg();

key.c

#include "key.h"	 //把led.h文件包含进来
#include "system.h"	   //把timer0.h文件包含进来
 
#define KEY1 1	 //按键名称
#define KEY2 2
#define KEY3 3
#define KEY4 4

uchar code smgduan[17]={
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

uchar DisplayData[8];	//定义8位数组
char datnum1=0,datnum2=0,datnum3=0,datnum4=0;  //数码管显示数值
uchar setflag=0;	  //定时器变量
uchar wei_change=0;  //移位定义


void delay(uint i)	  //延时函数
{
   
	while(i--);	
}

void DigDisplay()	 //数码管显示位选
{
   
	uchar i;			//位选变量
	for(i=0;i<8;i++)
	{
   
		switch(i)	 //位选,选择点亮的数码管,
		{
   
			case(0):
				LSA=1;LSB=1;LSC=1; break;//显示第7
			case(1):
				LSA=0;LSB=1;LSC=1; break;//显示第6
			case(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值