STC15单片机基于74HC595和TM1637的两种LED程序文档格式.docx
《STC15单片机基于74HC595和TM1637的两种LED程序文档格式.docx》由会员分享,可在线阅读,更多相关《STC15单片机基于74HC595和TM1637的两种LED程序文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
bitflag=0;
voidTimer0_config(unsignedintms);
voidmain()
{
unsignedchartmpbuf[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
P2M1&
=0xF8;
P2M0&
Timer0_config
(1);
EA=1;
while
(1)
{
if(flag)
{
flag=0;
Select_Position(tmpbuf);
}
}
}
voidDisplay_byte(unsignedchardat)
unsignedcharmask;
for(mask=0x80;
mask!
=0;
mask>
>
=1)
{
if((dat&
mask)==0)
DIO=0;
else
DIO=1;
SCLK=0;
SCLK=1;
voidSelect_Position(unsignedchar*buf)
{
staticunsignedcharj=0;
staticunsignedchari=0;
//for(j=0;
j<
4;
j++)
//{
rec[j]=*(buf[i]+led_code);
Display_byte(rec[j]);
Display_byte(led_num[j]);
i++;
j++;
i=i&
0x0F;
j=j&
0x03;
RCLK=0;
RCLK=1;
//}
//voidSelect_Position(unsignedchar*buf)
//{
////staticunsignedchark;
////staticunsignedchari;
//unsignedcharj;
//unsignedcharrec;
//rec=*(buf[j]+led_code);
//Display_byte(rec);
//Display_byte(led_num[j]);
////i=i&
////k=k&
//
//RCLK=0;
//RCLK=1;
//}
//}
voidTimer0_config(unsignedintms)
unsignedlongtmp;
tmp=11059200/12;
tmp=(tmp*ms)/1000;
tmp=65536-tmp;
TH0=(unsignedchar)(tmp>
8);
TL0=(unsignedchar)tmp;
TMOD&
=0xF0;
AUXR&
=0x7F;
ET0=1;
TR0=1;
voidTimer0_interrupt()interrupt1
unsignedinttmr10ms;
tmr10ms++;
if(tmr10ms>
=500)
tmr10ms=0;
flag=1;
/******************************************************/
//第二种(TM1637):
//TM1637程序:
#include"
Library.h"
voidDelay_us()
_nop_();
_nop_();
voidStart()
CLK=1;
DIO=1;
Delay_us();
DIO=0;
CLK=0;
voidStop()
bitWrite_btye(unsignedchardat)
bitack;
for(mask=0x01;
mask<
<
CLK=0;
if(dat&
mask)
Delay_us();
ack=DIO;
Delay_us();
CLK=0;
return~ack;
voidWrite_dat(unsignedchar*dat,unsignedcharlen)
do{
Start();
ack=Write_btye(0x40);
}while(!
ack);
Write_btye(0xC0);
while(len>
0)
Write_btye(*dat++);
len--;
}
Start();
Write_btye(0x8F);
//Ï
Ô
Ê
¾
¿
ª
Stop();
//main.c
unsignedcharcodecodenum[16]={
0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,
0x7F,0x67,0x77,0x7C,
0x39,0x5E,0x79,0x71
//unsignedcharcodebuf[4]={0x39,0x5E,0x79,0x71};
unsignedchari=0;
=0xFC;
P2M0&
Write_dat(codenum+i,4);
i++;
if(i>
=13)
{
i=0;
}
}
tmp=MAIN_Fosc/12;
//Library.h
#ifndef_Library_H
#define_Library_H
#defineMAIN_Fosc11059200L
sbitCLK=P2^1;
sbitDIO=P2^0;
voidWrite_dat(unsignedchar*dat,unsignedcharlen);
#endif