- 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)