微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机+74hc595锁存器驱动一个静态数码管

51单片机+74hc595锁存器驱动一个静态数码管

时间:11-19 来源:互联网 点击:

实验开发板HC6800 v2.8 (淘宝可以查到)

将JP2 与JP3相连即可,注意排线要反接

代码如下:

/*

* 标题: 试验数码管上如何显示数字(共阳极) *

* *

* 连接方法:P2 与P3 用8PIN排线连接 *

* *

* *

/

#include

#include

void delay(unsigned int i); //函数声名

// 此表为 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

/*将显示数据串行发送到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;//发送数据右移一位

}

}

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为小数点 共阴和共阳此处也是不一样;

_nop_();

_nop_();

lock=1;//所存数据

delay(300); //调用延时程序

}

}

/*

* *

* 延时程序 *

* *

*/

void delay(unsigned int i)

{

char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--);

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top