51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全) | 您所在的位置:网站首页 › led电子屏怎么滚动播放 › 51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全) |
文章目录
前言一、protues仿真安装软件绘制原理图
二、keil程序编写1.
三、仿真示例
前言
本次任务:基于protues仿真实现at89c51控制16×16点阵led屏实现流水文字滚动,按键实现暂停,反向,调速 需要用到的工具:keil5,protues8.9 提示:以下是本篇文章正文内容,下面案例可供参考 一、protues仿真 安装软件protues是一款仿真软件,推荐使用最新版protues8.9具体下载地址:protues8.9安装 绘制原理图由于官方所给库中只有8×8点阵,现有两个方案:1自行绘制一个16×16点阵教程 2,用四块8×8点阵拼接而成(由于技术有限选择方案二) 先点开元件库,在库里搜索我们需要的元件 接下来任选一个自己喜欢的颜色,同理选择at89c51芯片,74h138,按键,电阻电容等等。 左上部分为51最小系统固定格式,照抄就好 四块数码点阵图 完整示例 二、keil程序编写 1.代码如下(示例): #include #include #define uchar unsigned char #define uint unsigned int #define data1 P0 #define data2 P2 sbit s1=P3^6; sbit s2=P3^7; sbit s3=P3^4; bit fangxiang; uint net=0,sl=128; int i = 20; int alt =0; bit mode; uchar code tab[]={ // 0x00,0x01,0x00,0x02,0x03,0xEC,0x02,0x20,0x02,0x20,0x02,0x28,0xFE,0x26,0x12,0x20,0x12,0x28,0x12,0x26,0x12,0x20,0x13,0xE0,0x10,0x08,0x10,0x07,0x00,0x00,0x00,0x00,/*"点",0*/ /* (16 X 16 , 宋体 ) */ 0x01,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0xC3,0xFF,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,/*"个",1*/ /* (16 X 16 , 宋体 ) */ 0x00,0x81,0x00,0x81,0x08,0x82,0x88,0x82,0x68,0x84,0x08,0x88,0x08,0xB0,0x0F,0xC0,0x08,0xB0,0x08,0x88,0x28,0x84,0xC8,0x82,0x08,0x82,0x00,0x81,0x00,0x81,0x00,0x00,/*"关",2*/ /* (16 X 16 , 宋体 ) */ 0x08,0x20,0x06,0x20,0x40,0x7E,0x31,0x80,0x00,0x02,0x10,0x02,0x10,0x82,0x10,0x82,0x90,0x82,0x5F,0xFE,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x00,0x02,0x00,0x00,/*"注",3*/ /* (16 X 16 , 宋体 ) */ 0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x08,0x00,0x54,0x3F,0xC8,0x6A,0x52,0xAA,0x61,0x3F,0xFE,0x01,0x00,0x08,0xC2,0x08,0x01,0xFF,0xFE,0x08,0x00,0x08,0x00,0x00,0x00,/*"谢",4*/ /* (16 X 16 , 宋体 ) */ 0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x08,0x00,0x54,0x3F,0xC8,0x6A,0x52,0xAA,0x61,0x3F,0xFE,0x01,0x00,0x08,0xC2,0x08,0x01,0xFF,0xFE,0x08,0x00,0x08,0x00,0x00,0x00,/*"谢",5*/ /* (16 X 16 , 宋体 ) */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",5*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",6*/ }; void delay(uint z) { uchar x; for(;z>0;z--) for(x=110;x>0;x--); } void Delay20ms() //@11.0592MHz { unsigned char i, j; _nop_(); _nop_(); i = 216; j = 36; do { while (--j); } while (--i); } void xianshi() { uchar aa,i; for(i=0;i ET1=1; EA=1; TR1=1; while(1) { xianshi(); if(s1==0) { delay(30); TR1=~TR1; while(!s1)xianshi(); delay(30); } if(s2==0) { delay(30); fangxiang=~fangxiang; while(!s2)xianshi(); delay(30); } if(s3==0) { Delay20ms(); alt = 0; i=i-9; if(i alt++; if(alt==i) { alt=0; if(fangxiang==0) { net=net+2; if(net>sl) net=0; } else { net=net-2; if(net |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |