标题:
单片机数码显示学号的程序
[打印本页]
作者:
yzb813169284
时间:
2019-7-1 09:48
标题:
单片机数码显示学号的程序
掌握74LS164驱动数码管显示和用C51编写显示函数的方法。能够使数码管上显示的数据以左移的方式显示出自己学号的全部(每隔1S钟左移一位)
0e2442a7d933c89568cd82bbd31373f0830200ba.png
(25.17 KB, 下载次数: 54)
下载附件
2019-7-1 09:48 上传
单片机源程序如下:
#include <reg51.h> //头文件
#define uchar unsigned char
#define uint unsigned int //宏定义
uchar disbuf[12];
uchar aa,bb;
void sx(void);
void delay(uint z) //延时1ms函数
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<121;j++);
}
void intimer1(void) interrupt 2 //外部中断1中断服务函数
{
for(aa=0;aa<12;aa++)
{
disbuf[aa]=17;
} //清显示
}
void display(void) //显示函数
{
uchar s,n;
code uchar tab[]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,0X80,0X90,
0xa0,0x83,0xc9,0x86,0xc1,0xe1,0xa2,0xff}; //数码管显示数据字型码表
for(s=0;s<=11;s++)
{
SBUF=tab[disbuf[s]]; //送显示数据
for(n=0;n<4;n++)
delay(250); //软件延时1s钟
}
}
void main(void)
{
EA=1;
EX1=1;
do
{
for(bb=0;bb<12;bb++)
{
disbuf[bb]=17;
} //将显示数据清零
delay(2); //延时2MS
sx(); //送显示函数
display(); //显示函数
}while(1);
}
void sx(void) //送显示函数
{
disbuf[0]=0; //显示数据的第1位
disbuf[1]=9; //显示数据的第2位
disbuf[2]=1; //显示数据的第3位
disbuf[3]=0; //显示数据的第4位
disbuf[4]=1; //显示数据的第5位
disbuf[5]=0; //显示数据的第6位
disbuf[6]=1; //显示数据的第7位
disbuf[7]=3; //显示数据的第8位
disbuf[8]=2; //显示数据的第9位
disbuf[9]=17;
disbuf[10]=17;
disbuf[11]=17; //最后三位用于与下一次显示数据区分开
}
复制代码
作者:
176565
时间:
2020-9-17 15:04
你这个程序不亮啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1