电子常识
用CD4094来驱动数码管可以解放更多的I/O口,同时也能提高数码管的驱动电流。只需要三个I/O就能驱动多位数码管。
我这里用的是四位数码管,里面包含了共阴极数码管的驱动和共阳极数码管的驱动,让初学者更容易上手。
下图所示的是共阴极的四位数码管
#include 《STC_NEW_8051.h》
#include 《intrins.h》
sbit STR = P1^2;//定义CD4094各端口;
sbit DATA = P1^4;
sbit CLK = P1^3;
unsigned code
LED_VALUE[]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84,0xff,0xb8}; //0 1 2 3 4 5 6 7 8 9 10 f
void led_delay_20us(void)
{
unsigned char i;
for(i=0;i《2;i++)
_nop_();
}
void Out_4094(unsigned char data1) //写CD4094子函数;
{
unsigned char i;
//定义子函数; STR=0;
//保持然来的状态不变;
if(data1》11)
data1=10;
data1=LED_VALUE[data1];
全部0条评论
快来发表一下你的评论吧 !