PIC16F877A开发板 数码管动态扫描实验

[复制链接]
573|9
 楼主| susceptibility 发表于 2020-3-7 11:05 | 显示全部楼层 |阅读模式
  1. //****************电子园PIC16F877A开发板 数码管动态扫描实验****************
  2. //
  3. //
  4. //mcu: PIC16F877A  4MHz  
  5. //2010年12月22日9:36:29
  6. //*************************************************************************

  7. #include <pic.h>
  8. #include "../head/config.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. const uchar smg_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,};   
  22.                                          
  23. uchar c;   
  24. uchar d;   

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


 楼主| susceptibility 发表于 2020-3-7 11:06 | 显示全部楼层
  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(500);
  16.    

  17.   while(1)
  18.   {
  19.     for(c=0;c<10;c++)
  20.     {
  21.       for(d=0;d<30;d++)
  22.       {
  23.         rclk=0;
  24.         senddata_74595(smg_bit[0]);
  25.         senddata_74595(smg[c]);
  26.         rclk=1;
  27.         delay1ms(1);
  28.          
  29.         rclk=0;
  30.         senddata_74595(smg_bit[1]);
  31.         senddata_74595(smg[(c+1)%10]);
  32.         rclk=1;
  33.         delay1ms(1);
  34.          
  35.         rclk=0;
  36.         senddata_74595(smg_bit[2]);
  37.         senddata_74595(smg[(c+2)%10]);
  38.         rclk=1;
  39.         delay1ms(1);
  40.          
  41.         rclk=0;
  42.         senddata_74595(smg_bit[3]);
  43.         senddata_74595(smg[(c+3)%10]);
  44.         rclk=1;
  45.         delay1ms(1);
  46.          
  47.         rclk=0;
  48.         senddata_74595(smg_bit[4]);
  49.         senddata_74595(smg[(c+4)%10]);
  50.         rclk=1;
  51.         delay1ms(1);
  52.          
  53.         rclk=0;
  54.         senddata_74595(smg_bit[5]);
  55.         senddata_74595(smg[(c+5)%10]);
  56.         rclk=1;
  57.         delay1ms(1);
  58.          
  59.         rclk=0;
  60.         senddata_74595(smg_bit[6]);
  61.         senddata_74595(smg[(c+6)%10]);
  62.         rclk=1;
  63.         delay1ms(1);
  64.          
  65.         rclk=0;
  66.         senddata_74595(smg_bit[7]);
  67.         senddata_74595(smg[(c+7)%10]);
  68.         rclk=1;
  69.         delay1ms(1);
  70.       }
  71.     }         
  72.   }
  73. }   
 楼主| susceptibility 发表于 2020-3-7 11:06 | 显示全部楼层
  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:07 | 显示全部楼层
  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:07 | 显示全部楼层
作者:Leo Chin
出处:http://www.cnblogs.com/hnrainll/
本博客**,大多系网络中收集,转载请注明出处
相关标签:嵌入式培训、嵌入式开发、嵌入式学习
晓伍 发表于 2020-4-2 15:43 | 显示全部楼层
非常感谢楼主分享
八层楼 发表于 2020-4-2 15:44 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2020-4-2 15:44 | 显示全部楼层
非常感谢楼主分享
guanjiaer 发表于 2020-4-2 15:44 | 显示全部楼层
非常感谢楼主分享
heimaojingzhang 发表于 2020-4-2 15:44 | 显示全部楼层
非常感谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

238

帖子

1

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