欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機16*64的點陣屏程序 為什么滾動顯示的時候會有重影 求幫助
[打印本頁]
作者:
835750102
時間:
2021-4-13 06:12
標題:
單片機16*64的點陣屏程序 為什么滾動顯示的時候會有重影 求幫助
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code num[4][32]={ {0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,0xFD,0xFF,0xC0,0x03,0xDB,0xDB,0xDD,0xBB,0xD0,0x0B,0xDE,0xFB,0xC0, 0x03,0xDE,0xFB,0xDE,0xFB,0xDE,0xEB,0xDE,0xF7,0xFF,0xFF},/*"南",0*/
{0xFD,0xFF,0xFE,0xF7,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xFE,0xFF,0xF6, 0xCF,0xE6,0xE7,0xCE,0xF3,0xBE,0xF7,0xFA,0xFF,0xFD,0xFF},/*"京",1*/
{0xFF,0xFF,0xC0,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE, 0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF},/*"工",2*/
{0xF2,0x07,0x8E,0xF7,0xEE,0xF7,0xEE,0xF7,0x02,0xF7,0xEE,0x07,0xCF,0xFF,0xC4,0x03,0xAB,0xBF,0xAF,0xBF,0x6C, 0x03,0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xE8,0x01,0xEF,0xFF}/*"程",3*/
};
uchar idatanum_temp[16][8]; //數據緩存,用于移位
uchar b[8]; //16*16點陣,每次發送1個字節。用b[8]保存
int n1=0;
uchar zuoyou=0;
uchar hanzi;
sbit EN=P1^0; //74hc154的使能端
sbit A_R=P2^0; //A B C D每位數據對應于74hc154的4個數據口
sbit B_R=P2^1;
sbit C_R=P2^2;
sbit D_R=P2^3;
sbit RST_C=P1^1; //74hc595的復位口
sbit DATA_C=P3^2; //串行數據口
sbit SRC_C=P3^3; //74hc595的寄存器時鐘線
sbit SLC_C=P3^4; //74hc595的鎖存器的時鐘線
/*************************************
函數功能:延時程序
**************************************/
void delay(int i)
{
int a;
for(a=0;a<i;a++);
}
/**************************************************************
函數功能: 595在SLC上升沿的時候并行輸出到寄存器下的8位數據
入口參數:無
返回值 :無
**************************************************************/
void SLC_595()
{
SLC_C=0;
SLC_C=1;
SLC_C=0;
}
/**************************************************************
函數功能:往num_temp[16][8]暫存器下存儲數據 16對應著16個字節
*************************************************************/
void hanziku()
{
int i,j=0,k;
for(i=0;i<16;i++){
b[0]=num[0][j];b[2]=num[1][j];b[4]=num[2][j];b[6]=num[3][j];
j++;
b[1]=num[0][j];b[3]=num[1][j];b[5]=num[2][j];b[7]=num[3][j];
j++;
for(k=7;k>=0;k--){
num_temp[i][k]=b[k]; [/i][i]
}
}
}
/*******************************************************************
函數功能: 595輸出列向的數據64個(8位為一字節,那就是8字節的數據)
入口參數: 無
返回值 :無
*******************************************************************/
//右移
void column_zuoyi(int n)
{
int i,j,e=0,f;
uchar a1,b1;
for(i=7;i>=0;i--){
f=e;
e=num_temp[n][i]&0x80;[/i][i]
num_temp[n][i]<<=1;[/i][i]
if(f){
num_temp[n][i]=num_temp[n][i]+0x01;[/i][/i][i][i]
}
b1=num_temp[n][i];[/i][i]
for(j=0;j<8;j++){
a1=0x01;
SRC_C=0;
DATA_C=b1&a1;
b1>>=1;
SRC_C=1;
}
}
}
//左移
void column_youyi(int n)
{
int i,j,e=0,f;
uchar a1,b1;
for(i=7;i>=0;i--){
if(i!=0)
{
f=num_temp[n][i-1]&0x01;
}
else
{
f=0;
}
num_temp[n][i]>>=1;[/i][i]
if(f)
{
num_temp[n][i]=num_temp[n][i]+0x80;[/i][/i][i][i]
}
b1=num_temp[n][i];[/i][i]
for(j=0;j<8;j++){
a1=0x01;
SRC_C=0;
DATA_C=b1&a1;
b1>>=1;
SRC_C=1;
}
}
}
//靜止
void column_stop(int n)
{
int i,j;
uchar a1,b1;
for(i=7;i>=0;i--){
b1=num_temp[n][i];[/i][i]
for(j=0;j<8;j++){
a1=0x01;
SRC_C=0;
DATA_C=b1&a1;
b1>>=1;
SRC_C=1;
}
}
}
/**********************************************
函數功能:行掃描程序,16次為1個周期,利用154的譯碼器
入口參數:無
返回值: 無
***********************************************/
void column_16()
{
int i,j=0;
char temp=0x00;
//這里輸入行數據en打開
n1++;
//對應16行數據
for(i=0;i<16;i++)
{
switch(zuoyou)
{
case 0:
if(hanzi==0)
{
hanziku();
}
hanzi++;
column_stop(i);
break;
case 1:
column_zuoyi(i);
hanzi=0;
break;
case 2:
if(hanzi==0)
{
hanziku();
}
hanzi++;
column_stop(i);
break;
case 3:
column_youyi(i);
hanzi=0;
break;
}
if(n1==70)
{
n1=0;
zuoyou++;
if(zuoyou==4)
{
zuoyou=0;
}
}
EN=0;
//每一行的數據
P2=temp++; //P2從0000開始到1111
SLC_595();
}
}
int main()
{
int i=0;
EN=1; //154使能端關上
SRC_C=0; //595初始化
SLC_C=0;
hanziku(); //初始化漢字庫
while(1){
column_16();
delay(5);
EN=1;
}
}
復制代碼
作者:
xianfajushi
時間:
2021-4-13 08:16
需要消隱處理,同數碼管需要消隱一樣道理。
作者:
人人學會單片機
時間:
2021-4-13 09:16
數據發送到595后,先關閉ABCD,然后再讓595輸出數據到點陣LED。其實單獨用595也可以驅動,可以參考我的貼子
作者:
藍色彈珠
時間:
2021-4-13 09:30
在顯示下一次數據前,把數據口清空
作者:
835750102
時間:
2021-4-13 15:58
人人學會單片機 發表于 2021-4-13 09:16
數據發送到595后,先關閉ABCD,然后再讓595輸出數據到點陣LED。其實單獨用595也可以驅動,可以參考我的貼子
大佬 參考你哪個帖子
作者:
835750102
時間:
2021-4-13 17:32
具體應該怎么改代碼 求幫助
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1