
//==声明区=================================================
#include<reg51.h>//定义8051寄存器的头文件,P2-17~19
#define SEG P0 //定义七段LED数码管接至Port 0
/*声明七段LED数码管驱动信号数组(共阳)*/
char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //数字0-4
0x92,0x83,0xf8,0x80,0x98}//数字5-9
void delay(int) //声明延迟函数
//==主程序==========================================
main() //主程序开始
{ unsigned char i//声明无符号变量i
while(1)//无穷循环,程序一直跑
for(i=0i<10i++) //显示0-9,共10次
{ SEG=TAB[i]//显示数字
delay(500) //延迟500×1m=0.5秒
} //for循环结束
} //主程序结束
//==子程序==========================================
/* 延迟函数,延迟约x×1ms */
void delay (int x) //延迟函数开始
{int i,j //声明整形变量i,j
for (i=0i<xi++) //计数x次,延迟x×1ms
for (j=0j<160j++) //计数120次,延迟1ms
} //延迟函数结束
你要是静态显示,那就简单多了:#define SEG_Port P1//数码管段选口,默认位选长通
unsigned char SEG_B_List[]={0xc0,0xf9,0xa4} //共阳数码管代码表0-2
if(Key1==0) SEG_Port=SEG_B_List[1]
else if(Key2==0) SEG_Port=SEG_B_List[2]
else SEG_Port=SEG_B_List[0]
你要是动态显示,那就多了,不过,就一位,无需动态显示。
代码很好写,但是关键是你的数码管属于硬件也就是说,至少要知道 *** 作你数码管的API才行啊。
或者说要怎样传送数据给你的数码管,你的数码管需要接受怎样的数据。
键盘扫描很简单,给你个代码。
要求引用头文件
#include <iostream>
using namespace std
#include <conio.h>//kbhit API头文件
#include <time.h>
#include <windows.h>
#define ESC 0x1b
void loop()
{
int i
if( kbhit() ) //判断是否有键盘按键按下。
{
char ch
ch = getch() //获取按下的键值
if( ESC == ch )//判断是否是你要的键,我以ESC为例
{
cout<<"ESC"<<endl
system("pause")
}
}
while( !kbhit() )//没有按键是的 *** 作
{
balabalabala.......
}
}
int main()
{
loop()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)