找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2531|回复: 1
收起左侧

STC8G1K08T单片机LED数码管自动扫描显示相关程序

[复制链接]
ID:935302 发表于 2021-7-26 11:41 | 显示全部楼层 |阅读模式
STC单片机LED应用电路原理图
51hei.png
  1. /*********************************************************/

  2. #define MAIN_Fosc        11059200L        //定义主时钟

  3. #include        "..\..\STC8Gxxx.h"

  4. /*************        功能说明        *************

  5. 驱动8个共阴数码管自动扫描显示.

  6. P3.0~P3.7对应SEG0~SEG7(对应LED数码管A~G, GP). 这8根SEG线跟LED连接要串联限流电阻(建议200欧姆以上).
  7. P1.0 P1.1 P5.4 P1.3~P1.7对应COM0~COM7.

  8. ******************************************/


  9. /*************        本地常量声明        **************/

  10. /*************        本地变量声明        **************/

  11. /*************        本地函数声明        **************/



  12. /****************  外部函数声明和外部变量声明 *****************/

  13. u8 code t_display[]={                                                //标准字库
  14. //         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  15.         0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,};

  16. /**********************************************/
  17. void main(void)
  18. {
  19.         u8        i;
  20.         u8        xdata *px;

  21.         P_SW2 |= 0x80;        //允许访问XSFR(扩展特殊功能寄存器)
  22. //        XOSCCR = 0xc0;           //启动外部晶振
  23. //        while (!(XOSCCR & 1));   //等待时钟稳定
  24. //        CLKDIV = 0x00;           //时钟不分频
  25. //        CKSEL = 0x01;            //选择外部晶振

  26.         P1DR = 0x00;        //COM线设置为强电流驱动
  27.         P5DR = 0x00;        //COM线设置为强电流驱动
  28. //        P3DR = 0x00;        //SEG线设置为强电流驱动

  29.         COMEN  = 0xff;        //允许8个COM
  30.         SEGENL = 0xff;        //允许8个SEG
  31.         LEDCTRL = 0x80 + (2<<4) + 0;        //B7=1: ON,  B5 B4: 0共阴, 1共阳, 2共阴共阳, 3保留, B2 B1 B0: 0占空比100%, 1~7占空比7/8~1/8
  32.         LEDCKS = 8;        //1位LED扫描的主频时钟数 = 1280*n, 频率=fosc/(1280*n)

  33.         for(px = &COM0_DCL, i=0; i<8; i++, px++)        *px = t_display[i+1];        //共阴,显示12345678
  34.         for(px = &COM0_DAL, i=0; i<8; i++, px++)        *px = t_display[8-i];        //共阳,显示87654321 以示区分
  35.        
  36. //        P_SW2 &= ~0x80;
  37.        
  38.         while (1)
  39.         {
  40.                 //刷新COM0_DCL~COM7_DCL,即可刷新共阴显示内容.
  41.                 //刷新COM0_DAL~COM7_DAL,即可刷新共阳显示内容.
  42.         }
  43. }
  44. /**********************************************/
复制代码
51hei.png

代码下载: STC8G1K08T-LED数码管自动扫描显示相关程序.RAR (409.13 KB, 下载次数: 49)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:469787 发表于 2021-8-20 20:59 | 显示全部楼层
本帖最后由 在线 于 2021-8-20 21:01 编辑

懂了懂了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表