基于单片机8051电梯滚动显示编写字库.docx
- 文档编号:26364938
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:20
- 大小:39.22KB
基于单片机8051电梯滚动显示编写字库.docx
《基于单片机8051电梯滚动显示编写字库.docx》由会员分享,可在线阅读,更多相关《基于单片机8051电梯滚动显示编写字库.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机8051电梯滚动显示编写字库
电梯滚动程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitPA=P1^0;
sbitPB=P1^1;
sbitPC=P1^2;
sbitPD=P1^3;
uinti,j=0;
voiddelay(uintz);
voidjiantou(uint);
voidjiantouxia(uint);
voidxianyi();
voidxianer();
voidxiansan();
voidxiansi();
voidxianwu();
voidxianliu();
voidxianqi();
voidxianba();
voidxianjiu();
voidmie();
voidmain()
{
while
(1)
{
for(i=3000;i>0;i--)
{
if(j==0)
xianyi();//进入主程序后先显示“1”j=0时显示“1”
else
xianjiu();//外部中断0中执行完上升指令后显示屏显“9”
EA=1;//开中断
IT0=1;
IT1=1;
EX0=1;
EX1=1;//开外部中断0,1分别控制向上和向下
}
}
}
voidmie()//点阵灭掉
{
P0=0xff;
P2=0xff;
}
voiddelay(uintz)//延时函数延时一毫秒
{
uintx,y;
for(x=z;x>0;x--)
for(y=115;y>0;y--);
}
voidjiantou(uinttemp)//向上箭头程序箭头共占5列
{
uinttemp1,temp2,temp3,temp4,temp5;
temp1=0xf7;
temp1=_crol_(temp1,temp);//循环移位
P2=temp1;P0=0xff;//只有P2口控制的部分循环移位P0口控制部分不变
PA=0;PB=0;PC=0;PD=0;//第0列
delay(3);
mie();
temp2=0xef;
temp2=_crol_(temp2,temp);
P2=temp2;P0=0xff;
PA=1;PB=0;PC=0;PD=0;//第1列
delay(3);
mie();
temp3=0xc0;
temp3=_crol_(temp3,temp);
P2=temp3;P0=0x03;
PA=0;PB=1;PC=0;PD=0;//第2列
delay(3);
mie();
temp4=0xef;
temp4=_crol_(temp4,temp);
P2=temp4;P0=0xff;
PA=1;PB=1;PC=0;PD=0;//第3列
delay(3);
mie();
temp5=0xf7;
temp5=_crol_(temp5,temp);
P2=temp5;P0=0xff;
PA=0;PB=0;PC=1;PD=0;//第4列
delay(3);
mie();
}
voidjiantouxia(uinttemp)//向下的箭头程序箭头共占5列
{
uinttemp6,temp7,temp8,temp9,temp0;
temp6=0xef;
temp6=_cror_(temp6,temp);//循环移位
P2=0xff;P0=temp6;//只有P0口控制的部分循环移位P2口控制部分不变
PA=0;PB=0;PC=0;PD=0;//第0列
delay(3);
mie();
temp7=0xf7;
temp7=_cror_(temp7,temp);
P2=0xff;P0=temp7;
PA=1;PB=0;PC=0;PD=0;//第1列
delay(3);
mie();
temp8=0x03;
temp8=_cror_(temp8,temp);
P2=0xc0;P0=temp8;
PA=0;PB=1;PC=0;PD=0;//第2列
delay(3);
mie();
temp9=0xf7;
temp9=_cror_(temp9,temp);
P2=0xff;P0=temp9;
PA=1;PB=1;PC=0;PD=0;//第3列
delay(3);
mie();
temp0=0xef;
temp0=_cror_(temp0,temp);
P2=0xff;P0=temp0;
PA=0;PB=0;PC=1;PD=0;//第4列
delay(3);
mie();
}
voidxianyi()//显示数字“1”
{
P2=0xef;P0=0xfb;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xef;P0=0xfb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xc0;P0=0x03;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xff;P0=0xfb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xff;P0=0xfb;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianer()//显示数字“2”
{
P2=0xf7;P0=0xc3;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xef;P0=0xbb;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xbb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xbb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xbb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xbb;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xe0;P0=0x73;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxiansan()//显示数字“3”
{
P2=0xf7;P0=0xef;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xef;P0=0xf7;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xee;P0=0xf7;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xf1;P0=0x0f;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxiansi()//显示数字“4”
{
P2=0xf8;P0=0x3f;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xf7;P0=0xbf;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xef;P0=0xbb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xbb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xc0;P0=0x03;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xff;P0=0xbb;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xff;P0=0xbf;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianwu()//显示数字“5”
{
P2=0xc1;P0=0xcf;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xdd;P0=0xf7;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdd;P0=0xfb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdd;P0=0xfb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdd;P0=0xfb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdd;P0=0xf7;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xde;P0=0x0f;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianliu()//显示数字“6”
{
P2=0xf0;P0=0x0f;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xef;P0=0x77;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xef;P0=0x77;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xf7;P0=0x8f;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianqi()//显示数字“7”
{
P2=0xdf;P0=0xff;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xdf;P0=0xff;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xff;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0xff;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0x03;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdd;P0=0xff;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xc3;P0=0xff;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianba()//显示数字“8”
{
P2=0xf3;P0=0x8f;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xed;P0=0x77;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xde;P0=0xfb;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xed;P0=0x77;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xf3;P0=0x8f;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidxianjiu()//显示数字“9”
{
P2=0xf1;P0=0xef;
PA=1;PB=1;PC=1;PD=0;
delay(3);
mie();
P2=0xee;P0=0xf7;
PA=0;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0x7b;
PA=1;PB=0;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0x7b;
PA=0;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xdf;P0=0x7b;
PA=1;PB=1;PC=0;PD=1;
delay(3);
mie();
P2=0xee;P0=0xf7;
PA=0;PB=0;PC=1;PD=1;
delay(3);
mie();
P2=0xf0;P0=0x0f;
PA=1;PB=0;PC=1;PD=1;
delay(3);
mie();
}
voidwai0()interrupt0//开关向上外部中断0
{
for(i=20;i>0;i--)//显示向上箭头和数字“1”
{
jiantou(0);
xianyi();
}
for(i=20;i>0;i--)//显示向上箭头和数字“2”
{
jiantou
(1);
xianer();
}
for(i=20;i>0;i--)//显示向上箭头和数字“3”
{
jiantou
(2);
xiansan();
}
for(i=20;i>0;i--)//显示向上箭头和数字“4”
{
jiantou(3);
xiansi();
}
for(i=20;i>0;i--)//显示向上箭头和数字“5”
{
jiantou(4);
xianwu();
}
for(i=20;i>0;i--)//显示向上箭头和数字“6”
{
jiantou(5);
xianliu();
}
for(i=20;i>0;i--)//显示向上箭头和数字“7”
{
jiantou(6);
xianqi();
}
for(i=20;i>0;i--)//显示向上箭头和数字“8”
{
jiantou(7);
xianba();
}
for(i=20;i>0;i--)//显示向上箭头和数字“9”
{
jiantou(8);
xianjiu();
}
{
xianjiu();//显示完数字“9”之后将“j”变为1令显示屏一直显示“9”
}
j=1;
}
voidwai1()interrupt2//开关向下外部中断1中断号2
{
for(i=20;i>0;i--)//显示向下箭头和数字“9”
{
jiantouxia(0);
xianjiu();
}
for(i=20;i>0;i--)//显示向下箭头和数字“8”
{
jiantouxia
(1);
xianba();
}
for(i=20;i>0;i--)//显示向下箭头和数字“7”
{
jiantouxia
(2);
xianqi();
}
for(i=20;i>0;i--)//显示向下箭头和数字“6”
{
jiantouxia(3);
xianliu();
}
for(i=20;i>0;i--)//显示向下箭头和数字“5”
{
jiantouxia(4);
xianwu();
}
for(i=20;i>0;i--)//显示向下箭头和数字“4”
{
jiantouxia(5);
xiansi();
}
for(i=20;i>0;i--)//显示向下箭头和数字“3”
{
jiantouxia(6);
xiansan();
}
for(i=20;i>0;i--)//显示向下箭头和数字“2”
{
jiantouxia(7);
xianer();
}
for(i=20;i>0;i--)//显示向下箭头和数字“1”
{
jiantouxia(8);
xianyi();
}
{
xianyi();//显示完数字“1”之后将“j”变为0一直显示“1”
}
j=0;
}
PROTEUS仿真图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 8051 电梯 滚动 显示 编写 字库