/********** hero lee編寫(xiě),考試請(qǐng)勿直接移植,否則一切后果自負(fù) **********/
/* 屏蔽的為清翔單片機(jī)開(kāi)發(fā)板,若需使用則將沒(méi)有屏蔽的注釋?zhuān)⑨屃说拇蜷_(kāi),*/
/* 學(xué)校發(fā)的開(kāi)發(fā)板可直接修改學(xué)號(hào)數(shù)組下載 */
/* 此程序須將開(kāi)發(fā)板上的JOE排針上的跳線(xiàn)帽插左邊兩個(gè)即連接VCC與OE */
/*
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code display_lxy[20][8]={ //此數(shù)組為學(xué)號(hào)流動(dòng)顯示數(shù)碼管代碼
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,// 2
0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x3f,// 20
0x00,0x00,0x00,0x00,0x00,0x5b,0x3f,0x06,// 201
0x00,0x00,0x00,0x00,0x5b,0x3f,0x06,0x4f,// 2013
0x00,0x00,0x00,0x5b,0x3f,0x06,0x4f,0x3f,// 20130
0x00,0x00,0x5b,0x3f,0x06,0x4f,0x3f,0x7d,// 201306
0x00,0x5b,0x3f,0x06,0x4f,0x3f,0x7d,0x3f,// 2013060
0x5b,0x3f,0x06,0x4f,0x3f,0x7d,0x3f,0x3f,//20130600
0x3f,0x06,0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,//01306002
0x06,0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,0x06,//13060021
0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,0x06,0x3f,//30600210
0x3f,0x7d,0x3f,0x3f,0x5b,0x06,0x3f,0x07,//06002107
0x7d,0x3f,0x3f,0x5b,0x06,0x3f,0x07,0x00,//6002107
0x3f,0x3f,0x5b,0x06,0x3f,0x07,0x00,0x00,//002107
0x3f,0x5b,0x06,0x3f,0x07,0x00,0x00,0x00,//02107
0x5b,0x06,0x3f,0x07,0x00,0x00,0x00,0x00,//2107
0x06,0x3f,0x07,0x00,0x00,0x00,0x00,0x00,//107
0x3f,0x07,0x00,0x00,0x00,0x00,0x00,0x00,//07
0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
}; //修改學(xué)號(hào)對(duì)應(yīng)的數(shù)碼管碼
//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0~9
sbit we=P2^7;
sbit du=P2^6;
uchar ci=0,i,temp;
void init() //初始化
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-46082)/256;
TL0=(65536-46082)%256;
TR0=1;
}
void delay_ms(uint z) //毫秒級(jí)延時(shí)
{
uint y;
for(;z>0;z--)
for(y=115;y>0;y--);
}
void main()
{
init();
while(1)
{
for (i=0;i<8;i++)
{
P0=0;
du=1;
P0=0;
du=0;
P0=0xff;
we=1;
P0=_crol_(0xfe,i);
we=0;
P0=0;
du=1;
P0=display_lxy[ci][i]; //動(dòng)態(tài)顯示
du=0;
delay_ms(1);
}
}
}
void print() interrupt 1
{
static uchar z=0;
z++;
if(z==10)
{
z=0;
if (ci<19)
ci++; //次數(shù)更新
else
ci=0;
}
TH0=(65536-46082)/256;
TL0=(65536-46082)%256;
}
*/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code display_lxy[20][8]={ //此數(shù)組為學(xué)號(hào)流動(dòng)顯示數(shù)碼管代碼
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,// 2
0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x3f,// 20
0x00,0x00,0x00,0x00,0x00,0x5b,0x3f,0x06,// 201
0x00,0x00,0x00,0x00,0x5b,0x3f,0x06,0x4f,// 2013
0x00,0x00,0x00,0x5b,0x3f,0x06,0x4f,0x3f,// 20130
0x00,0x00,0x5b,0x3f,0x06,0x4f,0x3f,0x7d,// 201306
0x00,0x5b,0x3f,0x06,0x4f,0x3f,0x7d,0x3f,// 2013060
0x5b,0x3f,0x06,0x4f,0x3f,0x7d,0x3f,0x3f,//20130600
0x3f,0x06,0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,//01306002
0x06,0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,0x06,//13060021
0x4f,0x3f,0x7d,0x3f,0x3f,0x5b,0x06,0x3f,//30600210
0x3f,0x7d,0x3f,0x3f,0x5b,0x06,0x3f,0x07,//06002107
0x7d,0x3f,0x3f,0x5b,0x06,0x3f,0x07,0x00,//6002107
0x3f,0x3f,0x5b,0x06,0x3f,0x07,0x00,0x00,//002107
0x3f,0x5b,0x06,0x3f,0x07,0x00,0x00,0x00,//02107
0x5b,0x06,0x3f,0x07,0x00,0x00,0x00,0x00,//2107
0x06,0x3f,0x07,0x00,0x00,0x00,0x00,0x00,//107
0x3f,0x07,0x00,0x00,0x00,0x00,0x00,0x00,//07
0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
}; //修改學(xué)號(hào)對(duì)應(yīng)的數(shù)碼管碼
//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0~9
sbit a=P2^2;
sbit b=P2^3;
sbit c=P2^4; //端口定義
uchar ci=0,i,temp;
void init() //初始化
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
void delay_ms(uint z) //毫秒級(jí)延時(shí)
{
uint y;
for(;z>0;z--)
for(y=125;y>0;y--);
}
void display()
{
P0=0; c=0;b=0;a=0; P0=display_lxy[ci][7]; delay_ms(1);
P0=0; c=0;b=0;a=1; P0=display_lxy[ci][6]; delay_ms(1);
P0=0; c=0;b=1;a=0; P0=display_lxy[ci][5]; delay_ms(1);
P0=0; c=0;b=1;a=1; P0=display_lxy[ci][4]; delay_ms(1);
P0=0; c=1;b=0;a=0; P0=display_lxy[ci][3]; delay_ms(1);
P0=0; c=1;b=0;a=1; P0=display_lxy[ci][2]; delay_ms(1);
P0=0; c=1;b=1;a=0; P0=display_lxy[ci][1]; delay_ms(1);
P0=0; c=1;b=1;a=1; P0=display_lxy[ci][0]; delay_ms(1);
}
void main()
{
init();
while(1)
display();
}
void print() interrupt 1
{
static uchar z=0;
z++;
if(z==10)
{
z=0;
if (ci<19)
ci++; //次數(shù)更新
else
ci=0;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
|