c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

Posted lanmanuesr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真相关的知识,希望对你有一定的参考价值。


徐浩宇
川师工学院电气2018级
2021.5.8

如何通过数码管显示0~F?

  • 数码管有共阴和共阳两种
    共阳型阳极为公共端,阳极为段选信号输入
    共阴型阴极为公共端,阴极为段选信号输入
  • 注:段选输入方式直接决定了这一位输出的字形
    eg:
    共阳极数码管的段选编码应为:11000000B= 0xC0H
    共阴极数码管的段选编码应为:00111111B = 0x3FH

    在这里插入图片描述

中断设计1s显示0~F实验源码

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
int	i=0;
int flag=0;
uchar code DSY_CODE[]=    //通过16进制数,设置数码管显示内容
{
  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
	0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff
};

void main()
{
	TMOD=0x10;           				 //工作于方式1
  EA=1;               				     // 中断允许
  ET1=1;						 		 // 中断1打开
	TH1=(65536-50000)/256; 	             // (65536-50000)/256=60.6875
	TL1=(65536-50000)%256;      
	TR1=1;
  while(1){}
}

void timer1(void) interrupt 3
{ 

  TH1=(65536-50000)/256;
	TL1=(65536-50000)%256;
  flag++;
	if (flag==20)	            //达到1s
		{
			flag	=0;
			P1=~DSY_CODE[i];
			i=(i+1)%16;         //显示0-f
		}	  			
}


实验原理图如下
在这里插入图片描述

这里的数码管采用以下的两种


在这里插入图片描述

另外一种带有9根线的数码管,引脚说明如下,如需采用该种数码管,只需要加入使能即可


在这里插入图片描述
附上打包的工程文件:
https://download.csdn.net/download/Alangman/18474884

以上是关于c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真的主要内容,如果未能解决你的问题,请参考以下文章

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

c51语言设计数码管,中断设计1s显示0~F,采用proteus仿真

c51语言设计数码管秒表,采用中断计数1s,实现模60的秒表

c51语言设计数码管秒表,采用中断计数1s,实现模60的秒表

分别用汇编语言和C语言设计: 采用中断方式,利用定时器进行0-9秒表计数器的设计,并用数码

用C51单片机的外部中断设计1s定时器