`
cyw
  • 浏览: 33230 次
  • 来自: 广州
社区版块
存档分类
最新评论

页面倒计时器

 
阅读更多

    接通电源之后,系统进行初始化,按下设置键S1或者S2,LCD进入时间设置界面,先使用齿轮确定要设定的位置(时、分、秒),按下s1按键进行确认,开始设置这个位置,可以使用齿轮电位计进行对该位置的数进行加减,设置数值,设置完成之后按下S1键进行确认,然后重新使用齿轮电位计确定要设置的位置,重复上述操作。全部设置完成之后,按下S2确认完成设置时间。接着进入倒计时器界面。计时完成之后,LED闪烁,提醒。

<!--EndFragment-->

技术难点

4.2.1 汉字LCD显示

运用汉字字库生成软件,将汉字依据大小尺寸变化,进行字模转换,转换成可以在LCD显示的16进制的数组。并在需要的是使用Dogs102x6_imageDraw()函数,将汉字在LCD上显示出来。

4.2.2 时间的设置

在时间的设置上,想过两个方案。

第一个方案是,运用触摸键 TI_CAPT_Slider(&slider)这行代码来进行对时间的设置,完成对时间的时、分、秒的移动以及各位数值的加减。但是由于资料不足,对触摸键的机理了解的不足,程序出现的严重的BUG,比如按下一次触摸键,数值会一直在不断地在进行加减。

第二个方案是,运用齿轮电位计Wheel_getPosition()函数以及Wheel_getValue()函数,通过获取齿轮电位计的采样值,来进行对时间的赋值。显然这一方案,并没有出现很大的问题。当然,由于Wheel_getValue()的返回值过大,我对其处于一定的数值,将之返回的采样值限定在一定的范围以内。

4.2.3 倒计时函数

对于倒计时,为了简化程序,提高代码的重用性,我将倒计时的过程,简化成为一个函数countDowm()函数。在其中,遇到一个很大的问题就是,由于缺少C语言的程序的编写经验,忽视了uint8_t数据类型是一种无符号整型,没有所谓的负数概念,故导致显示出现乱码。所以,将该数据类型改为int整型。

4.2.4 设置时间时数值的显示

为了区别设置的数值与不被设置的数值,特写了一个函数shining(),运用反色,将之与其他数值进行区别。

4.2.5 按键被按下与否

按键S1、S2的按下与否,是由buttonPress这一变量决定的,当buttonPress为0时,表示未被按下;当buttonPress为1时,表示已被按下。而按键每一次被按下,系统会自动给buttonPress赋值1.所以,每次按下按键之后,我们都应该给buttonPress赋值0,为下一次的按键按下与否判断,做好准备。

 

 

附录 源程序

1.主函数

#include <stdint.h>

#include "msp430.h"

#include "HAL_PMM.h"

#include "HAL_UCS.h"

#include "HAL_Board.h"

#include "HAL_Buttons.h"

#include "HAL_Cma3000.h"

#include "HAL_Dogs102x6.h"

#include "HAL_Menu.h"

#include "HAL_Wheel.h"

#include "LaunchpadDef.h"

#include "LPM.h"

#include "MassStorage.h"

#include "Mouse.h"

#include "PMM.h"

#include "lab.h"

uint16_t timeoutCounter;

 

// This image has been created by ImageDog using 'ti_bug.jpg'

static const uint8_t tiBug[] =

{

    0x42,    // Image width in pixels

    0x08,    // Image height in rows (1 row = 8 pixels)

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,

    0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x08, 0x00, 0x00, 0x0f, 0xcf, 0xcf, 0xcf, 0xcf,

    0xcf, 0xc8, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,

    0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xc0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xfe, 0xc0, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x70, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,

    0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xf0, 0x00, 0x01, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0,

    0xf0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x80, 0x00, 0x0e, 0xfe, 0xfe, 0xfe,

    0xfe, 0xfe, 0xfc, 0x80, 0x00, 0x0e, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xe0, 0xc0, 0x80,

    0x80, 0x80, 0xc0, 0xc0, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x01, 0x01, 0x01,

    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0xfe,

    0xfc, 0xf8, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff,

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xe0, 0xc0, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,

    0xc0, 0xf0, 0xf0, 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

};

 

 

void main(void)

{

    uint8_t contrast = *((unsigned char *)contrastSetpointAddress);            //读取FLASH中对比度值

    uint8_t brightness = *((unsigned char *)brightnessSetpointAddress);        //读取FLASH中背光值

 

    // Initialize accelerometer offset from flash

    Cma3000_setAccel_offset(*((unsigned char *)accelXcalibrationAddress),     //初始化加速度偏移量

                            *((unsigned char *)accelYcalibrationAddress),

                            *((unsigned char *)accelZcalibrationAddress));

 

    // Stop WDT

    WDTCTL = WDTPW + WDTHOLD;                     //关闭看门狗

 

    // Basic GPIO initialization

    Board_init();                                 //初始化GPIO

 

    // Set Vcore to accomodate for max. allowed system speed

    SetVCore(3);                                  //设VCore为最大

 

    // Use 32.768kHz XTAL as reference

    LFXT_Start(XT1DRIVE_0);                       //利用LFXT1(32.768kHZ)作为时钟参考

 

    // Set system clock to max (25MHz)

    Init_FLL_Settle(25000, 762);                 //利用FLL(锁频环)将系统时钟设为最大25MHZ

 

    SFRIFG1 = 0;                                 //清中断标志

    SFRIE1 |= OFIE;                              //使能晶振失效中断

 

    // Globally enable interrupts

    __enable_interrupt();                        //使能全局中断

 

    // Setup real time clock

    //SetupRTC();                                  //设置实时时钟

 

    // Set up LCD

    Dogs102x6_init();                            //初始化LCD

    Dogs102x6_backlightInit();                   //背光初始化

 

    // Contrast not programed in Flash Yet

    if (contrast == 0xFF)                        //若当前FLASH中无对比度值,则将对比度值设为11(默认)

        // Set Default Contrast

        contrast = 11;

 

    // Brightness not programed in Flash Yet

    if (brightness == 0xFF)                      //若当前FLASH中无背光值,则将背光值设为11(默认)

        // Set Default Brightness

        brightness = 11;

 

    Dogs102x6_setBacklight(brightness);          //设置初始背光值

    Dogs102x6_setContrast(contrast);             //设置初始对比度值

    Dogs102x6_clearScreen();                     //清屏

 

    // Set up wheel

    Wheel_init();                                //初始化齿轮电位计

    Buttons_init(BUTTON_ALL);                    //初始化按键

    Buttons_interruptEnable(BUTTON_ALL);         //使能所有按键中断

    buttonsPressed = 0;                          //键值清零

 

    // Display TI logo

    Dogs102x6_imageDraw(tiBug, 0, 16);           //显示TI图案

 

    // Wait for button press

    while (!buttonsPressed)                     //等待按键被按下,或者超时退出等待

    {

        for (timeoutCounter = 0; timeoutCounter < 0xFFFF; timeoutCounter++)

        {

            if (buttonsPressed)

                break;

            __delay_cycles(1000);

        }

 

        //Timeout break

        break;                                   //超时退出

    }

    Dogs102x6_clearScreen();

    buttonsPressed = 0;

    //显示文字说明:

    Dogs102x6_stringDraw(3, 0, "   Welcome to    ", DOGS102x6_DRAW_NORMAL);

    Dogs102x6_stringDraw(4, 0, " MSP-EXP430F5529 ", DOGS102x6_DRAW_NORMAL);

    Dogs102x6_stringDraw(6, 0, "Wait for a moment", DOGS102x6_DRAW_INVERT);

    Dogs102x6_stringDraw(7, 0, "or press S1 | S2 ", DOGS102x6_DRAW_INVERT);

 

    // Wait for button press

    while (!buttonsPressed)                    //等待按键被按下,或者超时退出等待

    {

        for (timeoutCounter = 0; timeoutCounter < 0xFFFF; timeoutCounter++)

        {

            if (buttonsPressed)

                break;

            __delay_cycles(2000);

        }

 

        //Timeout break

        break;

    }

    Dogs102x6_clearScreen();

 

    // 主循环

    while (1)

    {

    lab();                               //试验程序

 

    }

}

 

 

2.lab()函数

 

#include <stdint.h>

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

#include "msp430.h"

#include "HAL_PMM.h"

#include "HAL_UCS.h"

#include "HAL_Buttons.h"

#include "HAL_Dogs102x6.h"

#include "HAL_Board.h"

#include "HAL_Menu.h"

#include "HAL_Wheel.h"

#include "MassStorage.h"

#include "mouse.h"

#include "descriptors.h"

#include "usb.h"                            // USB-specific functions

#include "UsbCdc.h"

#include "Demo_Cube.h"

#include "CTS_Layer.h"

#include "LaunchpadDef.h"

#include "Random.h"

 

#define LAC 10

#define JA 15

 

void showTime(uint8_t d1 ,uint8_t d2 ,uint8_t d3 ,uint8_t d4 ,uint8_t d5 ,uint8_t d6);

void timingCloseLED();

void shining(uint8_t where, uint8_t what,uint8_t stage);

void countDowm(uint8_t *what);

char aTo1(uint8_t what);

 

//static uint8_t stage = 0;

static const uint8_t hour[] =

{//宽高

  0x0c,

    0x02,     //即是说,一个中文字符,高0x02,宽0x0c

 

    //从汉子生成软件之中的拷贝来的数据,宽高:12X12

    0x7F,0x44,0x44,0x7F,0x00,0x10,0x12,0x11,0x10,0xFF,0x10,0x00,0xE0,0x40,

    0x40,0xE0,0x00,0x00,0x00,0x90,0x10,0xF0,0x00,0x00,/*"时",0*/

};

 

static const uint8_t minute[] =

{//宽高

  0x0c,

    0x02,     //即是说,一个中文字符,高0x02,宽0x0c

 

    //从汉子生成软件之中的拷贝来的数据,宽高:12X12

    0x04,0x08,0x34,0xC4,0x07,0x04,0x04,0xC4,0x37,0x08,0x04,0x00,0x00,0x10,

    0x20,0xC0,0x00,0x10,0x10,0x10,0xE0,0x00,0x00,0x00,/*"分",0*/

 

};

 

static const uint8_t second[] =

{//宽高

  0x0c,

    0x02,     //即是说,一个中文字符,高0x02,宽0x0c

 

    //从汉子生成软件之中的拷贝来的数据,宽高:12X12

    0x48,0x4B,0x7F,0x89,0x02,0x1C,0x00,0xFF,0x00,0x20,0x1D,0x00,0x80,0x00,

    0xF0,0x00,0x10,0x10,0x20,0x20,0x40,0x80,0x00,0x00,/*"秒",0*/

 

};

 

void lab(void)

{

    buttonsPressed = 0;

 

//The countdown设置倒计时

Dogs102x6_stringDraw(2, 4, "  Welcome to the countdowm " ,DOGS102x6_DRAW_NORMAL);

Dogs102x6_stringDraw(3, 0, "   Press the Button s1 or" ,DOGS102x6_DRAW_NORMAL);

Dogs102x6_stringDraw(4, 0, "s2 to set the countdowm!" ,DOGS102x6_DRAW_NORMAL);

 

    // Wait for button press

    while (!buttonsPressed)                     //等待按键被按下,或者超时退出等待

    {

        __delay_cycles(1000000);

    }

    Dogs102x6_clearScreen();

    buttonsPressed = 0;

 

//进入倒计时设定界面,一个一个的设定字符

//    uint8_t isOK = 0;/

    uint8_t where = 0;//0~5

    uint8_t what[6] = {0};//0~9

    uint8_t or = where;

//uint8_t sliderPosition = 0;

//uint8_t selection = 0;//选择

 

    Dogs102x6_charDraw(3, LAC,'0', DOGS102x6_DRAW_NORMAL);

    Dogs102x6_charDraw(3, LAC+6,'0', DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(hour, 3,LAC+JA);

Dogs102x6_charDraw(3, LAC+JA*2,'0', DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(3, LAC+JA*2+6,'0', DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(minute, 3,LAC+JA*3);

Dogs102x6_charDraw(3, LAC+JA*4,'0', DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(3, LAC+JA*4+6,'0', DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(second, 3,LAC+JA*5);

/**

 * 改成:

 * 先用齿轮确定要设定的位置

 * 再用s1确认

 * 接着进入加减,使用齿轮

 * 用s1确认

 * 在使用齿轮确定要设定的位置

 *

 * 安s2确认设定完成break

 */

Dogs102x6_stringDraw(5,0,"Press s2 to make true.",0);

    while(1){

    //确定齿轮电位计的位置

    if(Wheel_getPosition()>=0&&Wheel_getPosition()<=5)where = Wheel_getPosition();

 

    shining(where,what[where],1);//该位置反色

    if(or != where){

    shining(or,what[or],0);

    or = where;

    }

 

    //再用s1确认,接着进入加减,使用齿轮

    if(buttonsPressed & BUTTON_S1){

    buttonsPressed = 0;

    Dogs102x6_stringDraw(5,0,"Press s1 to make true.",0);

    while(1){

//      __delay_cycles(50000000);//延时,微秒

        if(Wheel_getValue()/100>=0&&Wheel_getValue()/100<=9)

        what[where] = Wheel_getValue()/100;

            shining(where,what[where],1);//该位置反色

            if(buttonsPressed & BUTTON_S1){

            buttonsPressed = 0;

            break;

            }

    }

    }

Dogs102x6_stringDraw(5,0,"Press s2 to make true.",0);

    if(buttonsPressed & BUTTON_S2){

    buttonsPressed = 0;

       Dogs102x6_clearScreen();

       Dogs102x6_stringDraw(3,0,"Do you want to quit?",0);

       Dogs102x6_stringDraw(4,0,"(yes:press s2;no:press s1)",0);

       if(buttonsPressed & BUTTON_S2){

        buttonsPressed = 0;

           Dogs102x6_clearScreen();

       break;

       }

//       else if(buttonsPressed & BUTTON_S1){

//        buttonsPressed = 0;

//           Dogs102x6_clearScreen();

//           showTime(what[0],what[1],what[2],what[3],what[4],what[5]);

//        Dogs102x6_stringDraw(5,0,"Press s2 to make true.",0);

//       continue;

//       }

    }

    }

//    uint8_t a[6] = {0,0,1,1,1,1};

    countDowm(what);

//    countDowm(a);

}

 

//显现倒计时时间,是设置时间之后的

void showTime(uint8_t d1 ,uint8_t d2 ,uint8_t d3 ,uint8_t d4 ,uint8_t d5 ,uint8_t d6){

char h1,h2,m1,m2,s1,s2;

h1 = aTo1(d1);

h2 = aTo1(d2);

m1 = aTo1(d3);

m2 = aTo1(d4);

s1 = aTo1(d5);

s2 = aTo1(d6);

 

    Dogs102x6_charDraw(3, LAC,h1, DOGS102x6_DRAW_NORMAL);

    Dogs102x6_charDraw(3, LAC+6,h2, DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(hour, 3,LAC+JA);

Dogs102x6_charDraw(3, LAC+JA*2,m1, DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(3, LAC+JA*2+6,m2, DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(minute, 3,LAC+JA*3);

Dogs102x6_charDraw(3, LAC+JA*4,s1, DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(3, LAC+JA*4+6,s2, DOGS102x6_DRAW_NORMAL);

Dogs102x6_imageDraw(second, 3,LAC+JA*5);

}

 

//开始倒计时

void countDowm(uint8_t *what){

int h1,h2,m1,m2,s1,s2;

int time = (what[0]*10+what[1])*3600+(what[2]*10+what[3])*60+what[4]*10+what[5];//以秒为单位

h1 = what[0];

h2 = what[1];

m1 = what[2];

m2 = what[3];

s1 = what[4];

s2 = what[5];

 

while(time>0||(h1<=0&&

h2<=0&&m1<=0&&

m2<=0&&s1<=0&&

s2<=0)){

showTime(h1,h2,m1,m2,s1,s2);

  __delay_cycles(50000000);//延时,微秒

time--;

s2--;

if(s2<0){

s2 = 9;

s1--;

}

if(s1<0){

s1 = 5;

m2--;

}

if(m2<0){

m2 = 9;

m1--;

}

if(m1<0){

m1 = 5;

h2--;

}

if(h2<0){

h2 = 9;

h1--;

}

if(h1<0){

h1 = 0;

}

}

 

uint8_t flag = 0;

Dogs102x6_clearScreen();

while(!buttonsPressed){

if(flag==0){

Board_ledOn(LED_ALL);

flag = 1;

}else if(flag==1){

Board_ledOff(LED_ALL);

flag = 0;

}

Dogs102x6_stringDraw(3,0,"  Time is out!",0);

  __delay_cycles(1000000);//延时,微秒

}

Board_ledOff(LED_ALL);

Dogs102x6_clearScreen();

}

 

//显现闪现的数字,参数:第几个位置闪现,闪现的数值

void shining(uint8_t where, uint8_t wha,uint8_t stage){

char what = aTo1(wha);

switch(where){

case 0:

Dogs102x6_charDraw(3, LAC,what, stage);

break;

case 1:

Dogs102x6_charDraw(3, LAC+6,what, stage);

break;

case 2:

Dogs102x6_charDraw(3, LAC+JA*2,what, stage);

break;

case 3:

Dogs102x6_charDraw(3, LAC+JA*2+6,what, stage);

break;

case 4:

Dogs102x6_charDraw(3, LAC+JA*4,what, stage);

break;

case 5:

Dogs102x6_charDraw(3, LAC+JA*4+6,what, stage);

break;

default:

break;

}

//if(stage==0)

//stage=1;

//else if(stage==1)

//stage=0;

}

 

//定时熄灭LED,2秒

void timingCloseLED(){

  __delay_cycles(2000);//延时,微秒

  Board_ledOff(LED_ALL);

}

 

//字符与数值的转换

char aTo1(uint8_t what){

switch(what){

case 0:

return '0';

case 1:

return '1';

case 2:

return '2';

case 3:

return '3';

case 4:

return '4';

case 5:

return '5';

case 6:

return '6';

case 7:

return '7';

case 8:

return '8';

case 9:

return '9';

}

}

<!--EndFragment-->

 

<!--EndFragment-->
0
0
分享到:
评论

相关推荐

    理想Web倒计时器的设计与实现

    然而,传统的JavaScript实现的倒计时器存在诸多局限性,比如无法防止页面刷新或关闭后重新计时、计时不够精确等问题。本文旨在探讨一种结合动态脚本(如ASP、PHP、JSP)与JavaScript技术的新型倒计时器设计方案,该...

    可定制flash倒计时器 带源码

    这种倒计时器的特点是可以自定义结束时间,从而在到达设定的时间点时触发特定的事件,如播放音频、显示信息或者跳转到其他页面。 ActionScript是Adobe Flash Professional中使用的编程语言,它是基于ECMAScript...

    JAVA倒计时器

    【JAVA倒计时器】是一种基于JAVA编程语言实现的简单计时工具,它主要用于实现从预设时间开始向后计算的倒计时功能。对于初学者来说,这是一个很好的实践项目,因为它涉及到基本的用户界面设计、事件处理以及时间管理...

    十位红色数码管的倒计时器

    3. **数码管倒计时器源码**:这个标签暗示了项目包含了实现上述功能的源代码,这可能包括了ASP.NET页面、C#后台代码以及可能的CSS样式文件。 在实际开发过程中,开发者可能会使用ASP.NET控件来创建用户界面,比如...

    vue倒计时刷新页面不会从头开始的解决方法

    然而,在实现倒计时功能时,常常会遇到一个问题:当页面刷新或者重新进入倒计时页面时,由于Vue组件的重新创建,倒计时会重新从头开始,这并不是我们想要的效果。 为了解决这个问题,我们需要在Vue中实现倒计时数据...

    ppt倒计时器使用方法

    ### PPT倒计时器使用方法详解 #### 一、引言 在制作演示文稿时,合理的时间管理对于确保演讲或展示顺利进行至关重要。PPT中的倒计时功能可以帮助演讲者更好地掌控时间,使演讲内容更加紧凑有序。本文将详细介绍...

    jquery倒计时器

    在`countdown.js`中,我们可以使用`$(document).ready()`函数确保页面加载完成后执行倒计时器的初始化。首先,定义倒计时的目标时间,这可以是一个日期对象或者字符串,例如: ```javascript var targetDate = new ...

    计时器(倒计时,正计时)demo

    4. **DOM操作**:为了在页面上动态更新计时器的显示,需要通过JavaScript对DOM(文档对象模型)进行操作,如获取或设置元素的文本内容、CSS样式等。layui提供了便利的DOM操作接口,简化了这部分工作。 5. **事件...

    android studio倒计时三秒欢迎页面

    在这个项目中,开发者可能使用了Android Studio的布局编辑器来设计欢迎页面的UI,包括倒计时按钮和相关的文本视图来显示倒计时。 倒计时功能通常通过两种方式实现:Handler和CountDownTimer。在这个Demo中,可能...

    理想Web倒计时器的设计与实现.doc

    本文总结了理想Web倒计时器的设计与实现,解决了传统倒计时器的缺陷,如页面刷新后重新开始倒计时、面关闭再打开后重新开始倒计时、无法做到全部客户端同步、计时不精确、无法对自身进行校正、一旦客户端修改了...

    jQuery实现的倒计时器

    在本项目中,`demo.html`文件很可能是展示倒计时器效果的页面,而`js`文件则包含了实现倒计时器逻辑的JavaScript代码。为了调试和测试,你可以打开`demo.html`,检查浏览器的开发者工具,查看网络请求和JavaScript...

    as.net倒计时器

    在ASP.NET中,倒计时器(Countdown Timer)是一个常用的功能,用于显示特定时间点之前的剩余时间。这种组件在各种场景中都很实用,比如在线考试、活动倒计时、拍卖结束提醒等。本篇文章将深入探讨如何在ASP.NET中...

    JS一个页面多个倒计时

    这可以通过选择器获取元素,然后将其内容设置为倒计时的显示形式。 ```javascript function bindCountdown(element, targetDate) { var countdown = new Countdown(targetDate); countdown.updateUI = function()...

    解决ios的app内H5页面倒计时在锁屏后停止或延迟的解决方案

    以上就是解决iOS App内H5页面倒计时在锁屏后停止或延迟的几种常见方法。实际开发中,应根据项目需求和资源选择最合适的方案,兼顾性能、用户体验和兼容性。例如,在酒店倒计时场景下,可能需要考虑到用户预订的精确...

    简单小程序倒计时器

    在倒计时器的实现中,JS负责获取用户输入的倒计时时间,将其转换为秒,并启动一个定时器进行实时更新。定时器每秒钟检查剩余时间并更新HTML中的显示。当倒计时达到0时,JavaScript会触发一个事件,例如播放音乐。...

    PPT中倒计时器的制作

    "PPT倒计时器的制作" PPT倒计时器是指在PowerPoint中创建一个倒计时器,能够实时动态地显示时间,并且能够在计时开始后自动播放。下面我们将详细地介绍如何在PPT中制作一个倒计时器。 首先,我们需要打开...

    倒计时十秒后跳转到其它页面源代码

    标题中的“倒计时十秒后跳转到其它页面源代码”是指一种常见的网页编程技术,用于在用户停留一定时间后自动重定向到其他页面。这种功能常用于广告页面、临时提示信息或需要用户确认的场景。下面我们将深入探讨这个...

    jquery实现倒计时,支持多行分别无限循环倒计时

    - 使用jQuery选择器选取需要展示倒计时的元素,如`$("#countdown")`。 - 创建一个`setInterval`函数,每秒更新倒计时的值,并将结果显示到页面上。 - 在更新过程中,要确保倒计时不会出现负数,当达到零时,如果...

    倒计时功能插件js

    本文将深入探讨“倒计时功能插件js”的相关知识点,帮助开发者理解如何利用JavaScript实现倒计时功能。 首先,倒计时功能是网页或应用中常见的一种交互元素,通常用于事件预告、促销活动等场景。在JavaScript中,...

Global site tag (gtag.js) - Google Analytics