标题: 单片机数码管扫描源程序 原理图与Proteus仿真 代码注释很详细 [打印本页]

作者: 51黑电子迷    时间: 2017-5-7 22:26
标题: 单片机数码管扫描源程序 原理图与Proteus仿真 代码注释很详细

下面是数码管扫描的proteus仿真原理图(工程文件可到本帖附件中下载):


数码管扫描源程序如下:
  1. //#include <reg51.h>
  2. # include <STC12C5A60S2.h>
  3. # define uchar unsigned char
  4. void delay(uchar);
  5. //共阴数码管段码表
  6. uchar code distable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  7. //位选码表
  8. uchar  code numi[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  9. //显示缓存
  10. uchar V_ram[]={1,2,3,4,5,6,7,8};

  11. main()                                                 //m1:m0  00=标准;   01=推挽;   10=输入;   11=开漏输出
  12. {
  13.         uchar i,dm,wx;
  14.         //m1:m0  00=标准;   01=推挽;   10=输入;   11=开漏输出
  15.         P0M1 = 0X00;
  16.         P0M0 = 0Xff;
  17.         P2M1 = 0X00;
  18.         P2M0 = 0Xff; //设定P0,P2推挽输出

  19.         while(1)
  20.         {
  21.                   for(i=0;i<8;i++)
  22.                   {  
  23.                            dm=distable[V_ram[i]];        //取显示段码
  24.                         wx=numi[i];                           //取位选码
  25.                          P2=0x00;                           //关显示
  26.                            P0=dm;                                   //段码赋给P0口
  27.                            P2=wx;                                   //点亮位选的那个数码管
  28.                            delay(2)        ;                   //延时
  29.                   }
  30.         }
  31. }

  32. void delay(uchar t )
  33. {
  34.         uchar x,y,z;

  35. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

给大家分享一些我们老师给的一些经典的单片机程序源码, 一共有十多个.都有详细的注释,然大家快速的理解每一行代码的意思。而且有proteus仿真原理图。大家可以直接验证程序的对错.


本系列所有源码打包下载地址(含proteus仿真工程文件和源程序):
http://www.51hei.com/bbs/dpj-82474-1.html

本例程下载:
数码管扫描.rar (53.67 KB, 下载次数: 21)


作者: 1litchi    时间: 2019-12-16 16:40
不错 学到了




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