找回密码
 立即注册
搜索
热搜: 中医 针灸 咳嗽
查看: 169|回复: 0

单位数码管循环显示0-9_9-0

[复制链接]

3711

主题

1

回帖

1万

积分

管理员

积分
11937
发表于 2023-3-10 21:38:44 | 显示全部楼层 |阅读模式
[C] 纯文本查看 复制代码
/*
降龙棍~单位数码管_静态扫描最简单的案列

~74HC573,4位数码管接线在P0口,数码管采用共阴极

同步89开发板的时钟,这里为了与89开发板同步做实验统一用11.0592晶振
*/

#include <STC32G.H>
 /*数码管段码表*/
 unsigned char code leddata[]={ 
 
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄灭
                0x00  //自定义
 
                         };

void Delay500ms();
sbit DUAN = P2 ^ 6; // 定义段引脚
sbit WEI =P2^7; //定义位引脚



void main()
{
        
        int i;
        P0M0 = 0x00;
        P0M1 = 0x00;//将IO 设置为准双向模式

        P2M0 = 0x40;
        P2M1 = 0x00; // 设置为推挽输出模式,给74HC573上点激活Q0-Q7口

        P0=0X00; //初始化IO口上低电平
        P2=0X00;//段和位全部置低
        P23 =0X01; //89开发板上的关闭蜂鸣器
        WTST =0X00;//延时寄存器初始化

        for ( i = 0; i < 10; i++)
        {
                                //位选
                WEI =1;
                P0= 0xfe;
                WEI =0x00;
                //段选
                DUAN =1;
                P0=leddata[i];
                DUAN =0;
                Delay500ms();

        }
        
        for ( i = 9; i >= 0; i--)
        {
                                //位选
                WEI =1;
                P0= 0xfe;
                WEI =0x00;
                //段选
                DUAN =1;
                P0=leddata[i];
                DUAN =0;
                Delay500ms();

        }

}


void Delay500ms()                //@11.0592MHz
{
        unsigned long i;

        _nop_();
        _nop_();
        i = 1382398UL;
        while (i) i--;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|私人站点 ( 冀ICP备2023028127号-2 )

GMT+8, 2025-7-6 07:32 , Processed in 0.089679 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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