欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
16x64-M2點陣屏完整資料包(含單片機源碼與電路)
[打印本頁]
作者:
深夜小怪俠
時間:
2018-4-26 17:28
標題:
16x64-M2點陣屏完整資料包(含單片機源碼與電路)
16*64點陣完整資料包
電路原理圖如下:
0.jpg
(85.31 KB, 下載次數: 41)
下載附件
2018-4-27 01:29 上傳
注意事項:
1、提供的電源要插在擴展板的電源接口
2、下載程序用USB線通過stc-isp軟件下載程序
3、提供2個測試程序,不做其他技術支持
4、由于版權問題,keil編程軟件現在不提供,請自己百度下載,抱歉
5、發貨收到的貨,我們內置了程序,直接插上電源會有現象,一般燒寫的是全亮的現象,請記住線是怎么接的,以免回頭拆了忘記了
0.jpg
(40.39 KB, 下載次數: 36)
下載附件
2018-4-27 01:27 上傳
單片機源程序如下:
/*-----------------------------------------------
名稱:IO口高低電平控制
修改:無
內容:點亮P1口的1個LED燈閃爍
該程序是單片機學習中最簡單最基礎的,
通過程序了解如何控制端口的高低電平
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,
//頭文件包含特殊功能寄存器的定義
sfr AUXR = 0x8e;
sfr P3M1=0xB1;
sfr P3M0=0xB2;
sfr P1M1=0x91;
sfr P1M0=0x92;
sbit KEY = P3^2;
sbit T_STR = P3^7; //鎖存引腳,一般標識位STR
sbit T_IO = P1^4; //數據引腳,屏上標識R1或者G1
sbit T_CLK = P3^6; //時鐘引腳,標識位CLK
sbit T_OE = P3^5;
unsigned char MoveBitNum,MoveBitNumtemp,IncNum;//移動位數,臨時移動位數,大于一個字節增加字節數
unsigned int HzNum;//漢字個數
unsigned char buff[10];
/*-----------------------------------------------
16x16漢字取模數據
------------------------------------------------*/
unsigned char code hztest[]= //取模選擇字節倒序 ,正序得出的字是反的,可以在軟件中設置自動倒敘
{
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,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,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,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, //前面一屏大小的空字符,不顯示,這里根據屏的大小修改,這個是4個漢字屏
//所以寫入4個漢字
…………
…………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
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,
};
/*-----------------------------------------------
向595寫入一個字節
------------------------------------------------*/
void InputByte(unsigned char dat) //寫一個字節
{
unsigned char i;
for(i=0;i<8;i++)
{
T_IO=!(dat&0x01);
dat>>=1;
T_CLK=0;
T_CLK=1;
}
}
/*-----------------------------------------------
延時程序
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
/*------------------------------------------------
主函數
------------------------------------------------*/
void main (void)
{
unsigned char count;//16行掃描數據,范圍0-15
unsigned int i, j;
unsigned char temp;
P3M0=0xff;//推挽
P1M0=0xff;
P3M1=0;
P1M1=0;
AUXR |= 0x80; //1T
//AUXR &= 0x7f; //12T
while (1) //主循環
{
i++;
if(i==100)//更改流動速度,1T單片機和12T單片機速度大約5-8倍,注意更改參數
{
i=0;
MoveBitNum++;
if(MoveBitNum==16)//每次移動完一個漢字大小后循環
{
MoveBitNum=0;
HzNum+=32; //調用下一個漢字
if(HzNum>=800)//需要顯示的漢字個數乘以32,包括前面的一屏空字符的個數,后面清屏的空字符不包含在內,這里是(漢字個數+4)x32
HzNum=0; //完全顯示完后循環調用
}
}
Delay(1);//控制掃描頻率
T_OE =0;
for(j=0;j<5;j++) //取每個漢字的前2個字節,4個漢字組成一行,數據傳輸完成后鎖存輸出即可,這里需要多取出一個漢字作為緩沖
{ //原來j=4,現在j=5.
buff[2*j]=hztest[HzNum+j*32+count*2]; //每次移動完一個漢字后,選擇下一個漢字
buff[2*j+1]=hztest[HzNum+j*32+count*2+1];
}
if(MoveBitNum<8) // 判讀移動距離是大于一個字節還是小于一個字節,因為一個字節左移右移最大只能8位
{ IncNum=0; MoveBitNumtemp=MoveBitNum; }
else
{ IncNum=1; MoveBitNumtemp=MoveBitNum-8;}//大于8就減去8得到的數值還是小于8
T_STR=0; //鎖存無效
for(j=0;j<8;j++) //按bit的方式移動緩沖區的內容,然后輸出到595,即取出的數值每個字節左移一定的位數,
{ //后面左移出的數據整合到前面的字節中,保持數據的連續性
temp=(buff[j+IncNum]>>MoveBitNumtemp)|(buff[j+1+IncNum]<<(8-MoveBitNumtemp));//這句比較重要,需要自行拿出2個字節的數據模擬分析
InputByte(temp);//輸出到595
}//8個字節傳輸完鎖存輸出
P1=count;//用P1口的前4位控制16行,屏內部通過4-16譯碼器工作,循環掃描16行
T_STR=1; //鎖存有效,此時一行的數據顯示到屏上
T_OE =1;
count++;
if(count==16)
count=0;
}
}
復制代碼
所有資料51hei提供下載:
16x64-M2點陣屏資料.rar
(1.02 MB, 下載次數: 94)
2018-4-27 01:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
wzyfang
時間:
2018-5-10 15:50
用一下 課設需要 謝謝樓主
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1