共阴数码管 显示数字 C语言程序
C语言模拟数码管显示,VC6.0编译通过
#include<stdio.h>#include<windows.h>//矩阵模块赋值int mat0[5][5]={2,2,2,2,2,2,32,32,32,2,2,32,32,32,2,2,32,32,32,2,2,2,2,2,2};int mat1[5][5]={32,32,32,32,2,32,32,32,32,2,32,32,32,32,2,32,32,32,32,2,32,32,32,32,2};int mat2[5][5]={2,2,2,2,2,32,32,32,32,2,2,2,2,2,2,2,32,32,32,32,2,2,2,2,2};int mat3[5][5]={2,2,2,2,2,32,32,32,32,2,2,2,2,2,2,32,32,32,32,2,2,2,2,2,2};int mat4[5][5]={2,32,32,32,2,2,32,32,32,2,2,2,2,2,2,32,32,32,32,2,32,32,32,32,2};int mat5[5][5]={2,2,2,2,2,2,32,32,32,32,2,2,2,2,2,32,32,32,32,2,2,2,2,2,2};int mat6[5][5]={2,2,2,2,2,2,32,32,32,32,2,2,2,2,2,2,32,32,32,2,2,2,2,2,2};int mat7[5][5]={2,2,2,2,2,32,32,32,32,2,32,32,32,32,2,32,32,32,32,2,32,32,32,32,2};int mat8[5][5]={2,2,2,2,2,2,32,32,32,2,2,2,2,2,2,2,32,32,32,2,2,2,2,2,2};int mat9[5][5]={2,2,2,2,2,2,32,32,32,2,2,2,2,2,2,32,32,32,32,2,2,2,2,2,2};int second=-1;int i,j;int con1=0,con2=0;//模拟计时模块void Update(void){second++;con1=second;if(second==10){con2++;second=0;}if(con2==6){con2=0;}}//模拟延时模块void Delay(void){long t;for(t=0;t<233000000;t++){ }}//界面输出模块1void print1(void){for(i=0;i<5;i++){for(j=0;j<5;j++){if(con1==0)printf(" %c",mat0[i][j]);if(con1==1)printf(" %c",mat1[i][j]);if(con1==2)printf(" %c",mat2[i][j]);if(con1==3)printf(" %c",mat3[i][j]);if(con1==4)printf(" %c",mat4[i][j]);if(con1==5)printf(" %c",mat5[i][j]);if(con1==6)printf(" %c",mat6[i][j]);if(con1==7)printf(" %c",mat7[i][j]);if(con1==8)printf(" %c",mat8[i][j]);if(con1==9)printf(" %c",mat9[i][j]);if(con1==10)printf(" %c",mat0[i][j]);}printf("\n");printf("\n");}}//界面输出模块2void print2(void){for(i=0;i<5;i++){for(j=0;j<5;j++){if(con2==0)printf(" %c",mat0[i][j]);if(con2==1)printf(" %c",mat1[i][j]);if(con2==2)printf(" %c",mat2[i][j]);if(con2==3)printf(" %c",mat3[i][j]);if(con2==4)printf(" %c",mat4[i][j]);if(con2==5)printf(" %c",mat5[i][j]);if(con2==6)printf(" %c",mat6[i][j]);if(con2==7)printf(" %c",mat7[i][j]);if(con2==8)printf(" %c",mat8[i][j]);if(con2==9)printf(" %c",mat9[i][j]);}printf("\n");printf("\n");}}//主函数int main(){system("color 0E");while(1){system("cls");printf("\n");Update();print2();printf("\n");print1();Delay();}return 0;}。
单片机c语言版数码管动态显示实验报告
数码管动态显示实验一、实验要求1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码管数据引脚相连,P2.0~P2.3引脚输出选控制信号3.在Keil软件中编写程序,采用动态显示法,实现数码管显示变量unsigned intshow_value的值(show_value的值范围为0000~9999),即把show_value的千百十个位的值用数码管显示出来。
二、实验目的1.巩固Proteus软件和Keil软件的使用方法2.学习端口输入输出的高级应用3.掌握7段数码管的连接方式和动态显示法4.掌握查表程序和延时等子程序的设计三.实验说明(条理清晰,含程序的一些功能分析计算)如下图(五)所示,由P1口将要显示的数字输给七段数码管;再由P2第四位输给数码管的公共端,作为扫描输入信号;用外部中断P3.2和P3.3分别接PB1与PB2,实现数字的增减。
所要实现的功能是,开始运行电路功能图时,四个数码管分别显示0000,按下PB1增1,直到9999回到0000,相反按下PB2减1,直到0000回到9999。
在算相关数据时,由于要显示个十百千的不同数字,要调用disp函数,disp[0]=show/1000; //显示千位的值 disp[1]=show%1000/100; //显示百位的值disp[2]=show%100/10; //显示十位的值 disp[3]=show%10; //显示个位的值本实验需要用到IE寄存器与TCON寄存器。
四、硬件原理图及程序设计(一)硬件原理图设计图(五)开始运行proteus,四个数码管显示0000,按下PB1数码管增1,按下PB2数码管减1。
(二)程序流程图设计三)程序设源代码#include<reg51.h> //定义8051寄存器头文件#define SEG7P P1 // 定义数码管输入信号接P1 #define SCANP P2 //定义数码管扫描信号接P2 char code TAB[10]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, //数字0~4 0x92, 0x83, 0xf8, 0x80, 0x98 };//数字5~~9 char disp[4]={0,0,0,0}; //显示数组void delay_ms(int x); //声明延迟函数char scan[4]={0xfe,0xfd,0xfb,0xf7}; //声明输入扫描信号char i,j; //声明变量void display(); //显示数组diso的内容int show=0000; //定义初始值void get_disp(); //声明返回diap main() //主程序开始{IE=0X85; //开IE寄存器,允许INT0和INT1中断TCON=0X05; //开INT0,INT1while(1) //无穷循环{get_disp();display();}void delay_ms(int x) //声明延迟函数{ int i,j; //定义变量for (i=0;i<x;i++) //开始计数,计数x次for (j=0;j<120;j++); //计数120次,延迟1ms }void display() //声明显示函数{for(i=0;i<4;i++) //开始计数,计数4次{ j=disp[3-i]; //diap的值附到变量j SCANP=scan[i]; //显示扫描信号SEG7P=TAB[j]; //显示数字到数码管delay_ms(4); //延迟4ms}}void INT0_ISR(void) interrupt 0 //INT0中断子程序开始 {if(show<9999) //如果显示数值小于9999show++; //显示数值自增1else show=0; //否则显示数值0}void_INT1_ISR(void) interrupt 2 //INT1中断子程序开始{if(show>0) //如果显示数值大于0show--; //显示数值自减1else show=9999; //否则显示数值9999}void get_disp (){disp[0]=show/1000; //显示千位的值disp[1]=show%1000/100; //显示百位的值disp[2]=show%100/10; //显示十位的disp[3]=show%10; //显示个位的值}五.实验总结实验过程中遇到的问题及解决方法、体会问题1:运行电路原理图时,数码管都不亮。
c51单片机驱动三位8段数码管显示0.00-9.99,c语言程序
unsigned char temp[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
unsigned char table[3];
unsigned iபைடு நூலகம்t num;
void display(unsigned int num)
TH0 = 0xfc;
TL0 = 0x18;
j++;
if(i < 3)
{
P2 = 0xf8;
P1 = 0x00;
P2 = ~(1 << i);
P1 = table1[i];
i++;
}
else
i = 0;
if(j >= 1000)
{
num++;
if(num > 999)
num = 0;
j = 0;
}
用的是共阴极数码管,定时器延时,不会出现数码管抖动现象
定时器自动加,会从0.00-9.99自动显示,9.99以后又清0.00
追问
我是从ADC0908中传出的8位数字量到单片机上,用单片来动态显示到数码管上的,不知道是不是要标定一下?(传感器输出1-5v,量程是0-10米经AD转换后给单片机用数码管显示0-10米,且在1米和8米处要求报警)
是不是该用单片机不断地循环查询?
回答
不知道这个有没的AD转换中断,如果有可以在每次转换成功以后查下,没有的话,估计要不断查询
TL0 = 0x18;
ET0 = 1;
单片机指令编程实例数码管显示程序设计
单片机指令编程实例数码管显示程序设计在单片机的开发中,数码管是一种常见的输出设备。
通过编程控制数码管的显示,我们可以实现各种功能,如计时、计数、温度显示等。
本文将介绍一个简单的单片机指令编程实例,用于设计一个数码管显示程序。
一、概述数码管是一种由七段LED组成的显示器件,每个数码管可以显示0-9的数字。
通过合理的控制,可以将多个数码管连接起来并显示多位数值。
在这个实例中,我们将使用AT89C51单片机和共阳数码管进行程序设计。
二、硬件连接将数码管的七段LED引脚依次连接到单片机的GPIO引脚,并将共阳极引脚连接到单片机的VCC。
为了方便控制,可以利用74HC595芯片实现数码管的级联连接,这样只需要使用三个IO口即可控制多个数码管。
三、程序设计程序设计的主要逻辑是通过编写一系列的指令来控制数码管的显示。
以下是一个简单的实例程序:```#include <reg51.h>sbit SDA = P1^0; // 74HC595芯片的串行数据引脚sbit SCK = P1^1; // 74HC595芯片的时钟引脚sbit RCK = P1^2; // 74HC595芯片的输出使能引脚unsigned char code num[10] = {0xC0, // 数字0的显示码0xF9, // 数字1的显示码0xA4, // 数字2的显示码0xB0, // 数字3的显示码0x99, // 数字4的显示码0x92, // 数字5的显示码0x82, // 数字6的显示码0xF8, // 数字7的显示码0x80, // 数字8的显示码0x90 // 数字9的显示码};void delay(unsigned int t) {unsigned int i;while (t--) {for (i = 0; i < 1000; i++);}}void writeByte(unsigned char dat) {unsigned char i;for (i = 0; i < 8; i++) {SDA = (dat & 0x80) ? 1 : 0;dat <<= 1;SCK = 0;SCK = 1;}}void display(unsigned char n) {unsigned char i;for (i = 0; i < 8; i++) {writeByte(num[n]);RCK = 1;RCK = 0;delay(1); // 延时一段时间,使数码管显示出来}}void main() {unsigned char i;while (1) {for (i = 0; i < 10; i++) {display(i);delay(500); // 每个数字显示的时间间隔为500ms}}}```以上程序通过将各个数字的显示码存储在一个数组中,然后通过控制74HC595芯片的串行数据引脚、时钟引脚和输出使能引脚,来实现数码管的动态显示。
单片机 c语言例题
单片机 c语言例题单片机 C 语言例题在单片机教学中,C 语言的例题是帮助学生理解和掌握单片机编程的重要工具。
通过例题的学习,学生可以更好地理解C语言语法和单片机的工作原理。
本文将介绍几个单片机 C 语言例题,帮助读者更好地了解单片机的应用。
例题一:LED 灯的闪烁以下是一个简单的单片机 C 语言例题,通过控制单片机上的LED 灯,实现灯的闪烁效果。
```c#include <reg51.h> // 单片机头文件// 主函数void main() {while(1) { // 循环执行P1 = 0x00; // 将 P1 置为低电平(LED 灯熄灭)Delay(); // 延时P1 = 0xFF; // 将 P1 置为高电平(LED 灯亮)Delay(); // 延时}}// 延时函数void Delay() {int i, j;for(i = 0; i < 800; i++) { // 大约延时 1 秒for(j = 0; j < 1000; j++) {}}}```在上述例题中,我们使用了一个延时函数 `Delay()`,通过循环控制LED 灯的亮灭状态,实现了灯的闪烁效果。
通过修改延时循环,可以改变灯闪烁的频率。
例题二:数码管显示数字以下是另一个单片机 C 语言例题,通过控制单片机上的数码管,实现数字的显示效果。
```c#include <reg51.h> // 单片机头文件sbit LED = P2^0; // 数码管的引脚定义// 数码管显示数字函数void Display(int num) {switch (num) {case 0: LED = 0xFC; break; // 数字0显示case 1: LED = 0x60; break; // 数字1显示case 2: LED = 0xDA; break; // 数字2显示case 3: LED = 0xF2; break; // 数字3显示case 4: LED = 0x66; break; // 数字4显示case 5: LED = 0xB6; break; // 数字5显示case 6: LED = 0xBE; break; // 数字6显示case 7: LED = 0xE0; break; // 数字7显示case 8: LED = 0xFE; break; // 数字8显示case 9: LED = 0xF6; break; // 数字9显示default: LED = 0xFF; break; // 其他情况,不显示数字 }}// 主函数void main() {int num = 0; // 待显示的数字while(1) { // 循环执行Display(num); // 数码管显示数字num++; // 数字自增if (num > 9) { // 数字大于9后重置为0 num = 0;}Delay(); // 延时}}// 延时函数void Delay() {int i, j;for(i = 0; i < 800; i++) { // 大约延时 1 秒 for(j = 0; j < 1000; j++) {}}}```在上述例题中,我们通过控制数码管的引脚,并编写了一个显示数字的函数 `Display()`,通过循环控制数码管显示不同的数字,实现了数字的切换和显示效果。
数码管显示0~9对应的编程实训总结
数码管显示0~9对应的编程实训总结数码管是一种常见的输出设备,用于显示数字或字符。
在编程实训中,我们经常会使用数码管进行数字显示,为了掌握数码管的使用方法,我进行了如下的编程实训总结。
首先,为了使用数码管,需要了解数码管的基本工作原理。
数码管由若干个发光二极管组成,每个发光二极管的亮灭状态决定了显示的数字或字符。
数码管一般有共阳极和共阴极两种型号,我们需要根据型号的不同选择合适的驱动电路。
第二,使用数码管需要提前准备好对应的引脚和接线。
通常,数码管使用多个引脚进行控制。
对于共阳极的数码管,需要将各个发光二极管的阳极引脚连接到微控制器的输出引脚,而将所有发光二极管的阴极引脚连接到共阳极引脚上。
对于共阴极的数码管,则需要相反的接法。
第三,控制数码管的显示需要使用特定的编程语句或函数。
比如在Arduino编程中,可以使用“digitalWrite(”函数控制数码管的引脚输出高低电平。
我们可以通过设置引脚为高电平或低电平来点亮或熄灭对应的发光二极管。
在这次编程实训中,我实现了0~9这十个数字在数码管上的显示。
具体实现方法如下:首先,我通过Arduino编程,将数码管的引脚连接到Arduino的数字I/O口上。
在程序的setup部分,我使用“pinMode(”函数将引脚设置为输出模式,以便进行控制。
接着,在程序的loop部分,我使用for循环控制数字从0到9的顺序。
在循环的每次迭代中,我使用digitalWrite函数依次设置数码管的引脚为高电平或低电平,以控制发光二极管的点亮或熄灭。
比如,当数字为0时,我设置引脚1、2、3、4、5、6为低电平,将引脚0设置为高电平;当数字为1时,我设置引脚6为低电平,将引脚0、1、2、3、4、5设置为高电平,以此类推。
通过不断地改变引脚的高低电平状态,我实现了数码管的显示效果。
在每个数字的显示之间,我使用延时函数delay(控制数字显示的持续时间。
比如设置延时为1秒,每隔1秒改变一次数字的显示。
单片机数码管C程序
/*-----------------------------------------------名称:单个共阳数码管静态显示论坛:编写:shifang日期:2009.5修改:无内容:通过赋值给P1,让数码管显示特定的字符或者数字------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义void main (void){P1=0xc0; //二进制为1100 0000 参考数码管排列,//可以得出0对应的段点亮,1对应的段熄灭,结果显示数字"0"while(1){}}/*-----------------------------------------------名称:单个共阳数码管动态显示变化数字论坛:编写:shifang日期:2009.5修改:无内容:通过循环赋值给P1,让数码管显示特定的字符或者数字------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};// 显示数值表0-9void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数------------------------------------------------*/void main (void){unsigned char i; //定义一个无符号字符型局部变量i 取值范围0~255while (1) //主循环{for(i=0;i<10;i++) //加入for循环,表明for循环大括号中的程序循环执行10次{P1=dofly_table[i]; //循环调用表中的数值Delay(60000); //延时,方便观看数字变化}//主循环中添加其他需要一直工作的程序}}/*------------------------------------------------延时函数,含有输入参数unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535------------------------------------------------*/void Delay(unsigned int t){while(--t);}/*-----------------------------------------------名称:单个共阳数码管模拟水流论坛:编写:shifang日期:2009.5修改:无内容:通过循环赋值给P1,让数码管显示特定流动样式------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数------------------------------------------------*/void main (void){unsigned char i; //定义一个无符号字符型局部变量i 取值范围0~255while (1) //主循环{P1=0xfe;for(i=0;i<6;i++) //加入for循环,表明for循环大括号中的程序循环执行6次{Delay(10000);P1<<=1;P1|=0x01;}//主循环中添加其他需要一直工作的程序}}/*------------------------------------------------延时函数,含有输入参数unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535------------------------------------------------*/void Delay(unsigned int t){while(--t);}/*-----------------------------------------------名称:单个共阳数码管动态显示变化数字论坛:编写:shifang日期:2009.5修改:无内容:通过循环检测P1口按键输入值,然后用数码管输出,没有按键按下时原值不变------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};// 显示数值表0-9/*------------------------------------------------主函数------------------------------------------------*/void main (void){while (1) //主循环{switch(P3) //P3口作为独立按键输入端,检测端口电平并做如下判断{case 0xfe:P1=dofly_table[1];break;//0xfe = 1111 1110,//说明连接在P3.0端口的按键被按下,显示对应的数字然后跳出循环case 0xfd:P1=dofly_table[2];break;//调用表中的第三个//元素0xa4 下标0 才表示数组中的第一个元素case 0xfb:P1=dofly_table[3];break;case 0xf7:P1=dofly_table[4];break;case 0xef:P1=dofly_table[5];break;case 0xdf:P1=dofly_table[6];break;case 0xbf:P1=dofly_table[7];break;case 0x7f:P1=dofly_table[8];break;default:break; //如果都没按下,直接跳出}//主循环中添加其他需要一直工作的程序}}/*-----------------------------------------------名称:单个共阳数码管指示逻辑电平论坛:编写:shifang日期:2009.5修改:无内容:通过循环检测P3.2口电平输入值,然后用数码管输出"H" or "L",表示该端口现在连接的是高电平还是低电平------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义sbit IO_IN=P3^2; //定义IO 信号输入端/*------------------------------------------------主函数------------------------------------------------*/void main (void){while (1) //主循环{if(IO_IN==1)//如果端口检测到1表示高电平P1=0x89; //"H"elseP1=0xc7; //"L"//否则表示低电平,这里使用条件语句if 。
基本共阴极动态数码管编程
基本共阴极动态数码管编程1.引言1.1 概述在数字电子技术领域中,数码管是一种常见的输出设备,广泛应用于各种计数、显示和报警系统中。
而基本共阴极动态数码管作为一种常见的数码管类型,具有较为简单的结构和广泛的应用场景。
基本共阴极动态数码管由多个七段数字组成,每个数字由七个LED组成,通过控制这些LED的亮灭状态来显示不同的数字、字母和符号。
在基本共阴极动态数码管中,每个七段数字都有共用的阴极端,而七个LED的阳极分别连接到控制器的输出引脚。
编程实现基本共阴极动态数码管的显示,需要通过控制控制器的输出引脚来控制LED的亮灭状态。
通过逐个控制不同的数字和字符的LED亮灭,可以实现在数码管上显示各种信息。
同时,为了实现动态显示效果,需要以适当的时间间隔切换不同的显示内容,使数码管呈现出流动的效果。
本文将详细介绍基本共阴极动态数码管的原理和编程实现方法。
首先,我们将对基本共阴极动态数码管的原理进行解析,探讨LED的亮灭控制方式和数码管的显示原理。
接着,我们将介绍如何使用特定的编程语言或开发工具,通过控制控制器的输出引脚来实现基本共阴极动态数码管的显示。
最后,我们将总结本文的内容,展望基本共阴极动态数码管在未来的发展方向。
通过本文的学习,读者将能够了解基本共阴极动态数码管的原理和编程实现方法,掌握基本的数码管编程技巧。
同时,本文的内容也可以为读者进一步研究和应用数码管提供参考和指导。
1.2 文章结构本文主要讨论基本共阴极动态数码管编程的原理和实现方法。
为了便于读者理解,下面将分为以下几个部分进行阐述:1. 引言:在引言部分,我们首先对基本共阴极动态数码管进行概述,介绍其基本原理和应用场景。
接着,我们将介绍本文的结构和目的,为读者提供一个整体的框架。
2. 正文:正文部分将分为两个小节,分别介绍基本共阴极动态数码管的原理和编程实现方法。
2.1 基本共阴极动态数码管的原理:在本节中,我们将详细解释基本共阴极动态数码管是如何工作的。
共阴数码管的0~F的显示
62
4'ha: sm_dbr <= sega;
63
4'hb: sm_dbr <= segb;
64
4'hc: sm_dbr <= segc;
65
4'hd: sm_dbr <= segd;
66
4'he: sm_dbr <= sege;
67
4'hf: sm_dbr <= segf;
68
default: ;
35
seg5 = 7'h6d,
36
seg6 = 7'h7d,
37
seg7 = 7'h07,
38
seg8 = 7'h7f,
39
seg9 = 7'h6f,
40
sega = 7'h77,
41
segb = 7'h7c,
42
segc = 7'h39,
43
segd = 7'h5e,
44
sege = 7'h79,
10 output[6:0] sm_db; //7段数码管(不包括小数点)
11
12 reg[24:0] cnt; //计数器,最大可以计数到2的25次方*20ns=640ms
13
14 always @ (posedge clk or negedge rst_n)
15 if(!rst_n) cnt <= 25'd0;
23
24 //-------------------------------------------------------------------------------
数码管动态显示C程序
/****************************************************************************** ** 实验名: 动态显示数码管实验* 使用的IO : 数码管使用P0,P2.2,P2.3,P2.4* 实验效果: 数码管显示76543210。
* 注意:******************************************************************************* /#include<reg51.h>#define GPIO_DIG P0sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsigned char DisplayData[8];//用来存放要显示的8位数的值void DigDisplay(); //动态显示函数/****************************************************************************** ** 函数名: main* 函数功能: 主函数* 输入: 无* 输出: 无******************************************************************************* /void main(void){unsigned char i;for(i=0;i<8;i++){DisplayData[i]=DIG_CODE[i];}while(1){DigDisplay();}}/******************************************************************************** 函数名: DigDisplay* 函数功能: 使用数码管显示* 输入: 无* 输出: 无******************************************************************************* /void DigDisplay(){unsigned char i;unsigned int j;for(i=0;i<8;i++){switch(i) //位选,选择点亮的数码管,{case(0):LSA=0;LSB=0;LSC=0; break;//显示第0位case(1):LSA=1;LSB=0;LSC=0; break;//显示第1位case(2):LSA=0;LSB=1;LSC=0; break;//显示第2位case(3):LSA=1;LSB=1;LSC=0; break;//显示第3位case(4):LSA=0;LSB=0;LSC=1; break;//显示第4位case(5):LSA=1;LSB=0;LSC=1; break;//显示第5位case(6):LSA=0;LSB=1;LSC=1; break;//显示第6位case(7):LSA=1;LSB=1;LSC=1; break;//显示第7位}GPIO_DIG=DisplayData[i];//发送段码j=10; //扫描间隔时间设定while(j--);GPIO_DIG=0x00;//消隐}}。