标题: 这单片机程序中间那个display函数是干啥的? [打印本页]

作者: 晴天11    时间: 2019-9-14 21:12
标题: 这单片机程序中间那个display函数是干啥的?
#include<reg52.h>

#define uint unsigned int
#define uchar unsigned char
#define SEG P0//P0.0开始一场接入a-h)
#define WE P2   // (P2.0开始依次接入1-4)

void delay (uint z)
{
      uint x,y;
      for(x = z;x > 0;x--)
      for(y = 110;y > 0;y--)
            {

            }
}
void display_led(uchar WEI,uchar NUM)
{
      uchar code scandate[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
      uchar code bitdate[] = {0xf7,0xfb,0xfd,0xfe};
      WE = bitdate[WEI-1];
      delay(5);
      SEG = scandate[NUM];
}

void main(void)
{      SEG = 0x00;
      WE = 0xff;
      while(1)
      {
      display_led(1,8);
      display_led(2,8);
      display_led(3,8);
      display_led(4,8);     
}}


作者: 晴天11    时间: 2019-9-14 21:12
数码管动态扫描
作者: wulin    时间: 2019-9-15 06:32
这是一个4位共阴极数码管动态驱动测试程序,display_led是显示函数,动态配置段码和位码就可以在数码管显示相应数字,给你改了一点,通过显示效果更易理解。
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define SEG P0//(P0.0开始一场接入a-h)
  5. #define WE P2   // (P2.0开始依次接入1-4)

  6. void delay (uint z)
  7. {
  8.         uint x,y;
  9.         for(x = z;x > 0;x--)
  10.                 for(y = 110;y > 0;y--);
  11. }
  12. void display_led(uchar WEI,uchar NUM)
  13. {
  14.         uchar code scandate[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  15.         uchar code bitdate[] = {0xf7,0xfb,0xfd,0xfe};
  16.         WE = bitdate[WEI-1];
  17. //        delay(5);
  18.         SEG = scandate[NUM];
  19. }

  20. void main(void)
  21. {
  22.         SEG = 0x00;
  23.         WE = 0xff;
  24.         while(1)
  25.         {
  26.                 display_led(1,5);
  27.                 delay(5);
  28.                 display_led(2,6);
  29.                 delay(5);
  30.                 display_led(3,7);
  31.                 delay(5);
  32.                 display_led(4,8);     
  33.                 delay(5);
  34.         }
  35. }
复制代码




作者: angmall    时间: 2019-9-15 06:48
程序中间那个display函数是数码管显示函数
作者: csmyldl    时间: 2019-9-15 06:59
用于4位数码管显示的
作者: TERGET    时间: 2019-9-15 07:04
这是数码管显示吧,WE是位选,SEG是段选




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1