版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
word文档可自由复制编辑51单片机16X32LED点阵程序#include<REG52.H>#include"intrins.h"#defineucharunsignedchar#defineuintunsignedint#definelight3//定义亮度/*****************************接口定义********************************/sbitSHCP=P1^6;//595的移位信号sbitSTCP=P1^5;//是595的锁存信号/*如果用的是普通单片机没有P4.1口请改为其他口*/sbitSDA_R=P3^6;//红数据sbitSDA_G=P1^4;//绿数据sbitOE=P1^7;//输出使能sbitIA=P1^0;//行控制线A/*如果用的是普通单片机没有P4.0口请改为其他口*/sbitIB=P1^1;//行控制线BsbitIC=P1^2;//行控制线CsbitID=P1^3;//行控制线DsbitSpeek=P2^3;//蜂鸣器/********************************************************************/#definescan0{IA=0;IB=0;IC=0;ID=0;}#definescan1{IA=1;IB=0;IC=0;ID=0;}#definescan2{IA=0;IB=1;IC=0;ID=0;}#definescan3{IA=1;IB=1;IC=0;ID=0;}#definescan4{IA=0;IB=0;IC=1;ID=0;}#definescan5{IA=1;IB=0;IC=1;ID=0;}#definescan6{IA=0;IB=1;IC=1;ID=0;}#definescan7{IA=1;IB=1;IC=1;ID=0;}#definescan8{IA=0;IB=0;IC=0;ID=1;}#definescan9{IA=1;IB=0;IC=0;ID=1;}#definescan10{IA=0;IB=1;IC=0;ID=1;}#definescan11{IA=1;IB=1;IC=0;ID=1;}#definescan12{IA=0;IB=0;IC=1;ID=1;}#definescan13{IA=1;IB=0;IC=1;ID=1;}#definescan14{IA=0;IB=1;IC=1;ID=1;}#definescan15{IA=1;IB=1;IC=1;ID=1;}ucharMove,Speed,line;//(移位速度行)定义uintzimuo;//字模计数器uintuiAllData;ucharBUFF[10];//缓存voidDelayMs(void);//延时voidin_data();//调整移动数据voidrxd_data();//发送移动数据constucharcodehanzi[];/******************************************************//*****不影响其他端口的扫描*************************/voidscan(unsignedcharValue){switch(Value){case0:scan0;break;case1:scan1;break;case2:scan2;break;case3:scan3;break;case4:scan4;break;case5:scan5;break;case6:scan6;break;case7:scan7;break;case8:scan8;break;case9:scan9;break;case10:scan10;break;case11:scan11;break;case12:scan12;break;case13:scan13;break;case14:scan14;break;case15:scan15;break;default:break;}}/**************************延时***********************//*voidDelay1ms(unsignedinttima){unsignedinta,b;for(a=tima;a>0;a--)for(b=110;b>0;b--);}*//********************************************/voidDelay_15us(unsignedinttime){do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}while(--time);}/*主函数*/voidmain(){Move=0;zimuo=0;while(1){//利用sizeof()语句运算字幕有效数据的总数;while(zimuo<uiAllData)//2048)//定义显示字幕数据的长度2048/32=64即显示完64个16*16大小的字符后重新循环{for(Move=0;Move<16;Move++)//数据移位。{for(Speed=0;Speed<10;Speed++)//移动速度控制{for(line=0;line<16;line++){in_data();//调整移动数据rxd_data();//装载移动数据scan(line);//输出行扫描STCP=1;//锁存STCP=0;OE=0;//打开屏使能端//Delay1ms(1);//延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。//DelayMs();_nop_();_nop_();_nop_();_nop_();_nop_();Delay_15us(6);OE=1;}}//移动一步}zimuo=zimuo+32;//换下一个字}zimuo=0;}}/**********************************************************/voidin_data(void)//调整数据一个屏4个字的数据{chars;for(s=4;s>=0;s--)//一个屏能显示4个字取最前面的字发送给595的最前面{//zimuo是个计算显示到哪个字的计数器s是取4个字的循环line是显示到哪一行根据这几个参数计算出一个屏中现在需要显示的数据放入BUFF内存中等待发送给595BUFF[2*s+0]=hanzi[zimuo+0+32*s+2*line];//要知道为什么这么算就需要知道取模的方向和原理一行有8个字节(一个中文16*16的字一行有2个字节)BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*line];//把一个字的首字节放入BUFF[0]中后面一个字节放入BUFF[1]以此类推剩下的3个字}}/***********************发送移动的数据****************************/voidrxd_data(void)//串行发送数据{uchars;ucharinc,tempyid,temp;if(Move<8)inc=0;elseinc=1;for(s=0+inc;s<4+inc;s++)//发送4字节数据{if(Move<8)tempyid=Move;elsetempyid=Move-8;temp=(BUFF[s]<<tempyid)|(BUFF[s+1]>>(8-tempyid));//h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。temp=255-temp;//temp1=(BUFF1[s]>>tempyid)|(BUFF1[s+1]<<(8-tempyid));//h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。//temp1=255-temp1;ACC=temp;//if(zimuo<104)//当显示完512/32=16个字后变绿色显示//{SDA_G=1;/*for(k=0;k<8;k++)//一个字节8位发送给595{SHCP=0;//上升沿移位595SDA_R=(bit)(temp&0x01);//通过IO口送一个位给595temp=temp>>1;//字节移位准备送下一位SHCP=1;}*///}SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;SHCP=0;ACC<<=1;SDA_R=CY;SHCP=1;}}//取模说明:取模软件用PC2002资料包里有直接打开即可用配置请看此程序目录下的"配置图片"//constucharcodehanzi[]={/*移动显示汉字字模,*///移动显示汉字0x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,0x12,0x16,0x02,0x45,0x0A,0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,0x04,0x01,0x00,0x00,/*"你",6*/0x40,0x00,0x40,0x00,0xFE,0x7F,0x20,0x00,0x20,0x00,0x10,0x02,0x18,0x02,0xE8,0x3F,0x0C,0x02,0x0A,0x02,0x09,0x02,0x08,0x02,0x08,0x02,0xE8,0x7F,0x08,0x00,0x00,0x00,/*"在",7*/0xE0,0x7B,0x4F,0x4A,0x49,0x2A,0x49,0x2A,0xE9,0x2B,0x49,0x1A,0x49,0x2A,0xF9,0x2B,0x49,0x4A,0x4F,0x4A,0x29,0x4A,0x20,0x5A,0x10,0x2A,0x88,0x0A,0x04,0x09,0x00,0x00,/*"哪",8*/0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,0x80,0x00,0x80,0x00,0xFC,0x1F,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x00,0x00,/*"里",9*/0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40,/*"我",10*/0x80,0x00,0x80,0x00,0xFC,0x3F,0x80,0x00,0x90,0x0C,0xA0,0x04,0xC0,0x02,0xFE,0x7F,0x80,0x01,0xC0,0x02,0xA0,0x04,0x90,0x18,0x8C,0x70,0x83,0x20,0x80,0x00,0x80,0x00,/*"来",11*/0x00,0x00,0xFE,0x3F,0x00,0x18,0x00,0x06,0x80,0x01,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《阿尔茨海默病汤颖》课件
- 养老院老人生活照料规范制度
- 养老院老人健康饮食营养师培训制度
- 政府委托课题项目合同(2篇)
- 断绝关系协议书
- 2024年度卫生纸品牌授权与区域代理销售合同3篇
- 2025年陕西货运从业资格证实操考试题
- 2025年浙江货运从业资格证500道题目和答案大全
- 2025年临汾货运员初级考试题库
- 《肠杆菌科细菌鉴定》课件
- 培训提问(讨论)记录表
- 材料科学基础ppt上海交通大学演示文稿
- 2022年北京语言大学各单位新编长聘人员招聘需求笔试备考题库及答案解析
- 《蛋糕裱花必修技术》PPT完整版
- SHT39032017监理规范表格(中文版)
- 铃兰花节专题讲座
- 社会组织服务管理工作的思考
- 完整解读中华人民共和国政府信息公开条例课件
- 收款账户确认书四篇
- GB/T 4336-2016碳素钢和中低合金钢多元素含量的测定火花放电原子发射光谱法(常规法)
- 理性作文600字合集九篇
评论
0/150
提交评论