首页 > 代码库 > 51瞎搞系列---独立键盘+数码管
51瞎搞系列---独立键盘+数码管
瞎写着玩玩。。。
/******************************************************************************* * 实 验 名 : 数码管+独立键盘实验 * 使用的IO : 数码管使用P0 独立键盘开关K1使用P3.1 * 实验效果 : 按开关K1使数码管从左侧由数字1亮至右侧8 * 注 意 : *******************************************************************************/ #include <reg52.h> #include <intrins.h> #define GPIO_LED P2 #define GPIO_DIG P0 #define uint unsigned int #define uchar unsigned char sbit K1=P3^1; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值 void DIG_DISPLAY(uchar n,uchar num); void Delay10ms(); void GO(); uint m=0,n=0,num=1; void main() { while(1) { GO(); } } void Delay10ms() { uchar i=38,j=130; while(i--) while(j--); } void DIG_DISPLAY(uchar n,uchar num) { switch(n) { case 0:LSA=0;LSB=0;LSC=0;break; case 1:LSA=1;LSB=0;LSC=0;break; case 2:LSA=0;LSB=1;LSC=0;break; case 3:LSA=1;LSB=1;LSC=0;break; case 4:LSA=0;LSB=0;LSC=1;break; case 5:LSA=1;LSB=0;LSC=1;break; case 6:LSA=0;LSB=1;LSC=1;break; case 7:LSA=1;LSB=1;LSC=1;break; } GPIO_DIG=DIG_CODE[num]; } void GO() { DIG_DISPLAY(m,num); if(K1==0) { Delay10ms(); if(K1==0) { ++m;++num; if(m==8)m=0; if(num==9)num=1; while((n<50)&&(K1==0)) { Delay10ms(); ++n; } n=0; } } }
51瞎搞系列---独立键盘+数码管
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。