收藏 分享(赏)

16x32点阵c程序.docx

上传人:cjc2202537 文档编号:1192836 上传时间:2018-06-17 格式:DOCX 页数:9 大小:16.32KB
下载 相关 举报
16x32点阵c程序.docx_第1页
第1页 / 共9页
16x32点阵c程序.docx_第2页
第2页 / 共9页
16x32点阵c程序.docx_第3页
第3页 / 共9页
16x32点阵c程序.docx_第4页
第4页 / 共9页
16x32点阵c程序.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、1#include#define uchar unsigned char#define uint unsigned intuchar speed=15;sbit ST=P35;sbit SH=P36;sbit DATA=P37;sbit EN=P24;sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit K5=P14;sbit K6=P15;bit LeftFlag;bit RightFlag;bit UpFlag;bit DownFlag;bit ZJ1Flag;bit ZJ2Flag=1; /开始显示模式 6void delay(ucha

2、r ms) /延时uchar y;for(;ms0;ms-)for(y=120;y0;y-);uchar code hanzi32=/*平 */0x00,0x08,0x7F,0xFC,0x01,0x00,0x11,0x10,0x11,0x10,0x09,0x20,0x09,0x20,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,/*职 */0x04,0x00,0xFE,0x04,0x24,0xFE,0x24,0x84,0x3C,0x84,0x24,0x84,0x

3、24,0x84,0x3C,0x84,0x24,0xFC,0x24,0x84,0x27,0x48,0xFC,0x48,0x44,0x84,0x04,0x86,0x05,0x02,0x04,0x00,/*学 */0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,/*院 */0x00,0x80,0xF8,0x40,0x8F,0xFE,

4、0x94,0x04,0xA0,0x00,0xA3,0xF8,0x90,0x00,0x88,0x00,0x8F,0xFE,0xA9,0x20,0x91,0x20,0x81,0x20,0x82,0x22,0x82,0x22,0x84,0x22,0x88,0x1E,/*欢 */0x00,0x80,0x00,0x80,0xFC,0x80,0x05,0xFE,0x85,0x04,0x4A,0x48,0x28,0x40,0x10,0x40,20x18,0x40,0x18,0x60,0x24,0xA0,0x24,0x90,0x41,0x18,0x86,0x0E,0x38,0x04,0x00,0x00,/*迎

5、 */0x40,0x00,0x21,0x80,0x36,0x7C,0x24,0x44,0x04,0x44,0x04,0x44,0xE4,0x44,0x24,0x44,0x25,0x44,0x26,0x54,0x24,0x48,0x20,0x40,0x20,0x40,0x50,0x00,0x8F,0xFE,0x00,0x00,/*您 */0x08,0x00,0x09,0x00,0x11,0xFE,0x12,0x04,0x34,0x40,0x32,0x50,0x52,0x48,0x94,0x44,0x11,0x44,0x10,0x80,0x00,0x00,0x29,0x04,0x28,0x92,0

6、x68,0x12,0x07,0xF0,0x00,0x00,/*“!“*/0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

