|
|
|
|
1.时间:显示及校时,时间为24小时制 2.日历:显示年月日,及设定功能;自动判定闰年,每个月的天数; 3.秒表:启动/停止/保持显示/清零; 4.闹钟:设定闹钟时间,由蜂鸣器闹铃。 利用开发板上提供的40MHz晶振时钟信号做脉冲,接与P183管脚; 还有一个11.0592MHz的时钟信号做扫描脉冲 管脚定义: Clr: 时间清零 : P94 Clr+Sclock: 秒表清零: P94+P96 Clr+Data: 年月日初始化: P94+P97 Clock: 闹钟显示: P95 Sclock: 秒表显示: P96 Data: 年月日显示: P97 H_add: 调整时间(小时): P99 M_add: 调整时间(分钟): P100 Clock+hclock: 调整闹钟小时: P95+P101 Clock+hclock: 调整闹钟分钟: P95+P102 Pause: 秒表暂停: P96+P103 Data+hclock: 调整年: P97+P101 Data+mclock: 调整月: P97+P102 Data+pause: 调整日: P97+P103 在具体程序实现时,发现VHDL语言语法的一些莫名其妙的问题: 1、信号量STD_LOGIC_VECTOR,STD_LOGIC类型等不允许赋初值 ,一旦赋初值,后面就不能改变。这样设计的理由? 2、尽管信号量有默认值,但在用之前假如没有赋值语句,就可 能报错! 3、关于信号上升沿的问题,自己在编程运用的过程中发现并非 所有信号都能用rising_edge()来做条件,即使你定义该信号时的情 况与时钟信号的定义是一样的,具体原因还不明白。 4、关于变量和信号量的问题:即使定义时用的是同一个数据类 型,例如整形INTEGER,但在具体用时却有不同的问题,尽管两者可 以赋值,但赋值后有可能会产生奇怪的问题,例如将信号量付给变 量,变量的很多运算可能会报错。 5、VHDL中的算术运算有一些奇怪的特性,对REM取余,MOD取 模等对操作数都有限制,但令人难以捉摸。不明白其中的原因。 6、VHDL中除法运算‘/’好像存在这样一个问题,例如a/b,如 果a为变量,则b必须是2的乘方数;而如果a是一个整型数值,则对b 没有该要求!这个问题对写程序产生很大的麻烦,不知为什么这样 设计,或者有无其他解决办法。 |


