PIC16F877A开发板 普通IO驱动74595实验

[复制链接]
691|9
 楼主| susceptibility 发表于 2020-3-7 11:08 | 显示全部楼层 |阅读模式
  1. /*****************电子园PIC16F877A开发板 普通IO驱动74595实验***************
  2. //
  3. //PIC16F877A 实验板
  4. //
  5. //mcu: PIC16F877A  4MHz  
  6. //2010年7月10日21:52:30
  7. //**************************************************************************

  8. #include <lian_pic.h>
  9. __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);   
  10. //HS振荡,禁止看门狗,低压编程关闭,启动延时定时器

  11. #define srclk RC3        //移位寄存器时钟 (74595:11脚)
  12. #define rclk  RC4        //存储寄存器时钟 (74595:12脚)
  13. #define ser   RC5        //串行数据口     (74595:14脚)
  14.                          //oe:输出允许  L:允许输出;H:禁止输出;  (74595:13脚)
  15.                          //srclr:移位寄存器清零 (L:清零) (74595:10脚)
  16.    
  17. const uchar smg_text[]={0xbf,0xfe,0xfb,0xef,0xdf,0x7f,0xfd,0xf7,};
  18.                            
  19. const uchar smg[]={0x0a,0xfa,0x8c,0xa8,0x78,0x29,0x09,0xba,0x08,0x28,0x00,};
  20.                   // 0     1    2    3    4    5    6    7    8    9   all
  21.                   
  22. const uchar smg_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,};                                          

  23. uchar c;   
  24. uchar d;   

  25. //********************函数定义*********************
  26. void delay1ms(uint DelayTime);     
  27. void senddata_74595(uchar SendData);


 楼主| susceptibility 发表于 2020-3-7 11:09 | 显示全部楼层
  1. //*************** 主程序 ********************
  2. void main(void)
  3. {   
  4.   TRISC3=0;      //srclk 引脚设为输出
  5.   TRISC5=0;      //ser   引脚设为输出
  6.   TRISC4=0;      //rclk  引脚设为输出
  7.   rclk=0;
  8.    
  9.   delay1ms(10);
  10.    
  11.   rclk=0;                 //产生锁存时钟
  12.   senddata_74595(0x00);
  13.   senddata_74595(0x00);
  14.   rclk=1;
  15.   delay1ms(200);
  16.    
  17.   for(d=0;d<8;d++)
  18.   {
  19.     for(c=0;c<8;c++)
  20.     {
  21.       rclk=0;
  22.       senddata_74595(smg_bit[d]);
  23.       senddata_74595(smg_text[c]);
  24.       rclk=1;
  25.       delay1ms(100);
  26.     }  
  27.   }

  28.   while(1)
  29.   {
  30.     for(c=0;c<11;c++)
  31.     {
  32.       rclk=0;
  33.       senddata_74595(smg_bit[8]);
  34.       senddata_74595(smg[c]);
  35.       rclk=1;
  36.       delay1ms(100);
  37.     }         
  38.   }
  39. }   
 楼主| susceptibility 发表于 2020-3-7 11:09 | 显示全部楼层
  1. //***********************74595发送函数************************
  2. void senddata_74595(uchar SendData)
  3. {
  4.   uchar i;
  5.   for(i=0;i<8;i++)
  6.   {   
  7.     if((SendData&0x80)==0)           //先发送高位,后发送低位
  8.     {
  9.       ser=0;
  10.     }
  11.     else
  12.     {
  13.       ser=1;
  14.     }  
  15.     srclk=0;
  16.     srclk=1;
  17.     SendData=SendData<<1;           //数据左移一位
  18.   }   
  19. }
 楼主| susceptibility 发表于 2020-3-7 11:10 | 显示全部楼层
  1. //*****************延时 n*1ms 12MHz*****************
  2. void delay1ms(uint DelayTime)
  3. {   
  4.   uint temp;
  5.   for(;DelayTime>0;DelayTime--)
  6.   {   
  7.     for(temp=0;temp<270;temp++)
  8.     {;}
  9.   }
  10. }
 楼主| susceptibility 发表于 2020-3-7 11:11 | 显示全部楼层
作者:Leo Chin
出处:http://www.cnblogs.com/hnrainll/
本博客**,大多系网络中收集,转载请注明出处
相关标签:嵌入式培训、嵌入式开发、嵌入式学习
八层楼 发表于 2020-4-2 15:44 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2020-4-2 15:45 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-4-2 15:45 | 显示全部楼层
非常感谢楼主分享
heimaojingzhang 发表于 2020-4-2 15:45 | 显示全部楼层
非常感谢楼主分享
keaibukelian 发表于 2020-4-2 15:45 | 显示全部楼层
非常感谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

238

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部