51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全) 您所在的位置:网站首页 led电子屏怎么滚动播放 51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全)

51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全)

2024-07-17 08:17| 来源: 网络整理| 查看: 265

文章目录 前言一、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 实验室设备网 版权所有