当前位置: 首页 > news >正文

【51单片机】【protues仿真】基于51单片机点阵屏系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、16*16点阵屏幕显示
2、138芯片和595芯片
3、按键切换左右移动,暂停

二、使用步骤

LED点阵屏是51单片机项目中常用的显示设备,通过控制LED的亮灭组合实现文字、图形和动画显示。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、16*16点阵屏
 

四、软件设计

#include<reg51.h>//头文件

sbit shcp=P1^2;//数据输入时钟线 595的11脚
sbit stcp=P1^1;//输出存储器锁存时钟线 595的12脚
sbit ds=P1^0;//数据线  595的14脚

sbit s1=P3^1;//按下暂停再暂按继续
sbit s2=P3^2;//按下方向取反
bit fx;//方向切换
sbit    IR    = P3^2;         

unsigned char    N[4];                 //识别码,操作码存放
unsigned char   X1,X2,X3,X4;

unsigned char alt;//数据移动定时时间
unsigned int net;//控制显示的字符
unsigned char zi=8;//显示字数
unsigned int zong;//总字符  (所有的字数+1)*32   字数指的是汉字,字母、数字两个算一个数字
unsigned char code tab[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*先送两个空字节用于缓冲*/


0x00,0x01,0x02,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x43,0xC0,0x7E,0x00,0x42,0x00,
0x43,0xFC,0x42,0x02,0x42,0x02,0x42,0x02,0x02,0x02,0x02,0x0E,0x00,0x00,0x00,0x00,/*"无",0*/

0x00,0x80,0x07,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00,0x04,0x01,0x08,0x06,0x08,0x38,
0xFF,0xC0,0x08,0x00,0x0F,0xFC,0x88,0x02,0x68,0x02,0x08,0x02,0x08,0x1E,0x00,0x00,/*"忧",1*/

0x00,0x08,0x00,0x08,0x1F,0xC8,0x92,0x48,0x52,0x48,0x32,0x48,0x12,0x48,0x1F,0xFF,
0x12,0x48,0x32,0x48,0x52,0x48,0x92,0x48,0x1F,0xC8,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",2*/

0x00,0x00,0x00,0x01,0x00,0x06,0x7F,0xF8,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,
0x04,0x40,0xFC,0x40,0x04,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,/*"片",3*/

0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0xC1,0x00,0x06,0x7F,0xF8,
0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,/*"机",4*/

0x00,0x00,0x00,0x00,0x00,0x6C,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*":",5*/

0x08,0x04,0x0F,0xFC,0x00,0x24,0x00,0x60,0x01,0x94,0x01,0x0C,0x01,0x04,0x00,0x00,/*"k",6*/

0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,/*"i",7*/

0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x09,0x08,0x0F,0xFC,0x00,0x04,/*"d",8*/

0x01,0x01,0x01,0xFF,0x00,0x89,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00,/*"p",9*/

0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x24,0x01,0x48,0x00,0xFC,0x00,0x04,0x00,0x00,/*"a",10*/

0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00,/*"r",11*/


0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
unsigned char code tab1[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00,/*"r",0*/

0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x24,0x01,0x48,0x00,0xFC,0x00,0x04,0x00,0x00,/*"a",1*/

0x01,0x01,0x01,0xFF,0x00,0x89,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00,/*"p",2*/

0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x09,0x08,0x0F,0xFC,0x00,0x04,/*"d",3*/

0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,/*"i",4*/

0x08,0x04,0x0F,0xFC,0x00,0x24,0x00,0x60,0x01,0x94,0x01,0x0C,0x01,0x04,0x00,0x00,/*"k",5*/

0x00,0x00,0x00,0x00,0x00,0x6C,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*":",6*/

0x08,0x20,0x08,0xC0,0x0B,0x00,0xFF,0xFF,0x09,0x00,0x08,0xC1,0x00,0x06,0x7F,0xF8,
0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFC,0x00,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,/*"机",7*/

0x00,0x00,0x00,0x01,0x00,0x06,0x7F,0xF8,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,
0x04,0x40,0xFC,0x40,0x04,0x7F,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,/*"片",8*/

0x00,0x08,0x00,0x08,0x1F,0xC8,0x92,0x48,0x52,0x48,0x32,0x48,0x12,0x48,0x1F,0xFF,
0x12,0x48,0x32,0x48,0x52,0x48,0x92,0x48,0x1F,0xC8,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",9*/

0x00,0x80,0x07,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00,0x04,0x01,0x08,0x06,0x08,0x38,
0xFF,0xC0,0x08,0x00,0x0F,0xFC,0x88,0x02,0x68,0x02,0x08,0x02,0x08,0x1E,0x00,0x00,/*"忧",10*/

0x00,0x01,0x02,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x43,0xC0,0x7E,0x00,0x42,0x00,
0x43,0xFC,0x42,0x02,0x42,0x02,0x42,0x02,0x02,0x02,0x02,0x0E,0x00,0x00,0x00,0x00,/*"无",11*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void delay(unsigned int z)//延时子函数
{
   unsigned char x;
   for(;z>0;z--)
   for(x=110;x>0;x--);
}

void main() //主函数

{

char i,aa;

TMOD=0x01;//定时器0  模式1  16位定时模式

TH0=(65536-10000)/256;//定时10.000ms

TL0=(65536-10000)%256;

ET0=1;//使能定时器0

EA=1;//开启总中断

TR0=1;//开始计数

zong=(zi+1)*32;

while(1) //无限循环

{

if(s1==0)//检测按键

{

delay(30);//延时消除按键抖动

if(s1==0)

{

TR0=~TR0;//按下暂停  暂按继续

while(s1==0);//等待按键松手

}

}

if(s2==0)//检测按键

{

delay(30);//延时消除按键抖动

if(s2==0)

{

fx=~fx;//方向取反

aa=0;

if(fx==0)net=0;//正向移动

if(fx==1)net=zong;//反向移动

while(s2==0);//等待按键松手

}

}

for(i=0;i<16;i++)//循环移位

{   

//两片138组成的4-16线译码器

P2=i;//列数据驱动,138的驱动端口

if(fx==0)writedata(tab[net+aa],tab[net+aa+1]);//写入需要显示的数据

if(fx==1)writedata(tab1[net+aa],tab1[net+aa+1]);//写入需要显示的数据

delay(3);//延时

writedata(0,0);//清屏

aa+=2;//数据加 实现扫描

if(aa>30)aa=0;//循环16次 清零

}

}

}

五、实验现象

演示视频:

http://www.dtcms.com/a/353987.html

相关文章:

  • 全域管控,一触可达:复合机器人远程监控方案重塑智能制造
  • Boosting(提升法)详解
  • Spring Boot + Dubbo 实战教程:打造高性能微服务架构
  • 深度学习12 Reinforcement Learning with Human Feedback
  • openwrt ubus 深入分析
  • C# 字符和字符串
  • 怎么解决大模型幻觉问题
  • 【完全二叉树】 P10990 [蓝桥杯 2023 国 Python A] 彩色二叉树|普及+
  • 车辆识别码vin构成
  • python // 和%区别
  • K8S EFK日志收集全流程实战
  • MySQL数据库精研之旅第十二期:探秘视图,数据库中的 “虚拟表” 魔法
  • stm32 hal库spi dma_tx_rx的几个关键函数执行过程jlink trace分析
  • Rust 登堂 之 迭代器Iterator(三)
  • 如何构建灵活、可控、可扩展的多云网络底座
  • 【高级机器学习】1. Hypothesis 与 Objective Function
  • solidworks2024保姆级安装教程及解锁版安装包下载!
  • 【编号478】美国土地利用数据本土、阿拉斯加、夏威夷岛土地利用数据
  • 蛋白质残基 - 残基距离计算:单蛋白工具与批量处理方案
  • 【目标检测】论文阅读5
  • 记录一次内存问题排查
  • 比赛竞猜算法设计思路
  • MySQL InnoDB vs MyISAM
  • 【系统分析师】高分论文:论信息系统开发方法及应用
  • 前端漏洞(下)- 会话固定漏洞
  • Databend 亮相 DTCC 2025:存算分离架构引领湖仓一体化
  • 漫谈《数字图像处理》之霍夫变换
  • 一文辨析编程语言的强类型与弱类型、静态类型与动态类型
  • 【Java知识】Java线程相关对象全面解析与最佳实践
  • 吴恩达机器学习(一)