广告牌的单片机设计报告

2026/4/27 3:45:37

附录 B 主要C程序清单

以下是16x16的点阵LED电子图文显示屏的源程序采用C语言编写,C程序KeiluVision2 V2.30环境下调试通过。

以下为用汇编语言编写的字符显示控制程序:

; *************************************** ; * * ; * 单个16x16的点阵电子屏字符显示器 * ; * ATA89C52 12MHz晶振 * ; * 2004.2.11 LRM * ; *************************************** ;显示字用查表法,不占用内存,字符用16x16共阳LED点阵, ;效果:向上滚动显示4个字,再重复循环。 #include #define BLKN 2 #define TOTAL 4 #define CONIO P1 sbit key1=P2^7; sbit key2=P2^6; sbit G=P1^7; sbit CLK=P1^6; sbit SCLR=P1^5;

unsigned char idata dispram[(BLKN/2)*32]={0}; unsigned char code Bmp[4][32]={ {

0xEF,0xFF,0xEF,0x03,0x81,0xBB,0xDD,0xBB,0xDD,0xD7,0xEB,0xEF,0xF3,0xD7,0xCD,0xB9,

0x3E,0xFF,0xC0,0x07,0xFE,0xF7,0xFD,0xF7,0xFD,0xF7,0xFB,0xF7,0xF7,0xD7,0xEF,0xEF}, {

0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x80,0x03,0xFE,0xFB,0xFE,0xFB,0xFE,0xFB,

0xFE,0xFB,0xFD,0xFB,0xFD,0xFB,0xFB,0xFB,0xFB,0xFB,0xF7,0xFB,0xEF,0xD7,0xDF,0xEF}, {

0xFE,0xF7,0xEF,0x73,0xF3,0x37,0xF7,0x6F,0x80,0x01,0xBF,0xFB,0x70,0x17,0xFF,0xBF,

0xFF,0x7F,0x80,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF}, {

0xFF,0xFF,0xC0,0x03,0xFF,0xFB,0xF7,0xFB,0xFB,0xFB,0xFC,0xFB,0xFE,0xEB,0xFF,0x9B,

0xFE,0x7B,0xF9,0xFB,0xC7,0xFB,0xEF,0xFB,0xFF,0xFB,0xFF,0xDB,0xFF,0xEA,0xFF,0xF6}, };

void delay(unsigned int dt) {

register unsigned char bt; for (; dt; dt--)

for (bt=0; bt<255; bt++); }

void style1() {

register unsigned char w,i,q; delay(1000);

for (w=0;w

for (i=0;i<32;i++) {

for(q=0;q

if(key2==0)delay(20);if(key2==0)while(1){if(key2==1)break;} ; if (i%2) delay(120); } delay(1000);} }

void style2() {

register unsigned char i,j,k,l,q; delay(1000);

for (i=0; i

for (j=2; j>0; j--) {

for (k=0; k<8; k++) {

for (l=0; l<16; l++) {

for(q=0;q>1 dispram[l*2+q*32]<<7;

if(q==0) dispram[l*2+q*32] = dispram[l*2+q*32]>>1 Bmp[i][l*2+j-1]<<(7-k); else dispram[l*2+q*32] = dispram[l*2+q*32]>>1 dispram[l*2+1+(q-1)*32]<<7;

if(key2==0)delay(20);if(key2==0)while(1){if(key2==1)break;}} }

delay(100); } } }

delay(1000) ; }

void main(void)

10

| | |

{

SCON = 0x00; TMOD = 0x01; TR0 = 1; CONIO = 0x2f; IE = 0x82;

while(1){ key1=1;

if(key1==0)delay(20);if(key1==0) while(1)

{style1();if(key1==1)break;} if(key1==1)delay(20);if(key1==1) while(1)

{style2();if(key1==0)break;} } }

void leddisplay(void) interrupt 1 using 1 { register unsigned char m,z=BLKN; TH0 = 0xFc; TL0 = 0x18; m=~m;

m = CONIO;

m = ++m & 0x0f; do { z--;

SBUF = dispram[m*2+(z/2)*30 + z]; while (!TI); TI = 0; }while (z); G = 1; CONIO &= 0xf0; CLK=1; CONIO |= m; CLK=0;

G = 0; }

11


广告牌的单片机设计报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 广告牌的单片机设计报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219