资源简介
使用Proteus7.8实现LED点阵显示的仿真。可以显示一行四个汉字,有跑马滚动显示文字效果。可以显示多于4字的整行文字。提供仿真图,源代码。
注意,仿真时宏定义要修改一下,如下所示:
//因为仿真时延时要短些,所以仿真时设为1,实际硬件设为0
#define FANGZHEN 1
代码片段和文件信息
/*64*16点阵屏的显示点阵屏的显示*/
//因为仿真时延时要短些,所以仿真时设为1,实际硬件设为0
#define FANGZHEN 0
#if FANGZHEN==1
#include //51头文件
#else
#include “STC15W4K.h“
#endif
#include //_nop_()函数要用
#include
#include “27.h“
//显示一屏信息多少秒
//返回值: void
//参数:
//uint s: 一屏显示停留多少秒
void displayDelay(uint s)
{
uchar idata i;
while(s--)
{
#if FANGZHEN==1
i=20;
#else
i=200;
#endif
while(i--)
display();
}
}
//将汉字拷贝入缓存或显存
//返回值:void
//参数:
//uchar *buffer 将数据拷贝到哪里,可以是显示内存,也可以是其它缓存
//uchar x, x坐标,从左边起是 01234567
//uchar *p, 是要显示的汉字或ASCII码
//uchar wide 是显示字符的宽度,例如汉字是2,ASCII码是1
//uchar len 显示缓存总共能放下几个字符,比如四个汉字就是4
// 长度单元最少为4,因为一屏4个汉字
void copy_one(uchar *buff uchar xuchar *puchar wideuchar len)
{
uchar xdata rowi;
if(len<4) len=4;
//逐行拷贝 0-16行
for(row=0; row<16; row++)
{
//向显存中拷贝一个字符wide=2两个字节
//或者ASCII=1码wide=1,一个字节
for(i=0; i //拷贝的起始位置
//row*len*2是已经拷贝了几行,每行8个字节编号0-7每个汉字2字节
//+x是显示的x坐标位置0-7
//i是拷贝了几个字节,汉字两字节,ASCII一字节
buff[row*len*2+x+i]=p[row*wide+i];
}
}
//软件延时函数,在22.1184MHz时,延时2秒
//返回值:void
//参数: void
void Delay2000ms() //@22.1184MHz
{
uchar idata i j k;
_nop_();
i = 29;
j = 4;
k = 219;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//向上或向下滚动清屏
//返回值:void
//参数:bit up_down: 清屏方式
// 1:向上清屏,0:向下清屏
void clear_up_down(bit up_down)
{
uchar idata ij;
uchar idata line;
//向下清屏
//就是将显示缓存中的128个字节重新拷贝一下,
//显示缓存中的字节与显示屏的对应关系如下:
// 1 2 3 4 可显示四个汉字
//行01: [01] [23] [45] [67] 对应第一行的四块LED
//行02: [89] [1011] [1213] [1415] 对应第二行的四块LED
//...
//行16: [120121] [122123] [124125] [126127] 对应第十六行的四块LED
//要实现向下滚动的清屏,就是将所有数据向下移动一行并显示
//如果是向下滚动
if(up_down==0)
{
//有几行就移动几次,一共移动 16 次,
for(line=1; line<=16; line++)
{
for(i=15; i>0; i--)
for(j=0; j<8; j++)
DispBuffer[i*8+j]=DispBuffer[(i-1)*8+j];
//第0行全部补0
for(j=0; j<8; j++)
DispBuffer[j]=0;
display(); //显示缓存中的全部内容
}
}
else //如果是向上滚动
{
//有几行就移动几次,一共移动 16 次,
for(line=1; line<=16; line++)
{
for(i=0; i<15; i++)
for(j=0; j<8; j++)
DispBuffer[i*8+j]=DispBuffer[(i+1)*8+j];
//第16行全部补0
for(j=0; j<8; j++)
DispBuffer[15*8+j]=0;
display(); //显示缓存中的全部内容
}
}
}
//左右跑马清屏
//返回值:void
//参 数:
// bit R_L:清屏方式
// 0左滚动,1右滚动
void clear_R_L(bit R_L)
{
char xdata colrowi;
uchar xdata idelay;
if(R_L==0) //左跑马
{
//一共有8*8=64列
for(col=0; col<64; col++)
{
//共16行
for(row=0; row<16; row++)
{
//每行共8个字节 移动完这8个字节,才移动了某行的一列
for(i=0; i<8; i++)
{
if(i!=7)
{
BYTE1=DispBuffer[row*8+i]; //前一个字节
BYTE2=DispBuffer[row*8+i+1]; //它后面的一个字节
BYTE1=BYTE1<<1;
//将第二个字节的最高位填到第一个字节的末位
i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-05-04 09:02 LED灯板Proteus仿真\
目录 0 2019-05-04 09:04 LED灯板Proteus仿真\keil仿真版\
文件 28569 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\27.lst
文件 21020 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\27.m51
文件 87373 2018-08-02 10:58 LED灯板Proteus仿真\keil仿真版\27.plg
文件 57086 2019-05-04 09:04 LED灯板Proteus仿真\keil仿真版\27.uvopt
文件 13491 2018-08-02 08:13 LED灯板Proteus仿真\keil仿真版\27.uvproj
文件 57071 2019-05-04 08:52 LED灯板Proteus仿真\keil仿真版\27_uvopt.bak
文件 13485 2018-08-02 08:11 LED灯板Proteus仿真\keil仿真版\27_uvproj.bak
目录 0 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\output\
文件 20777 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\output\27
文件 7227 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\output\27.hex
文件 119 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\output\27.lnp
文件 24450 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\output\27.obj
文件 693 2019-05-04 09:04 LED灯板Proteus仿真\keil仿真版\output\27.plg
目录 0 2019-05-04 09:02 LED灯板Proteus仿真\keil仿真版\src\
文件 13087 2019-05-04 09:03 LED灯板Proteus仿真\keil仿真版\src\27.c
文件 4416 2019-05-04 08:35 LED灯板Proteus仿真\keil仿真版\src\27.h
文件 12803 2014-12-08 23:28 LED灯板Proteus仿真\keil仿真版\src\STC15W4K.H
目录 0 2019-05-04 09:03 LED灯板Proteus仿真\proteus4\
文件 175370 2019-05-04 09:03 LED灯板Proteus仿真\proteus4\26b.DSN
文件 1221 2019-05-04 09:03 LED灯板Proteus仿真\proteus4\26b.PWI
文件 53442 2018-07-30 23:23 LED灯板Proteus仿真\proteus4\ISIS.dmp
文件 175370 2019-05-04 08:52 LED灯板Proteus仿真\proteus4\Last Loaded 26b.DBK
文件 23 2019-05-04 08:56 LED灯板Proteus仿真\readme.txt
- 上一篇:淘宝天猫秒杀JS源码
- 下一篇:2020等级测评题集.rar
相关资源
- c51的proteus仿真第2版[张齐][电子课件
- 计算机组成原理proteus仿真模型机
- 230个Proteus仿真原理图
- 微机原理抢答器(双数码管)课程设
- proteus集锦
- proteus8.9官方仿真库
- Proteus温度控制课程设计
- 给力的PROTEUS
- proteus仿真实例56706
- Proteus集锦,包括电路图、仿真程序,
- 80C51proteus仿真.rar
- proteusCPU仿真8位模型机实验报告.docx
- proteus8.x DSN文件例程
- 基于STM32的proteus仿真——扫地机器人
- LED点阵广告牌课程设计C51单片机含报
- keil与proteus联调插件
- proteus最全元件库
- Proteus8.0 使用教程
- proteus最新元件库
- 045 密码锁 51单片机 proteus仿真 电子密
- 郭天祥TX-1C单片机Proteus仿真版.
- 14个 MSP430 Proteus 仿真(带源码)
- ARM7入门指导包括31个学习 Proteus仿真及
- gps模块仿真52单片机+proteus模拟
- STM32-LCD1602显示proteus仿真实验
- 德飞莱 16x16 LED点阵资料
- MCS-51 单片机100个汇编
- 51黑论坛_基于单片机设计的数字电子
- Proteus仿真stm32串口proteus工程+keil工程
- 基于单片机的Led点阵广告牌设计
评论
共有 条评论