点阵显示字符欢迎您编程.doc

上传人:工**** 文档编号:554573821 上传时间:2023-03-12 格式:DOC 页数:7 大小:46.50KB
返回 下载 相关 举报
点阵显示字符欢迎您编程.doc_第1页
第1页 / 共7页
点阵显示字符欢迎您编程.doc_第2页
第2页 / 共7页
点阵显示字符欢迎您编程.doc_第3页
第3页 / 共7页
点阵显示字符欢迎您编程.doc_第4页
第4页 / 共7页
点阵显示字符欢迎您编程.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《点阵显示字符欢迎您编程.doc》由会员分享,可在线阅读,更多相关《点阵显示字符欢迎您编程.doc(7页珍藏版)》请在金锄头文库上搜索。

1、欢饮您#include#includesbit SW_A = P30;/定义开关位Asbit SW_B = P31;/定义开关位Bsbit SW_C = P32;/定义开关位Csbit SW_D = P33;/定义开关位Dsbit sounder = P20;sbit r_led = P21;/流水灯显示启动位定义sbit seg_c = P22;sbit r_lcd = P23;/LCD点阵显示启动位定义sbit sh_tube = P10;sbit st_tube = P11;sbit sh_d = P12;sbit st_d = P13;sbit X_IN = P14;sbit Y_IN

2、 = P15;sbit sh = P16;sbit st = P17;#define data P0#define uchar unsigned char#define uint unsigned intstruct typFNT_GB16 / 汉字字模数据结构 unsigned char Index3; / 汉字内码索引 unsigned char Msk32; / 点阵码数据 ; code struct typFNT_GB16 codeGB_16 = / 数据表 /*- 文字: 欢 -*/*- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 -*/欢,0xFF,0x7F

3、,0xFF,0x7F,0xFF,0x7F,0xFE,0xFF,0xE6,0x87,0x96,0x6F,0xF5,0xDF,0xB7,0x7F,0xD7,0x7F,0xEF,0x7F,0xD6,0xBF,0xBE,0xDF,0x7D,0xE7,0xFB,0xF1,0xFF,0xFF,0xFF,0xFF,/*- 文字: 迎 -*/*- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 -*/迎,0xFF,0xFF,0xFF,0x7F,0xDE,0x7F,0xE9,0xC7,0xFB,0xB7,0xFB,0xB7,0x0B,0xB7,0xEA,0xA7,0xD9,0xBF,0xEF

4、,0xBF,0xEF,0xBF,0x00,0xFF,0xFF,0x01,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,/*- 文字: 您 -*/*- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 -*/您,0xFF,0x7F,0xF7,0x7F,0xF6,0xC7,0xEE,0x37,0xCD,0xAF,0xAB,0xBF,0xED,0xAF,0xED,0xB7,0xEF,0x3F,0xFF,0xF7,0xF6,0xFB,0xD7,0x5F,0x9B,0xEF,0xFC,0x07,0xFF,0xFF,0xFF,0xFF,;/全局变量 ,音符索引数unsign

5、ed char musicNum;/音符播放时定时寄存器处值TH0unsigned char code high_buff = 136,149,161,166,176,185,192;/音符播放时定时寄存器处值TL0unsigned char code low_buff = 24,23,10,15,9,0,24;/LCD点阵显示符号unsigned char code lcd_sym = 0xff,0xc3,0xbd,0xbd,0xbd,0xbd,0xc3,0xff;unsigned char code scan_l = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0

6、x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;unsigned char code scan_h = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;unsigned char code bcd_scan = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;unsigned char code digit = 0x24,0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0x78,0x00

7、,0x10;/0,1,2,3,4,5,6,7,8,9 /延时函数void delay5ms(unsigned char n)unsigned int i,j; for(j=0;jn;j+) for(i=0;i919;i+);void delay(unsigned int n)unsigned int i;for(i=0;in;i+); void initial()EA = 0;sounder = 0;r_led = 0;r_lcd = 0;P3 = 0xff;void sound()while(!SW_A)TMOD = 0x00; /定时器0工作在模式0 TH0 = (8192 - 700)

8、/ 32; /定时器赋初值 TL0 = (8192 - 700) % 32; EA = 1; /开总中断 ET0 = 1; /开定时器0定时溢出中断 sounder = 0; for(musicNum = 0;musicNum 14;musicNum+) TR0 = 1; delay5ms(100); TR0 = 0; delay5ms(50);void led()r_led = 1;data = 0xfe;while(data != 0xff)delay5ms(200);data=1;data|=0x01; void spi_op(unsigned char spi_ds)unsigned

9、int i;st_tube = 0;for(i = 0;i8;i+) sh_tube = 0; if(spi_ds&0x80)!=0)seg_c = 1;/判断串行数据最高位是0还是1 else seg_c = 0; spi_ds =1;/串行数据移位 sh_tube = 1;/sh上升沿将数据移入内部存储器st_tube = 1;/st上升沿将数据锁存到输出口void bcd_display()uchar i,j;for(j=0;j4;j+)for(i=0;i4;i+)spi_op(bcd_scani);data = digit(j+i)%4;delay5ms(100);void write

10、Y_data_595(uchar disp)/把1字节点阵扫描数据写入74595中uint i;for(i=0;i8;i+) Y_IN=disp&0x80;/把disp的最高位赋给DATA sh=1;/上升沿使移位寄存器移位 _nop_();/延时1个机器周期 sh=0; disp=1;/disp向左移位,从高位依次将每一位送入DATAvoid dispY_data_595()/将移位寄存器中的数据转入存储寄存器中输出 st=0;_nop_();st=1;/上升沿时移位寄存器的数据进入数据存储寄存器_nop_();void writeX_data_595(uchar disp)/把1字节点阵显

11、示数据写入74595中uint i;for(i=0;i8;i+) X_IN=disp&0x80;/把disp的最高位赋给DATA sh_d=1;/上升沿使移位寄存器移位 _nop_();/延时1个机器周期 sh_d=0; disp=1;/disp向左移位,从高位依次将每一位送入DATAvoid dispX_data_595()/将移位寄存器中的数据转入存储寄存器中输出 st_d=0;_nop_();st_d=1;/上升沿时移位寄存器的数据进入数据存储寄存器_nop_();/*点阵字符滚动显示进屏子程序*/void flow_display_in(unsigned char index)unsi

12、gned char i,j,k;unsigned char cash = 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;for(i=0;i32;i+)/初始化临时数组cashi = 0xff;for(j=0;j16;j+)/表示屏数for(k=0;k=j;k+)/重新排列点阵字符显示内容cash30-2*k = codeGB_16index.Msk2*j-2*k;cash31-2*k = codeGB_16index.Msk2*j-2*k+1;for(i=0;i16;i+)writeY_data_595(scan_hi);writeY_data_595(scan_li);writeX_data_595(cash2*i+1);writeX_data_595(cash2*i);dispY_data_595();dispX_data_595();delay(100);delay5ms(10);/void lcd_display(uchar index)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号