资源简介

电子表Verilog编程 多功能电子表共有5种功能:功能1为数字钟;功能2为数字跑表;功能3为调时;功能4为闹钟设置;功能5为日期设置。除调时功能以外,电子表处于其他功能状态下时并不影响数字钟的运行。使用数字钟功能时,还可以通过按键快速查看当前的闹钟设置时间和当前日期。该电子表利用EDA实验平台的扬声器整点报时和定时报时,设置3个按键分别作为功能键和调整键。

资源截图

代码片段和文件信息

#include 
#include “system.h“
#include “altera_avalon_pio_regs.h“
#include “alt_types.h“
#include “sys/alt_timestamp.h“

void initial(void);
//void time_test(void);
void delay_ms(unsigned int num);
void delay_us(unsigned long int num);    
void wr_data(alt_u8 data); 
void wr_comand(unsigned int comand); 

int main()
{
    alt_u8 hour=0xf0minute=0xffsecond=0xffmode=0xff;
    
    // time_test();
    initial();
    while(1)
    {
        hour=IORD_ALTERA_AVALON_PIO_DATA(PIO_2_base);   //读数据
        minute=IORD_ALTERA_AVALON_PIO_DATA(PIO_3_base);
        second=IORD_ALTERA_AVALON_PIO_DATA(PIO_4_base);
        mode=IORD_ALTERA_AVALON_PIO_DATA(PIO_5_base);
        
        wr_comand(0x80);   //第一行
        wr_data(0xa0);
        wr_data(0xb0);
        wr_data(0xc0);
        wr_data(0xd0);
        wr_data(0xe0);
        mode=mode<<4;
        wr_data(mode);
        
        wr_comand(0xc8);   //第二行
        wr_data(hour);
        hour=hour<<4;
        wr_data(hour);
        wr_data(0xe0);
        
        wr_data(minute);
        minute=minute<<4;
        wr_data(minute);
        wr_data(0xe0);
        
        wr_data(second);
        second=second<<4;
        wr_data(second);
    }
}

/*void time_test(void)
{
    unsigned long int time1;
    unsigned long int time2;
    unsigned long int freq;
    if(alt_timestamp_start()<0)
    {
        printf(“register failure!“);
    }
    else
    {
        time1=alt_timestamp();
        delay_us(40);
        time2=alt_timestamp();
        freq=alt_timestamp_freq();
        printf(“time1=%ldtime2=%ld\n“time1time2);
        printf(“该延迟函数运行所花费的时间是:%f“(double)(time2-time1)/freq); 
    }
}*/
    
void initial(void)                        //控制器初始化
{
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_base0x18);    //18
    delay_ms(20);
    wr_comand(0x30);
    delay_us(120);
    wr_comand(0x30);
    wr_comand(0x30);
    wr_comand(0x38);                       //功能设置:2X16
    wr_comand(0x0c);                       //关显示
    wr_comand(0x01);                       //清屏
    delay_ms(2);
    wr_comand(0x06);                       //设定输入方式,AC自动减一,画面不动
}

void delay_ms(unsigned int num)            //ms延时
{
    unsigned int i;
    unsigned long int j;
    for(i=0;i    {
        for(j=0;j<7135;j++)
        {
            ;
        }
    }
}

void delay_us(unsigned long int num)                  //us延时
{   
    unsigned long int i;
    unsigned int j;
     for(i=0;i    {
        for(j=0;j<6;j++)
        {
            ;
        }
    }
}

void wr_comand(unsigned int comand)                   //写指令
{
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_basecomand);
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_base0x18);     //18
    delay_us(1); 
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_base0x1c);     //1c
    delay_us(1);
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_base0x18); 
    delay_us(50);
}

void wr_data(alt

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1263  2012-04-02 16:51  MyTimer\MyTimer.qpf

     文件       3738  2012-04-05 09:02  MyTimer\MyTimer.qsf

     文件       1591  2012-04-03 20:46  MyTimer\db\mux_0kb.tdf

     文件        137  2012-04-02 16:51  MyTimer\db\MyTimer.db_info

     文件     580994  2012-04-05 09:34  MyTimer\db\MyTimer.cmp.cdb

     文件        174  2012-04-05 09:33  MyTimer\db\MyTimer.tis_db_list.ddb

     文件       1479  2012-04-03 20:19  MyTimer\db\MyTimer.(0).cnf.cdb

     文件        753  2012-04-03 20:19  MyTimer\db\MyTimer.(0).cnf.hdb

     文件      38766  2012-04-05 09:31  MyTimer\db\MyTimer.rtlv_sg_swap.cdb

     文件         46  2012-04-05 09:33  MyTimer\db\MyTimer.cmp.ecobp

     文件       2194  2012-04-05 09:34  MyTimer\db\MyTimer.asm.qmsg

     文件      63987  2012-04-05 09:33  MyTimer\db\MyTimer.fit.qmsg

     文件     199697  2012-04-05 09:34  MyTimer\db\MyTimer.tan.qmsg

     文件     187638  2012-04-05 09:31  MyTimer\db\prev_cmp_MyTimer.map.qmsg

     文件        966  2012-04-05 09:32  MyTimer\db\MyTimer.cbx.xml

     文件      63987  2012-04-05 09:31  MyTimer\db\prev_cmp_MyTimer.fit.qmsg

     文件       2194  2012-04-05 09:31  MyTimer\db\prev_cmp_MyTimer.asm.qmsg

     文件       8943  2012-04-05 09:31  MyTimer\db\MyTimer.lpc.txt

     文件     202843  2012-04-05 09:31  MyTimer\db\prev_cmp_MyTimer.tan.qmsg

     文件      11383  2012-04-05 09:31  MyTimer\db\MyTimer.lpc.html

     文件     456894  2012-04-05 09:31  MyTimer\db\prev_cmp_MyTimer.qmsg

     文件     187638  2012-04-05 09:32  MyTimer\db\MyTimer.map.qmsg

     文件          4  2012-04-05 09:33  MyTimer\db\MyTimer.cmp.logdb

     文件      20280  2012-04-03 20:46  MyTimer\db\MyTimer.(2).cnf.cdb

     文件       9123  2012-04-03 20:46  MyTimer\db\MyTimer.(2).cnf.hdb

     文件        436  2012-04-05 09:31  MyTimer\db\MyTimer.smp_dump.txt

     文件      26596  2012-04-05 09:31  MyTimer\db\MyTimer.(1).cnf.cdb

     文件      15646  2012-04-04 17:55  MyTimer\db\MyTimer.(43).cnf.cdb

     文件       3716  2012-04-05 09:31  MyTimer\db\MyTimer.(1).cnf.hdb

     文件       1025  2012-04-05 09:31  MyTimer\db\MyTimer.lpc.rdb

............此处省略472个文件信息

评论

共有 条评论