7、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;void SendByte(uchar a)uchar byte,i;byte=a;for(i=0;i8;i+)SH=0; if(byteelseDATA=0;SH=1; /上升沿byte=1; /数据左移void LeftDisplay(void) /左移,半个字一移uchar i,j,scan,k;for(i=0;i8;

8、i+) /hanzi中 10个字,因一下显示两个字,所以 j最大为 j=10-2=8;if(LeftFlag=1) /使之按了其他的键立即退出,转到其他模式 for(k=0;kspeed;k+) /移动速度 scan=0; /154译码3if(LeftFlag=1) for(j=0;j31;j+=2)ST=0;SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendByte(hanziij+1);SendByte(hanziij);ST=1; /一个上升沿送数据EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;for(k=

9、0;kspeed;k+)scan=0;if(LeftFlag=1) for(j=0;j31;j+=2) ST=0; /另外半个字,注意这里,下面同理 SendByte(hanzii+2j);SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendByte(hanziij+1);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;elsebreak;void RightDisplay(void) /右移uchar i,j,k,scan;for(i=0;i8;i+) /字加 1 if(RightFlag=1) for(

10、k=0;kspeed;k+)4 scan=0;if(RightFlag=1)for(j=0;j31;j+=2)ST=0;SendByte(hanziij+1);SendByte(hanziij);SendByte(hanzii+1j+1);SendByte(hanzii+1j);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;for(k=0;kspeed;k+) scan=0;if(RightFlag=1)for(j=0;j31;j+=2)ST=0;SendByte(hanziij);SendByte(hanzii+1j+1);SendByte(

11、hanzii+1j);SendByte(hanzii+2j+1);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;elsebreak;void UpDisplay(void) /上移uchar i,j,k,scan;char temp=0;for(i=0;i8;)5 if(UpFlag=1) for(k=0;kspeed;k+) scan=15-temp; /译码从最底下开始if(UpFlag=1)for(j=0;j2*temp+1;j+=2)ST=0;SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendB

12、yte(hanziij+1);SendByte(hanziij);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;temp+; /控制译码的if(temp=16) temp=0; /temp复位i+=2; /显示下四个字elsebreak;void DownDisplay(void) /下移uchar i,j,k,scan;char temp=30;for(i=0;i8;)if(DownFlag=1)for(k=0;kspeed;k+)scan=0;if(DownFlag=1) for(j=temp;j31;j+=2) /开始 j=30 ST=0

13、;SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendByte(hanziij+1);SendByte(hanziij);6ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;temp-=2;if(temp=-2)temp=30;i+=2;elsebreak;void ZJDisplay1(void) /只在下移基础上稍微改下(综合上移和下移) uchar i,j,k,scan,temp;for(i=0;i8;)if(ZJ1Flag=1)for(k=0;kspeed;k+)scan=0;if(ZJ1Flag=1

14、) for(j=0;j2*temp+1;j+=2) ST=0;SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendByte(hanziij+1);SendByte(hanziij);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;temp+;if(temp=16)temp=0;7i+=2;elsebreak;void ZJDisplay2(void) /只在下移基础上稍微改下(综合上移和下移) uchar i,j,k,scan,z=0;char temp=30;for(i=0;i8;) if(ZJ2Flag

15、=1) for(k=0;kspeed;k+) scan=15-z; /z作译码控制if(ZJ2Flag=1)for(j=temp;j31;j+=2)ST=0;SendByte(hanzii+1j+1);SendByte(hanzii+1j);SendByte(hanziij+1);SendByte(hanziij);ST=1;EN=0;P2=scan;delay(5);EN=1;scan+;elsebreak;temp-=2;z+;if(temp=-2) temp=30;i+=2;z=0; /z=15时复位elsebreak;void ClearFlag(void) /清标志位,调用子程序方便

16、LeftFlag=0;8RightFlag=0;UpFlag=0;DownFlag=0;ZJ1Flag=0;ZJ2Flag=0;void KeyScan(void)if(K1=0)delay(10);if(K1=0) while(!K1);ClearFlag();LeftFlag=1;if(K2=0)delay(10);if(K2=0) while(!K2);ClearFlag();RightFlag=1;if(K3=0)delay(10);if(K3=0) while(!K3);ClearFlag();UpFlag=1;if(K4=0)delay(10);if(K4=0) while(!K4

17、);ClearFlag();DownFlag=1;if(K5=0)delay(10);if(K5=0) while(!K5);ClearFlag();ZJ1Flag=1;9if(K6=0) delay(10);if(K6=0)while(!K6);ClearFlag();ZJ2Flag=1;void main(void)TMOD=0X01; /T0定时方式 1TH0=(65535-1000)/256; /装入计数初值TL0=(65535-1000)%256;ET0=1; /T0开中断EA=1; /开总中断TR0=1; /启动定时器 TOwhile(1) /等待中断if(LeftFlag=1)LeftDisplay();if(RightFlag=1)RightDisplay();if(UpFlag=1)UpDisplay();if(DownFlag=1)DownDisplay();if(ZJ1Flag=1)ZJDisplay1();if(ZJ2Flag=1)ZJDisplay2();void timer0(void) interrupt 1TH0=(65535-1000)/256;TL0=(65535-1000)%256;KeyScan(); /按键确定值

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报