怎样设计九个数字键盘在数码管上有相应显示的程序?急

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:15:15
九个按键编号为1—9的数字,现要在数码管上显示相应的数字,求相应程序!!

我这个是16个按键的,给你参考。
具体的可以进我空间看看:
http://hi.baidu.com/%B4%F3%CE%B0%B5%E7%D7%D3%D6%C6%D7%F7

#include <reg52.H>

#include<stdio.h>

unsigned char code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管显示0~F
void delay() //延时子程序
{
unsigned char n, m;
for (n = 100; n > 0; n--)
for (m = 300; m > 0; m--);
}
void display(unsigned char S) //显示子程序
{
P0 = table[S]; //数码管是P0口驱动的
delay();
P2 = 0x7f; //数码管选通开关(P2.7选通 也就是数码管的第八位 (从左到右顺序))
}
unsigned char Keycan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线
{
unsigned char rcode, ccode;
P1 = 0xF0; // 发全0行扫描码,列线输入
if((P1&0xF0) != 0xF0) // 若有键按下
{
delay();// 延时去抖动
if((P1&0xF0) != 0xF0)
{ rcode = 0xFE; // 逐行扫描初值