標(biāo)題:
清翔單片機(jī)8x8點(diǎn)陣哪里有資源?不知道引腳如何連接的
[打印本頁(yè)]
作者:
lxd0cat
時(shí)間:
2018-9-14 12:21
標(biāo)題:
清翔單片機(jī)8x8點(diǎn)陣哪里有資源?不知道引腳如何連接的
如題,網(wǎng)上也搜了很多,但都不能很好實(shí)現(xiàn),而且不止引腳如何接的,所以也不知道咋改。
哪位仁兄資源,請(qǐng)給個(gè)鏈接。謝謝了,好人一生平安。
作者:
609763691
時(shí)間:
2018-9-14 13:49
#include <STC15F2K60S2.H>
void Delay_ms(unsigned int ms);
void main()
{
unsigned char i=0,j=0;
HC595_Init();
while(1)
{
HC595_SendWord((~0x70),0x55); //dat1低電平點(diǎn)亮(豎),dat2高電平點(diǎn)亮(橫)
Delay_ms(100);
}
} void HC595_SendWord(unsigned char dat1,unsigned char dat2)
{
unsigned char i=0;
unsigned int temp=0;
temp=dat1;
temp=temp<<8|dat2;
for(i=0;i<16;i++)
{
HC595_CLK=0;
if((temp&0x8000)==0x8000)
{
HC595_DI=1;
}
else
{
HC595_DI=0;
}
HC595_CLK=1;
temp<<=1;
}
HC595_LE=1;
_nop_();
_nop_();
HC595_LE=0;
}
void HC595_Init()
{
//等待HC595上電穩(wěn)定
Delay_ms(10);
//初始化P41,P42,P45口為準(zhǔn)雙向口
P4M1 &=~( (1<<1) | (1<<2));
P4M0 &=~( (1<<1) | (1<<2));
//初始化P37口為準(zhǔn)雙向口
P3M1 &=~(1<<7);
P3M0 &=~(1<<7);
HC595_CLK=0;
HC595_DI=0;
HC595_LE=1;
HC595_SendWord(0xff,0x00);
}
void Delay_ms(unsigned int ms)
{
unsigned int i;
while( (ms--) != 0)
{
for(i = 0; i < 600; i++);
}
}
這是我自己寫(xiě)的,其實(shí)就是驅(qū)動(dòng)兩個(gè)hc595芯片,你自己先看看這個(gè)程序吧,最好還是自己消化了會(huì)自己編寫(xiě)和改成自己想要的,還有就是我這個(gè)程序只能顯示固定的,我還沒(méi)有寫(xiě)能夠跳變畫(huà)面的那種,剩下的你自己寫(xiě)吧,
作者:
angmall
時(shí)間:
2018-9-14 21:01
采用2片74HC595驅(qū)動(dòng),只需接單片機(jī)3路IO口,不會(huì)浪費(fèi)IO使用率,根據(jù)點(diǎn)陣管動(dòng)態(tài)掃描原理進(jìn)行顯示
兼容LCD1602液晶顯示屏接口,直接插在開(kāi)發(fā)板上就可以使用。
/*
8×8點(diǎn)陣屏循環(huán)顯示 “電”“子”“1”“2”“3”。
*/
#include <reg52.h>
#include <intrins.h> //循環(huán)右移頭文件
sbit DIO = P3^4; //串行數(shù)據(jù)口
sbit S_CLK = P3^5;//移位寄存器時(shí)鐘
sbit R_CLK = P3^6;//輸出鎖存器時(shí)鐘
/*點(diǎn)陣字形碼*/
unsigned char code tabel[5][8]={
0xE0,0xEE,0x01,0x6D,0x01,0x6D,0x01,0xEF,//點(diǎn)
0xE7,0xF7,0xF7,0xF7,0x80,0xF7,0xFB,0xC3,//子
0x81,0xE7,0xE7,0xE7,0xE7,0xE7,0xC7,0xE7,//1
0x81,0x81,0xCF,0xE7,0xF3,0xB9,0x81,0xC3,//2
0xC3,0xB9,0xF9,0xFB,0xE7,0xFB,0xB9,0xC3,//3
};
/*595發(fā)送一字節(jié)*/
void Send_Byte(unsigned char dat)
{
unsigned char i; //循環(huán)次數(shù)變量
S_CLK = 0;//拉低移位寄存器時(shí)鐘
R_CLK = 0;//拉低輸出鎖存器時(shí)鐘
for(i=0; i<8; i++) //循環(huán)8次
{
if(dat & 0x01)//發(fā)送1
DIO = 1;
else //發(fā)送0
DIO = 0;
dat >>= 1;//數(shù)據(jù)右移
S_CLK = 1;//拉高移位寄存器時(shí)鐘,數(shù)據(jù)移位
S_CLK = 0;//拉低移位寄存器時(shí)鐘
}
}
void main()
{
unsigned char j, k, ROW;//j發(fā)送8列和8行字形碼,k字符數(shù)量,ROW行值
unsigned int z; //動(dòng)態(tài)掃描延時(shí)變量
while(1)
{
for(k=0; k<5; k++)//k 需要顯示的字符數(shù)量
{
for(z=0; z<500; z++)//z刷新次數(shù)
{
ROW = 0x80;//行選初值
for(j=0; j<8; j++) //循環(huán)8次發(fā)送行和列值
{
Send_Byte(tabel[k][j]);//發(fā)送列選值
Send_Byte(ROW); //發(fā)送行選值
R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出
R_CLK = 0; //拉低輸出鎖存器
ROW = _cror_(ROW, 1);//右移,選擇下一行
}
}
}
}
}
復(fù)制代碼
作者:
xzf586
時(shí)間:
2018-9-15 10:45
是萬(wàn)用表量一下不就知道了?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1