您的位置 首页 应用

数码管(STC89C52): 第一个数码管循环显现0~F

一硬件设计说明:选通一个数码管分两步,第一步是位选,即选择哪个数码管亮,这里位选是通过锁存器U2的WE1~WE6来选择第一个数码管到第六个数码

一.硬件规划

阐明:

选通一个数码管分两步,

第一步是位选,即挑选哪个数码管亮,这儿位选是经过锁存器U2的WE1~WE6来挑选第一个数码管到第六个数码管,因为数码管为共阴极(相对于8位数码管),那么这儿WE端为0代表位选选通,

第二步是段选,即挑选数码管的哪位亮,这儿段选是经过锁存器U1的a~h来挑选数码管的8位管子,这儿DUAN端为1代表段选选通.

二.程序规划

1.程序功用

第一个数码管循环显现0~F

2. 程序源码

#include

#define uchar unsigned char

#define uint unsigned int

sbit duan = P2 ^ 6;

sbit wela = P2 ^ 7;

uchar code led1[] = {

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

lenLed1 = sizeof(led1)/sizeof(led1[0]);

void delayms(uint xms);

void main()

{

uchar i;

wela = 1;

P0 = 0xfe;

wela = 0;

while (1)

{

for (i = 0; i < lenLed1; i++)

{

duan = 1;

P0 = led1[i];

duan = 0;

delayms(1000);

}

}

}

void delayms(uint xms)

{

uint i, j;

for (i = xms; i > 0; i–)

for (j = 110; j > 0; j–)

;

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/262307.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部