1、基于单片机8051电梯滚动显示编写字库电梯滚动程序#include#include#define uchar unsigned char#define uint unsigned intsbit PA=P10;sbit PB=P11;sbit PC=P12;sbit PD=P13;uint i,j=0;void delay(uint z);void jiantou(uint);void jiantouxia(uint);void xianyi();void xianer();void xiansan();void xiansi();void xianwu();void xianliu();vo
2、id xianqi();void xianba();void xianjiu();void mie();void main() while(1) for(i=3000;i0;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 分别控制向上和向下 void mie() /点阵灭掉 P0=0xff; P2=0xff;void delay(uint z) /延时函数 延时一毫秒 uin
3、t x,y; for(x=z;x0;x-) for(y=115;y0;y-);void jiantou(uint temp) /向上箭头程序 箭头共占5列 uint temp1,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;
4、 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; P
5、A=0;PB=0;PC=1;PD=0; /第4列 delay(3); mie();void jiantouxia(uint temp) /向下的箭头程序 箭头共占5列 uint temp6,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=
6、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=tem
7、p0; PA=0;PB=0;PC=1;PD=0; /第4列 delay(3); mie();void xianyi() /显示数字“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=
8、0xfb; PA=0;PB=0;PC=1;PD=1; delay(3); mie();void xianer() /显示数字“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=0xb
9、b; 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(); void xiansan() /显示数字“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
10、; 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();void xiansi() /显示数字“4” P2=0xf8;P0=0x3f; P
11、A=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
12、(3); mie(); P2=0xff;P0=0xbf; PA=1;PB=0;PC=1;PD=1; delay(3); mie();void xianwu() /显示数字“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)
13、; 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();void xianliu() /显示数字“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);
14、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();void xianqi() /显示数字
15、“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
16、;PB=0;PC=1;PD=1; delay(3); mie(); P2=0xc3;P0=0xff; PA=1;PB=0;PC=1;PD=1; delay(3); mie();void xianba() /显示数字“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
17、=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();void xianjiu() /显示数字“9” P2=0xf1;P0=0xef; PA=1;PB=1;PC=1;PD=0; delay(3); mie(); P2=0xee;P0=0xf7; PA=0;PB=0
18、;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
19、();void wai0() interrupt 0 /开关向上 外部中断0 for(i=20;i0;i-) /显示向上箭头和数字“1” jiantou(0); xianyi(); for(i=20;i0;i-) /显示向上箭头和数字“2” jiantou(1); xianer(); for(i=20;i0;i-) /显示向上箭头和数字“3” jiantou(2); xiansan(); for(i=20;i0;i-) /显示向上箭头和数字“4” jiantou(3); xiansi(); for(i=20;i0;i-) /显示向上箭头和数字“5” jiantou(4); xianwu();
20、for(i=20;i0;i-) /显示向上箭头和数字“6” jiantou(5); xianliu(); for(i=20;i0;i-) /显示向上箭头和数字“7” jiantou(6); xianqi(); for(i=20;i0;i-) /显示向上箭头和数字“8” jiantou(7); xianba(); for(i=20;i0;i-) /显示向上箭头和数字“9” jiantou(8); xianjiu(); xianjiu(); /显示完数字“9”之后 将“j”变为1 令显示屏一直显示“9” j=1;void wai1() interrupt 2 /开关向下 外部中断1 中断号2 fo
21、r(i=20;i0;i-) /显示向下箭头和数字“9” jiantouxia(0); xianjiu(); for(i=20;i0;i-) /显示向下箭头和数字“8” jiantouxia(1); xianba(); for(i=20;i0;i-) /显示向下箭头和数字“7” jiantouxia(2); xianqi(); for(i=20;i0;i-) /显示向下箭头和数字“6” jiantouxia(3); xianliu(); for(i=20;i0;i-) /显示向下箭头和数字“5” jiantouxia(4); xianwu(); for(i=20;i0;i-) /显示向下箭头和数字“4” jiantouxia(5); xiansi(); for(i=20;i0;i-) /显示向下箭头和数字“3” jiantouxia(6); xiansan(); for(i=20;i0;i-) /显示向下箭头和数字“2” jiantouxia(7); xianer(); for(i=20;i0;i-) /显示向下箭头和数字“1” jiantouxia(8); xianyi(); xianyi(); /显示完数字“1”之后 将“j”变为0 一直显示“1” j=0; PROTEUS仿真图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1