找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2858|回复: 0
收起左侧

蓝桥杯51单片机—点亮静态数码管程序

[复制链接]
ID:889082 发表于 2021-3-8 15:51 | 显示全部楼层 |阅读模式
点亮静态数码管
1.png
1.74HC138译码器
2.png 如图:  Y4:1 0 0                     Y5: 1 0 1                     Y6: 1 1 0                     Y7: 1 1 1                     当输入为100时,Y4打开,依次类推。
2.数码管
要点亮一个数码管,要知道一个位码和段码;(位类似一个旅店的位置,段类似一个这个房间的钥匙)位码:想点亮数码管的位置端码:想点亮的内容要想点亮一个数码管,要先确定位码(确定位置),然后在确定断码(确定要点亮的内容)
段码
共阳数码管段码unsigned char code SEG_CODE[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
位码
当二进制的1在什么位置时,什么位置的数码管亮。
代码#include <REGX52.H>
#include <intrins.H>
unsigned char code sum[18] =
    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
     0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
     0xbf,0x7f};                                                            //段选码
void HC138(unsigned char n);
unsigned char i = 0x01;
int j;
void DisplayShow(unsigned char post , unsigned char show);
void showed();
void main(){
    showed();
}
void HC138(unsigned char n){
    switch(n){
        case 6:
            P2 = (P2 & 0x1f) | 0xc0;
        break;
        case 7:
            P2 = (P2 & 0x1f) | 0xe0;
        break;}
    }

    void DisplayShow(unsigned char post , unsigned char show){
        HC138(6);
        P0 = (0x01 << post);                //位操作
        HC138(7);
        P0 = show;
    }
    void showed(){
    DisplayShow(0,sum[2]);              //第一个位置显示“2”
    Delay1000ms();
    }


回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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