求单片机实验七段数码管显示实验程序

求单片机实验七段数码管显示实验程序,第1张

/* ch03-3-4.c - 七段LED数码管实验程序 */

//==声明区=================================================

#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()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11827433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存