欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
16*64點陣左右移動程序顯示漢字 數字 英文等 帶Proteus仿真 取模軟件等
[打印本頁]
作者:
51hei社區
時間:
2016-1-14 00:34
標題:
16*64點陣左右移動程序顯示漢字 數字 英文等 帶Proteus仿真 取模軟件等
0.png
(31.81 KB, 下載次數: 168)
下載附件
2016-1-14 00:32 上傳
單片機16乘64點陣的所有制作資料打包下載(Proteus仿真 程序 取模軟件):
16X64點陣左右移動模式.rar
(1.53 MB, 下載次數: 309)
2016-1-14 00:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
先來一個視頻:
http://player.youku.com/player.php/sid/XNTgyMTAwOTQ0/v.swf
在做16*64 。或者16*16 16*32 等點陣的時候遇到一個小問題。
就是漢字是16*16的規格。但是數字和英文字符那些都是8*16的規格
程序掃描算法是按照漢字的規格掃描的。如果出現8*16的。就會亂碼
。
如果要改變掃描算法識別8*16的。那么漢字就會亂碼、
如果要同時識別漢字和數字,那么掃描算法就有點復雜。我有心無力、。
所以編寫了個小軟件,重組下數組。
具體操作請看視頻
左移
右移
小軟件
視頻比較模糊.大家將就下,把視頻錄到的文件貼上來.大家對著看就懂了
源程序預覽:
#include<reg52.h>
#include"MacroAndConst.h"
#include"delay.h"
#include"display.h"
#include"ziku.h"
extern bit fLeftFlag; //聲明外部變量
extern bit fRightFlag; //聲明外部變量
uchar scan;
uchar speed=2; //設定移動速度
uint words; //字模計數器
uchar move; //列指針
uchar line; //行指針
uchar temp;
uchar BUFF[10]; //緩存數組
sbit ST=P3^5; //595 STR
sbit SH=P3^6; //595 CLK
sbit DATA=P3^7; //595 DATAS
/**********************************************************
函數名稱:LeftflowDisplay
函數功能:左移顯示函數
入口參數:無
出口參數:無
備 注:
**********************************************************/
void LeftflowDisplay() //逐行 陰碼 逆向
{
uchar sp,y=0;
move=0;
words=0;
while(words<46*32) //
{
if(fLeftFlag==1)
{
while(move<16) //數據移位
{
if(fLeftFlag==1)
{
for(sp=0;sp<speed;sp++) //移動速度
{
if(fLeftFlag==1)
{
for(line=0;line<16;line++) //行掃描
{
loadline1(); //裝載一線點陣數據
sendline1(); //發送一線移動數據
scan=line; //顯示第line行
P2=scan;
ST=1; //鎖存為高,595鎖存信號
ST=0;
delay_10us(50); //延時500us,等待一段時間,產生視覺暫留
}
}
else
break;
}
move=move+1; //移動一步(一位)
}
else
break;
}
move=0;
words=words+32; //下一個字
}
else
break;
}
words=0;
}
/**********************************************************
函數名稱:loadline1
函數功能:裝載點陣數據 緩存
入口參數:無
出口參數:無
備 注:
**********************************************************/
void loadline1()
{
uchar s;
for(s=0;s<5;s++) //s為要顯示的字數+1(顯示4字+1=5)
{
BUFF[2*s]=zuoyi[words+ 32*s + 2*line];
BUFF[2*s+1]=zuoyi[words+1+ 32*s + 2*line];
}
}
/**********************************************************
函數名稱:sendline1
函數功能:發送點陣數據 緩存
入口參數:無
出口參數:無
備 注:
**********************************************************/
void sendline1()
{
uchar s;
uchar inc,temp,tempcol;
uchar k;
DATA=1;
if(move<8) inc=0;
else inc=1;
for(s=0+inc;s<=7+inc;s++)
{
if(move<8)
tempcol=move;
else
tempcol=move-8;
temp=(BUFF[s]>>tempcol)|(BUFF[s+1]<<(8-tempcol)); //字模左邊字節右移tempcol位,右邊字節左移8-tempcol位,2者相或
for(k=0;k<8;k++)
{
SH=0;
DATA=(bit)(temp&0x80);
temp=temp<<1;
SH=1;
}
}
}
/**********************************************************
函數名稱:RightflowDisplay
函數功能:右移顯示函數
入口參數:無
出口參數:無
備 注:
**********************************************************/
void RightflowDisplay() //流動右移 逐行 陰碼 順向
{
uchar i;
move=0;
words=0;
while(words<=46*32) //數組元素。46組,每組32個
{
if(fRightFlag==1)
{
while(move<16)// 循環16次,點亮并移動一個漢字
{
if(fRightFlag==1)
{
for(i=0;i<speed;i++)//漢字在屏幕上的停留時間(即移動速度快慢)
{
if(fRightFlag==1)
{
for(line=0;line<16;line++)//掃描16行
{
loadoneline();//裝載一線點陣數據
sendoneline();//發送一線點陣數據
P2=line;
ST= 0;
ST= 1;
delay_10us(50); //延時500us,等待一段時間,產生視覺暫留
}
}
else
break;
}
move++; //列指針遞增
}
else
break;
}
move=0;
words=words+32;// 一個漢字移動后,指向下一個漢字
}
else
break;
}
words=0;
}
/**********************************************************
函數名稱:loadoneline
函數功能:裝載點陣數據 緩存
入口參數:無
出口參數:無
備 注:
**********************************************************/
void loadoneline()
{
uchar s;
for(s=0;s<5;s++) //s為要顯示的數字+1
{
BUFF[2*s+1]=youyi[words+32*s+2*line];
BUFF[2*s]=youyi[words+1+32*s+2*line];//~
}
}
/**********************************************************
函數名稱:sendoneline
函數功能:發送點陣數據 緩存
入口參數:無
出口參數:無
備 注:
**********************************************************/
void sendoneline()
{
char s;
uchar inc,k,tempcol;
if(move<8)
inc=0;
else
inc=1;
for(s=7+inc;s>=0+inc;s--)
{
if(move<8)
tempcol=move;
else
tempcol=move-8;
temp=(BUFF[s]>>tempcol)|(BUFF[s+1]<<(8-tempcol));
for(k=0;k<8;k++)
{
SH=0;
DATA=(bit)(temp&0x01);
temp=temp>>1;
SH=1;
}
}
}
復制代碼
作者:
zzz哈哈哈
時間:
2016-4-7 16:38
樓主,感覺左移的時候字有點抖動啊,還有我換成自己的字摸后有逗號,第一遍顯示正常,第二遍就亂碼了。。求助樓主
作者:
lanyu222
時間:
2017-5-4 20:16
真的太棒了,不過有沒有總程序啊
作者:
695723413
時間:
2017-5-17 13:13
真的太棒了,不過有沒有總程序啊
作者:
hf51hei
時間:
2017-12-11 21:22
學習中,幫助大大的。謝謝
作者:
mykent
時間:
2018-2-6 19:31
好,學習有邦助
作者:
五月風暖
時間:
2018-11-30 12:00
請問這個程序完整嘛,可以直接用嗎
作者:
slaoliu
時間:
2019-1-30 07:35
下來改改測試一下,
作者:
HOU9914
時間:
2019-4-29 22:14
樓主哇,這個程序有點復雜,有沒有在一個.c里的程序呢?我這種新手看不太懂
求幫助
作者:
yaoyinzhi
時間:
2020-3-15 21:40
顯示的緩沖區的數據不能在程序時時更新,不太方便。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1