当前位置:首页 > MCU > CT107D > 正文内容

CT107D 数码管动态显示

chanra1n4年前 (2020-10-16)CT107D4401
#include<reg52.h>
#include<intrins.h>
void hdw_init();
void smg_refresh();
void Delay1ms();
unsigned char num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char duan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char smg[8]={1,2,3,4,5,6,7,8};
unsigned char x;
void main()
{
	hdw_init();
	while(1)
	{
		smg_refresh();
	}
}
void Delay1ms()		//@12.000MHz
{
	unsigned char i, j;

	i = 12;
	j = 169;
	do
	{
		while (--j);
	} while (--i);
}

void hdw_init()
{
	P2=0xA0;
	P0=0x00;
	P2=0x00;
	
	P2=0x80;
	P0=0xFF;
	P2=0x00;
}
void smg_refresh()
{
	for(x=0;x<8;x++)
	{
		P2=0xC0;
		P0=duan[x];
		P2=0x00;
		
		P2=0xE0;
		P0=num[smg[x]];
		Delay1ms();
		P0=0xFF;
		P2=0x00;
	}
}

核心代码讲解

void smg_refresh()
{
	for(x=0;x<8;x++)
	{
		P2=0xC0;
		P0=duan[x];
		P2=0x00;
		
		P2=0xE0;
		P0=num[smg[x]];
		Delay1ms();
		P0=0xFF;
		P2=0x00;
	}
}

P2=0xC0;使得Y6C被选通,然后就可以选择指定的数码管进行显示


P2=0xE0;   使得Y7C被选通,然后就可以发送需要显示的值到指定的数码管


                P0=num[smg[x]];
		Delay1ms();
		P0=0xFF;
		P2=0x00;


扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://myfpga.cn/index.php/post/151.html

分享给朋友:

“CT107D 数码管动态显示” 的相关文章

CT107D-让我们先从亮第一个LED灯开始吧!

CT107D-让我们先从亮第一个LED灯开始吧!

我们从官方的SCH文件中,可以看到LED相关电路:上面还很贴心的给标注了D1~D8连接的相应MCU引脚,真是非常方便,从原理图上可以看出,假如我们想让LED(L1)亮起来,由于LED组为共阳结构,需给Q1端推送一个低电平,才能使得L1亮起来。于是我信心满满的打开keil,然后编写C程序:#inclu...

CT107D-按键的使用(中断法)

CT107D-按键的使用(中断法)

#include <reg52.h> int main() { IE|=0x85; TCON|=0x05; while(1); return 0; } void key_32(void) interrupt&nb...

CT107D-MM编程方法

CT107D-MM编程方法

#include <reg52.h> #include <absacc.h> void main() { XBYTE[0x8000]=0x00; }这是最简单的一个案例,我们使用MM编程方法需要使用的是XBYTE这个关键词,值得注意的...

CT107D DS18B20

CT107D DS18B20

先贴上核心代码unsigned char get_temp(void) { unsigned char TH,TL; init_ds18b20(); Write_DS18B20(0xCC); Write_DS18B20(0x44); De...