74LS164驱动一位共阴数码管(stm32f1)

74LS164功能:串行输入并行输出,说人话就是:假设你有8个苹果(分别代表数码管的a,b,c,d,e,f,g,dp),你把他们一个一个的包装好放进纸箱里(数据一个一个写入,串行),然后把纸箱打包发给别人(一次性输出,并行)。74LS164的管脚图和真值表
一位共阴/共阳数码管
下边是主程序代码和几个宏定义

#define Data    PAout(0)//74Ls164——(1)  
#define Click   PAout(1)//74Ls164——(8) 
#define Clear   PAout(2)//74Ls164——(9) 

//                                                             dp                      g                        f                        e                        d                        c                        b                        a      
#define show_0       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_1       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;delay_ms(1000);}
#define show_2       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_3       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_4       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;delay_ms(1000);}
#define show_5       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_6       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_7       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_8       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_9       {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;Click=0;  Data=1;Click=1;delay_ms(1000);}
#define show_dp      {Clear=0;Click=0;delay_ms(20);Clear=1;  Data=1;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;Click=0;  Data=0;Click=1;delay_ms(1000);}

#define show_loop  {show_0;show_1;show_2;show_3;show_4;show_5;show_6;show_7;show_8;show_9;show_dp;}

int main(void)
{	 
	delay_init();	    	     //延时函数初始化	  
    LED_Init_1();               //数码管引脚初始化
  while(1)
  {
    show_loop;
    //运行结果:依次显示0,1,2,3,4,5,6,7,8,9,“ . ” 间隔 1 秒
  }   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值