求C51单片机数码管显示问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:16:26
特征码对应的BCD码分别是:7EH-03H,77H-F3H,B7H-25H,D7H-0DH,7BH-99H,BBH-49H,DBH-41H,7DH-1FH,BDH-01H,DDH-19H(前面是特征码后面是BCD码).如果在20H~25H中存有特征码7EH,77H,B7H,F7H,7BH,BBH,DBH.如何在六位LED数码管中显示第一和第六位?P0口接段码,P2口接位码。求求各位大虾给我 个汇编的程序。谢谢了谢谢了!!!!
我 的邮箱guifeng_86@163.com

#include <reg51.h>
//定义位操作
sbit ls1=P0^5; //千位公共极
sbit ls2=P0^4; //百位公共极
sbit ls3=P0^3; //十位公共极
sbit ls4=P0^2; //个位公共极

#define Out P1 //数据输出端

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳
// 实际显示 0 1 2 3 4 5 6 7 8 9

//延时----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
while(1) //循环显示
{
Out=tab[8]; //把数字8查表得到7段显示码数据送P1端口
ls1=0; //点亮千位
Delay(100); //显示一会
ls1=1; //关闭,显示下一位

Out=tab[7]; //把数字7查表得到7段显示码数据送P1端口
ls2=0; //点亮百位
Delay(100); //显示一会
ls2=1; //关闭,显示下一位,下同

Out=tab[6];
ls3=0;
Delay(100);
ls3=1;