数码管显示实验报告.docVIP

  • 0
  • 0
  • 约2.43千字
  • 约 7页
  • 2026-02-11 发布于江苏
  • 举报

三、数码管显示实验

一、实验目的及要求

理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管J3641AS通过DP1668与CPU的接线图。

理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,CPU的P2口接左、右两个DP1668的控制引脚,各DP1668接LED的数据线hgfedcba,在4

连排8段数码管显示编程的日期。

熟悉结构后,自行编程左边四个数码管,显示分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,指定计时的开始值。

二、实验原理(图)

8段数码管一般由8个发光二极管(Llight-emittingdiode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。

三、实验设备(环境):

1、电脑一台

2、STC-ISP(V6.85I)烧写应用程序

3、Keil应用程序

四、实验内容(算法、程序、步骤和方法):

#includeSTC15F2K60S2.h//此文件中定义了STC15系列的一些特殊功能寄存器

#includeintrins.h

#defineucharunsignedchar

#defineuintunsignedint

sbitTM1668R_DIO_H=P4^4; //左边数码管宏定义

sbitTM1668R_CLK_H=P2^0;

sbitTM1668R_STB_H=P2^1;

sbitTM1668L_DIO_H=P2^2; //左边数码管宏定义

sbitTM1668L_CLK_H=P2^3;

sbitTM1668L_STB_H=P2^4;

sbitLIGHT=P0^1;

ucharToday_data[8];

uinttemp,kk;

constuchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

voidSend_Data(uchardat,ucharn);

voidDIS_data_1668(uchardata1,uchardata2,uchardata3,uchardata4,ucharn);

/*******************************************************************************

*函数名:Send_Data

*函数功能 :TM1668发送一字节数据函数

*输入:无

*输出:无

******************************************************************************/

voidSend_Data(uchardat,ucharn)

{

uchari;

for(i=0;i8;i++) //1个字节

{

if(n==0)

TM1668R_CLK_H=0;

else

TM1668L_CLK_H=0;

if(dat(1i))

{

if(n==0)

TM1668R_DIO_H=1;

else

TM1668L_DIO_H=1;

}

else

{

if(n==0)

TM1668R_DIO_H=0;

voidTimer0Init(void) //25微秒@11.0592MHz

{

AUXR|=0x80; //定时器时钟1T模式 1T和12T模式选择

TMOD=0xF0; //设置定时器模式

TL0=0xEC; //设置定时初值

TH0=0xFE; //设置定时初值

TF0=0; //清除TF0标志

TR0=1; //定时器0开始计时

ET0=1; //使能定时器0IE.1

EA=1; //使能全局中断 IE.7

}

/*******************************************************************************

*函数名

文档评论(0)

1亿VIP精品文档

相关文档