Arduino-Proteus仿真07-集成式数码管动态扫描显示
Posted 村头陈师傅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino-Proteus仿真07-集成式数码管动态扫描显示相关的知识,希望对你有一定的参考价值。
Arduino-Proteus仿真07-集成式数码管动态扫描显示
设计者:STCode(公众号同名)
前言:
Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件,它可以仿真、分析各种模拟电路和集成电路,其提供了大量模拟与数字元器件及外部设备,以及各种虚拟仪器(如电压表、电流表、示波器、逻辑分析仪、信号发生器等),特别是它具有对单片机及其外围电路组成的综合系统交互仿真功能,
目前,Proteus仿真系统支持的主流单片机有ARM7(LPC21xx)、8051/52、AVR、PIC 10/12/16/18/24、MSP430、CotexM0/M3、HC11等,其支持的开发环境有Keil u Vision2/3/4、MPLAB、Atmel Studio等。
提示:
Proteus仿真Arduino中,关于所需硬件获取、软件编译、HEX文件获取、代码导入等问题请参考文章:Arduino-Proteus仿真01-LED灯闪烁
1.练习描述
这次我们让集成式数码管“同时”显示多个不同字符,程序设计时使用了集成式数码管“动态扫描”技术。为了将年月日分开显示,电路中没有使用元件库提供的8位集成式共阳数码管,而是选用了一组4位及两组2位的共阳集成式数码管拼接成一组8位集成式数码管。拼接时注意“段引脚同名并联”“位引脚逐一分立”。
2.元器件选择
在元件模式中点击P选项,在元件库中搜索所需的元件名称,双击后便可添加到元件清单中。
3.电路连接
仿真电路中显示“年”时使用了4位集成式七段蓝色共阳数码管(7SEG-MPX4-CA-BLUE),CA表示共阳,从“纵向看”,任意一个数码管内A-G、DP各段的阳极连接在一起,4只数码管分别引出共阳极1、2、3、4。从“横向看”,4只数码管共有4个A段,所有A段的阴极引脚并联在一起,B、C、D、E、F、G、DP阴极也分别“横向”并联,分别引出段引脚A~G、DP。
4.程序设计
3) const uint8_t CA_SEGCODE[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;//0-9的共阳数码管段码表
4) const uint8_t DATA[]=2,0,2,1,0,1,2,7;//待显示到数码管的8个数字
5) const uint8_t ledpins_SEG[]=2,3,4,5,6,7,8,9; //用数组指定8位7段数码管所连接的段引脚
6) const uint8_t ledpins_DIG[]=12,13,14,15,16,17,18,19;//用数组指定8位7段数码管所连接的位引脚
7) uint8_t i;
8) void setup()
9)
10) for(i=0;i<8;i++)
11)
12) pinMode(ledpins_DIG[i],OUTPUT);//设置位码引脚
13) pinMode(ledpins_SEG[i],OUTPUT);//设置段码引脚
14)
15)
16) void loop()
17)
18) for(i=0;i<8;i++) //循环扫描显示8位数码管
19)
20) DIG_OUTPUT(i); //输出位码
21) SEG_OUTPUT(CA_SEGCODE[DATA[i]]); //输出段码
22) delay(1); //延时
23)
24)
25)
26) void SEG_OUTPUT(uint8_t x) //发送段码
27)
28) for(uint8_t j=0;j<8;j++)
29)
30) if((x>>j & 0x01) != 0x00)
31) digitalWrite(ledpins_SEG[j],HIGH);
32) else
33) digitalWrite(ledpins_SEG[j],LOW);
34)
35)
36)
37) void DIG_OUTPUT(uint8_t x) //发送位码
38)
39) for(uint8_t j=0;j<8;j++)
40)
41) if(x != j)
42) digitalWrite(ledpins_DIG[j],LOW);
43) else
44) digitalWrite(ledpins_DIG[j],HIGH);
45)
46)
程序上传成功后,将看到数码管显示2021 01 27
字样
5.软件操作
程序编写完成后点击Arduino IDE编译器的文件—首选项,将编译选项勾选上。点击好以后进行编译,编译完成后复制HEX文件所在的路径,复制完成后返回Proteus软件,双击Arduino控制板,在Program File处粘贴HEX文件的路径。点击确定以后即可进行仿真,点击Proteus软件下方运行仿真按钮,可以看到仿真的效果。
源文件请关注公众号“STCode”获取~
以上是关于Arduino-Proteus仿真07-集成式数码管动态扫描显示的主要内容,如果未能解决你的问题,请参考以下文章