历史上的今天
今天是:2025年10月25日(星期六)
2022年10月25日 | 【51单片机】STC89C52独立键盘实验,含c代码(6)
2022-10-25 来源:csdn
1.参考教程:
清翔51单片机教程
2.实现效果:
利用独立键盘的按键,控制数码管数字的变化。

3.基本原理
**特点:**每个按键占用一个IO口,当按键数量较多时,IO口的利用效率不高,但程序简单,适用于所需按键较少的场合。
**原理:**以按键S2为例,给P30赋逻辑1,当S2被按下的时候,由于S2左端接地,则P30输出由高电平变低电平。S2没被按下依旧输出高电平。

4.参考代码
#include #include #define uint unsigned int #define uchar unsigned char sbit DU = P2^6; //数码管段选 sbit WE = P2^7; //数码管位选 sbit key_s2 = P3^0;//独立按键S2 sbit key_s3 = P3^1;//独立按键S3 uchar num; //数码管显示的值 //共阴数码管段选表0-9 uchar code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,}; //毫秒级延时函数定义 void delay(uint z) { uint x,y; for(x = z; x > 0; x--) for(y = 114; y > 0 ; y--); } void main()//main函数自身会循环 { WE = 1;//打开位选锁存器 P0 = 0XFE;//1111 1110 WE = 0;//锁存位选数据 while(1) { if(key_s2 == 0) { delay(20);//按键消抖(按键会有抖动影响结果) if(key_s2 == 0) { num++; if(num == 10) num = 0; while(!key_s2);//松手检测(松手后跳出循环) } } if(key_s3 == 0) { delay(20);//按键消抖 if(key_s3 == 0) { num--; if(num == 255) num = 9; while(!key_s3);//松手检测 } } //松手之后刷新显示 DU = 1;//打开段选锁存器 P0 = tabel[num];//0000 0110 DU = 0;//锁存段选数据 } }
史海拾趣
|
一个烤箱温度在85左右,用来做LED的高温通电实验,要求进入烤箱的电线尽可能少,通过每个LED的电流恒为20MA,且有LED烧坏时不影响到其他的LED,现在的做法的四个串联,单独用一条线路来供电,所以进入烤箱的电线相当多,而且坏一个其他三个都不亮了 ...… 查看全部问答> |
|
此文转自klin1984 因为看到此文非常实用,希望让更多人看到。 天线分为:1.全向天线2.定向天线3.机械天线4.电调天线5.双极化天线。下面主要介绍坛友们比较关心的定向和全向天线。感兴趣的朋友可以google或者baidu其他相关天线的详细资料。“相关资 ...… 查看全部问答> |
|
WinCE系统会动态分配显存的物理地址吗?有没有这种说法?如果真有这个说法请问这是WinCE4.0与WinCE5.0的区别吗?我想知道显存的物理地址,如果是动态分配的我该怎么获取?还有一个问题,WindowsXP系统的显存物理地址是多少?… 查看全部问答> |
|
因客户的条码中第1位是标志位,标志位不需要显示和保存,只用来作校验。 故如果扫描,我需要先作校验,再将标志位去掉后再显示; 如果手输,则不作校验,该是什么还是什么。 但现在看来,WinCE里面好像并没有扫描事件,那怎么区分扫描还是手输呢 ...… 查看全部问答> |
|
没有找到2274的中文资料,英文水平实在是不购啊.从例程中就只有正向放大方式,没有反向的,我反向的方式用得比较多,因此想知道能用于反向放大吗?能给个例程就太好了,先谢谢了. 还有就是红外线编解码方式也没有例程,正好想要用,哪里可以下到例程啊? ...… 查看全部问答> |
|
有偿请高手提供TVP5158在DM6437上的4路CIF line-interleaved模式驱动 背景: 定制的DM6437电路, TVP5158 decoder 开发环境:CCS4.2.4 + Seed560Plus + 定制DM6437平台 问题描述: 需要为DM6437平台上的TVP5158添加FVID架构的驱动 1) TVP5158, 四路CIF输出,line-interleaved模式 2) 在原来的TVP5146的FVID驱动下,修 ...… 查看全部问答> |
|
请高手帮看下这图片是什么单片,带一个步进电机,两个行程开关,两个电磁阀,一个感应开关,一个启动停止开关,想复制一片要怎么做 [ 本帖最后由 quxingwang 于 2013-10-22 08:28 编辑 ]… 查看全部问答> |
|
近年来,智能手机飞速发展,加之蓝牙、Zigbee、Wifi等无线技术的完善,通过手机与外部设备建立无线连接,实现智能控制,这一思路已在多个领域得到实现。在智能家居领域,无线智能灯控一时间为众人追捧,飞利浦HUE、Lumen、Lifx、iLum ...… 查看全部问答> |




