標(biāo)題:
單片機(jī)控制2個74hc595流水燈實(shí)現(xiàn)16LED流水燈程序
[打印本頁]
作者:
jjkk11
時間:
2021-4-10 19:37
標(biāo)題:
單片機(jī)控制2個74hc595流水燈實(shí)現(xiàn)16LED流水燈程序
單片機(jī)源程序如下:
/************* 本程序功能說明 **************
用STC的MCU的IO方式控制兩個74HC595驅(qū)動16個LED。
顯示效果為: 流水燈.
******************************************/
#include "reg51.h"
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
sfr AUXR = 0x8E;
//sfr P2PU = 0xFE12;
sfr P4 = 0xC0;
sfr P5 = 0xC8;
sfr P6 = 0xE8;
sfr P7 = 0xF8;
sfr P1M1 = 0x91; //PxM1.n,PxM0.n =00--->Standard, 01--->push-pull
sfr P1M0 = 0x92; // =10--->pure input, 11--->open drain
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xB1;
sfr P3M0 = 0xB2;
sfr P4M1 = 0xB3;
sfr P4M0 = 0xB4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit P30 = P3^0;
sbit P31 = P3^1;
sbit P32 = P3^2;
sbit P33 = P3^3;
sbit P34 = P3^4;
sbit P35 = P3^5;
sbit P36 = P3^6;
sbit P37 = P3^7;
sbit P40 = P4^0;
sbit P41 = P4^1;
sbit P42 = P4^2;
sbit P43 = P4^3;
sbit P44 = P4^4;
sbit P45 = P4^5;
sbit P46 = P4^6;
sbit P47 = P4^7;
sbit P50 = P5^0;
sbit P51 = P5^1;
sbit P52 = P5^2;
sbit P53 = P5^3;
sbit P54 = P5^4;
sbit P55 = P5^5;
sbit P56 = P5^6;
sbit P57 = P5^7;
sbit P_HC595_SER = P2^0; //pin 14 SER data input
sbit P_HC595_RCLK = P2^1; //pin 12 RCLk store (latch) clock
sbit P_HC595_SRCLK = P2^2; //pin 11 SRCLK Shift data clock
void Send_595(u8 dat);
void Delay500ms(); //@11.0592MHz
u8 h,k;
u16 s=0xffff;
/********************** 主函數(shù) ************************/
void main(void)
{
P0M1 = 0; P0M0 = 0; //設(shè)置為準(zhǔn)雙向口
P1M1 = 0; P1M0 = 0; //設(shè)置為準(zhǔn)雙向口
P2M1 = 0; P2M0 = 1; //設(shè)置為強(qiáng)推挽口
P3M1 = 0; P3M0 = 0; //設(shè)置為準(zhǔn)雙向口
P4M1 = 0; P4M0 = 0; //設(shè)置為準(zhǔn)雙向口
P5M1 = 0; P5M0 = 0; //設(shè)置為準(zhǔn)雙向口
P6M1 = 0; P6M0 = 0; //設(shè)置為準(zhǔn)雙向口
P7M1 = 0; P7M0 = 0; //設(shè)置為準(zhǔn)雙向口
while(1)
{
h=(s>>8)&0XFF;
k=s&0xff;
Send_595(k);
Send_595(h);
P_HC595_RCLK = 1;
_nop_();
P_HC595_RCLK = 0;
Delay500ms(); //@11.0592MHz
s>>=1;
if(s==0)
{
h=(s>>8)&0xff;
k=s&0xff;
Send_595(k);
Send_595(h);
P_HC595_RCLK = 1;
_nop_();
P_HC595_RCLK = 0;
Delay500ms(); //@11.0592MHz
s=0xffff;
}
}
}
void Send_595(u8 dat)
{
u8 i;
for(i=0; i<8; i++)
{
dat >>= 1;
P_HC595_SER = CY;
P_HC595_SRCLK = 1;
P_HC595_SRCLK = 0;
}
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
復(fù)制代碼
51hei.png
(8.94 KB, 下載次數(shù): 59)
下載附件
2021-4-10 23:18 上傳
hex文件51hei提供下載:
用STC的MCU的IO方式控制兩個74HC595驅(qū)動16個LED (2).rar
(30.77 KB, 下載次數(shù): 39)
2021-4-10 19:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1