已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
欢饮您#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 = 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,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,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,;/全局变量 ,音符索引数unsigned 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,0x80, 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,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) / 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 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 writeY_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字节点阵显示数据写入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)unsigned 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)/unsigned char i;/for(i=0;i16;i+)/writeY_data_595(scan_hi);/writeY_data_595(scan_li);/writeX_data_595(codeGB_16index.Msk2*i+1);/writeX_data_595(codeGB_16index.Msk2*i);/dispY_data_595();/dispX_data_595();/delay(100);/ void main()while(1)initial();if(!SW_A)sound();if(!SW_B)led();if(!SW_C)bcd_displa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁岭市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(真题汇编)
- 2026年省直辖行政单位农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 珠海市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)带答案详解(完整版)
- 潼南县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解
- 台州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(历年真题)
- 浙江省农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有完整答案详解
- 荆门市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)完整参考答案详解
- 2026年嘉峪关市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解
- 2025年高危儿护理常规试题及答案
- 2026年河池市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(轻巧夺冠)
- 会计模拟实验之合并报表
- 《建筑工程测量》课件1
- 风险告知卡(激光切割机)
- 抖音电商直播投放策略指南
- 人与大自然的不和谐之音
- GB/T 7287-2008红外辐射加热器试验方法
- 七年级第一次家长会-下载完整版课件
- 5第六章生物多样性丧失的原因课件
- 设计部工作流程
- 电气设备状态监测与故障诊断课件
- 毛概考试简答题与论述题重点
评论
0/150
提交评论