6个IO口控制2个按键7个led灯

本文介绍如何使用C语言通过6个IO口以2*4复用方式控制2个按键和7个LED灯。采用扫描分时方法,包括3个步骤:按键输入检测、LED状态设置及输出。同时,详细阐述了按键功能转换以实现开关机状态,并根据变量控制LED亮灭。

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

使用扫描的方法实现6个IO口控制2两个按键7个led

一、2个按键 和 7个LED ,采用6个IO ,以2 *4的方式复用

二、扫描分时 - 3步 (X1 X2 对应IOA5 IOA3;Y1 Y2 Y3 Y4对应IOB3 IOC0 IOB0 IOB1)
     a. X1/X2 设置为输入上拉模式,作为按键输入检测;同时Y1 Y2 Y3 Y4也设置为输入上拉模式,以防止LED有弱电流的情况
    b. X1切换为输出1模式,X2保持输入模式,需要关闭上拉功能,Y1 Y2 Y3 Y4 根据功能要求输出对应的1或0信号,1-LED off / 0-LED on
    c. X1先切换为输入模式关闭上拉,X2切换为输出1模式,Y1 Y2 Y3 Y4 根据功能要求输出对应的1或0信号
     d. 重复a操作,需要注意切换a/b/c操作时,需要先将Y1 Y2 Y3 Y4设置为输入上拉模式,以避免瞬间LED导通形成微亮的情况
三、 按键的功能转换,输出开关机功能状态 F_work_on =1开机;=0关机,调用key_func_static()函数实现开关机工作程序
四、  根据b_LED_statu的值来控制LED亮或灭

​
uchar b_LED_statu ;
uchar F_work_on;

extern uchar key_count_time;

void key_display(void)
{
    switch(key_count_time)
	{
		case 2:			
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值