📄 untitled1.c
字号:
#include"iom8.h"
#include"intrinsics.h"
#include"stdbool.h"
#include"math.h"
#define uchar unsigned char
#define uint unsigned int
#define sec 7372800 //__delay_cycles(1*sec)
#define ms 1000 //__delay_cycles(1*ms)
#define us 1 //__delay_cycles(1*us)
//-----------------------------------------------------
uchar data_595_line_1[8]={0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA,0XAA};
uchar data_595_line_2[8]={0XFE,0XfE,0XfE,0XfE,0XfE,0XfE,0XfE,0XfE};
uchar data_595_line_3[8]={0XAC,0XAC,0XAC,0XAC,0XAC,0XAC,0XAC,0XAC};
uchar data_595_line_4[8]={0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XF0};
#define LED1_ON PORTD_Bit2 =0
#define LED1_OFF PORTD_Bit2 =1
#define HC138_EN PORTB_Bit0 =1
#define HC138_disable PORTB_Bit0 =0
#define HC138_A PORTD_Bit5
#define HC138_B PORTD_Bit6
#define HC138_C PORTD_Bit7
#define HC138_SWITCH PORTD_Bit0 //0为选择左边的138//1时选择右边的138
#define HC595_RCLK_H PORTD_Bit1=1
#define HC595_RCLK_L PORTD_Bit1=0
#define HC_595_CLK_H PORTD_Bit2=1
#define HC_595_CLK_L PORTD_Bit2=0
#define HC_595_DATA_1 PORTD_Bit3
#define HC_595_DATA_2 PORTC_Bit5
#define HC_595_DATA_3 PORTC_Bit4
#define HC_595_DATA_4 PORTB_Bit1
void data_in(unsigned char *data_HC595_in , unsigned char line)
{
uchar i=0,j=0;
HC595_RCLK_L ; //输出锁存端口为低
HC_595_CLK_L ;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
HC_595_CLK_L ;
switch(line)
{
case 1:
HC_595_DATA_1 = data_HC595_in[i]&0x01;
break;
case 2:
HC_595_DATA_2 = data_HC595_in[i]&0x01;
break;
case 3:
HC_595_DATA_3 = data_HC595_in[i]&0x01;
break;
case 4:
HC_595_DATA_4 = data_HC595_in[i]&0x01;
break;
}
HC_595_CLK_H ;
data_HC595_in[i] = data_HC595_in[i]>>1;
}
}
HC595_RCLK_H; //上升沿数据锁存
}
main(void)
{
uchar k;
DDRD =0xff;
PORTD =0xff;
DDRB =0xff;
PORTB =0xff;
DDRC =0xFF;
PORTC =0xFF;
HC138_disable;
HC138_SWITCH=0; //选择左边的138
//data_in(data_595_line_1,1);
data_in(data_595_line_4,4);
HC138_EN;
while(1){
for(k=0;k<8;k++)
{
// data_in(data_595_line_4,4);
//data_in(data_595_line_3,3);
HC138_A=0;
HC138_B=1;
HC138_C=1;
__delay_cycles(7*ms);
HC138_A=0;
HC138_B=0;
HC138_C=0;
__delay_cycles(7*ms);
HC138_A=1;
HC138_B=0;
HC138_C=0;
__delay_cycles(7*ms);
}
/*
LED1_ON;
__delay_cycles(0.5*sec);
LED1_OFF;
__delay_cycles(0.5*sec);
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -