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的秒表