新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機+74hc595鎖存器驅(qū)動一個靜態(tài)數(shù)碼管

51單片機+74hc595鎖存器驅(qū)動一個靜態(tài)數(shù)碼管

作者: 時間:2016-11-19 來源:網(wǎng)絡 收藏

本文引用地址:http://butianyuan.cn/article/201611/318159.htm

實驗開發(fā)板HC6800 v2.8 (淘寶可以查到)

將JP2 與JP3相連即可,注意排線要反接

代碼如下:

/*
* 標題: 試驗數(shù)碼管上如何顯示數(shù)字(共陽極) *
* *
* 連接方法:P2 與P3 用8PIN排線連接 *
* *
* *
/
#include
#include
void delay(unsigned int i); //函數(shù)聲名
// 此表為 LED 的字模,0~F
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
sbit lock=P3^5;//12,storage register clock input
sbit clk=P3^6;//11,shift register clock input
sbit dat=P3^4;//14,serial data input
/*將顯示數(shù)據(jù)串行發(fā)送到74hc595*/
void sendTo(unsigned char k)
{
unsigned char i;
for(i=0;i<8;i++)
{
dat=k&0x01;
clk=0;//移位寄存器移位
_nop_();
_nop_();
clk=1;
k>>=1;//發(fā)送數(shù)據(jù)右移一位
}
}
void main()
{
unsigned int LedNumVal=0 ,C ; //定義變量
while(1)
{
if (++C>= 300)
{ LedNumVal++ ; //每隔300個掃描周期加一次
C =0; //每隔300個掃描清零
}
lock=0;
// 將字模送到14,serial data input
sendTo(LED7Code[LedNumVal%10]&0x7f);
//LED7 0x7f為小數(shù)點 共陰和共陽此處也是不一樣;
_nop_();
_nop_();
lock=1;//所存數(shù)據(jù)
delay(300); //調(diào)用延時程序
}
}
/*
* *
* 延時程序 *
* *
*/
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}



評論


技術專區(qū)

關閉