手机版

led点阵书写屏程序(7)

发布时间:2021-06-07   来源:未知    
字号:

sbit SER_595=P2^7;



void shu_ma_g()
{
digital_show(LED_ROW,LED_LINE);
}


void digital_show(uchar row,uchar line)
{
uchar one;
one=line%10;
input(one);
_nop_();_nop_();
one=(line-one)/10;
input(one);
_nop_();_nop_();

one=row%10;
input(one);
_nop_();_nop_();
one=(row-one)/10;
input(one);
_nop_();_nop_();

output();
}

//将移位寄存器内的数据锁存到输出寄存器并显示
void output()
{
RCLK_595=0;
_nop_();_nop_();
RCLK_595=1;
_nop_();_nop_();
RCLK_595=0;
}

//;*****移位寄存器接收一个字节(如3FH)数据子程序
void input(uchar word)
{
uchar i;
word=~word; //共阳,先取反
for(i=0;i<8;i++)
{
word=_cror_(word,1);
SER_595=CY;
SRCLK_595=0;
_nop_();_nop_();
SRCLK_595=1;
}
SER_595=word;
}

////////////////////////////////////END///////////////////////////////////////////////////////////////////////////
////////////////////////////////////文件 display.c/////////////////////////////////////////////////////////////////////////

#include"myself.h"
#include<reg52.h>
#include<intrins.h>

void dis_play(uchar show_obj[32][4])
{
uchar row,line,temp_row,templine;

for(row=0;row<32;row++)
{OUT_EN=1; //锁止输出
temp_row=P2&0XE0; //保存P2高三位数据,低五位置零
P2=temp_row|row; //P2口低五位输出行选数据,高三位保持不变
for(line=0;line<4;line++)
{
templine=0X08; //p1.3=1,p1.4,p1.5,p1.6=0 只打开第一个锁存器的锁存使能,P1.3接第一个锁存器
//0X08=0000 1000B
P1=P1&0X87; //P1&10000111
P1=P1|_crol_(templine,line); //保存了P1的0、1、2、7位,对3/4/5/6进行移位。
P0=show_obj[row][line]; //输出八位数据并锁存
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();

//延时500ns,让数据能顺利进入74HC573
}
OUT_EN=0; //输出使能
delay_us(10*men_lig*li_level); //1MS左右的延时,row循环执行32次,即整个显示函数占时
OUT_EN=1; //30MS左右,而题目要求每秒钟至少扫描20次即平均分下来
delay_us(10*men_lig*(10-li_level)); //每扫描显示一次最多用时50MS
} //**************************************延时,level调节占空比,即屏幕亮度
OUT_EN=0; //锁止输出
}

////////////////////////////////////END///////////////////////////////////////////////////////////////////////////



////////////////////////////////////多字连写.c///////////////////////////////////////////////////////////

#include"myself.h"
#include<reg52.h>
#include<intrins.h>
;



void fourwords()
{
uchar count;

for(count=0;count<4;count++)
{


do{ //要是“确定”-----写下一个字、“esc”----退出多字连写模式,这两个没按下,

led点阵书写屏程序(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)