本程序设计实现的功能有:一、通过计时器8253实现秒、分、时的计数,即实现电子表计时功能。
二、通过8259产生7#中断实现时分显示形态和秒显示形态的切换功能。
三、通过8259产生6#中断实现对秒、分、时的修改设置功能。
(电子表采用24小时制) 对于功能一,电子表计时,则是通过将8253的计数器2置初值为4CE9H(十进制11625),并使其工作于方式2,采用二进制计数,然后,将out2接到IRQ1上,通过8259产生1#中断,从而完成对时间的计数。
由于OPCLK的频率为1.1625MHz.,故在程序中需在1#中断计数为100次后才对秒进行加1操作。
对于功能二,形态切换,则是通过在内存中设置一显示形态标志DISHM(默认为时分显示形态,初值为1),然后在有7#中断产生时,将DISHM的值与1求异或来完成形态标志的设置(1为时分显示形态,0为秒显示形态)。
对于功能三,时间修改,则在不同的显示形态下有不同的操作。
如果当前电子表处于时分显示形态,则得注意了!因为在程序中又加入了一个设置形态标志STH(默认为时的设置,初值为1)。
如果是在第一次对时分进行修改的话,只需通过向8255的C口置数,然后产生6#中断,便完成了对时的设置(C口置数均为BCD码)。
但是此后设置形态已经变为对分的设置了,如果此次并没有对分进行修改,那下一次切换到时分显示形态并要修改时间时便是从分开始设置的,如果对分进行了设置(产生了6#中断),程序又自动转入对时的设置形态。
而对秒的设置则简单多了,只需将显示形态切换到秒显示形态,然后对8255的C口置数,再产生6#中断便可对秒进行修改了。
程序会对C口输入的有效性进行检测。
2015/2/21 1:58:18 233KB 微机原理 接口 电子表
1
1.输入按键开关设计为7个,密码位数要14位。
14位数字密码分成高7位(DH6….DH0)和低7位(DL6….DL0)两次输入,用数字逻辑按键开关预置,2.开锁输出信号out为1表示开锁,否则不开锁。
3.输出报警信号均为1有效,分为声报警Soundthealarm(扬声器)和lightalarm(发光管),4.14位数字密码分时操作,先预置高7位,然后再置入低7位,(顶层电路可参考图1)。
5.要求电路工作可靠,保密性强,开锁出错立即报警,(用声光两种方式同时报警)。
6.利用QuartusⅡ软件,混合设计方法进行设计、编译、并在FPGA芯片上实现。
7.14位密码自己设定。
比如:“10010010011100”。
本次设计采用本人学号后三位分别用BCD码+两位班号,其中一班是01,二班是10,三班是11四班是00作为设计密码。
2019/11/18 17:13:42 380KB EDA课设报告 FPGA 14位密码锁 密码可变
1
将verilog16进制的数经过算法转化成bcd码,用于数码管显示。
2019/6/25 20:17:41 3KB verilog 16进制 bcd码
1
很实用的Verilog实例!目录:王金明:《VerilogHDL程序设计教程》程序例子,带说明。
【例3.1】4位全加器【例3.2】4位计数器【例3.3】4位全加器的仿真程序【例3.4】4位计数器的仿真程序【例3.5】“与-或-非”门电路【例5.1】用case语句描述的4选1数据选择器【例5.2】同步置数、同步清零的计数器【例5.4】用initial过程语句对测试变量A、B、C赋值【例5.5】用begin-end串行块产生信号波形【例5.6】用fork-join并行块产生信号波形【例5.7】持续赋值方式定义的2选1多路选择器【例5.8】阻塞赋值方式定义的2选1多路选择器【例5.9】非阻塞赋值【例5.10】阻塞赋值【例5.11】模为60的BCD码加法计数器【例5.12】BCD码—七段数码管显示译码器【例5.13】用casez描述的数据选择器【例5.15】用for语句描述的七人投票表决器【例5.16】用for语句实现2个8位数相乘【例5.17】用repeat实现8位二进制数的乘法【例5.18】同一循环的不同实现方式【例5.19】使用了`include语句的16位加法器【例5.20】条件编译举例【例6.1】加法计数器中的进程【例6.2】任务举例【例6.3】测试程序【例6.4】函数【例6.5】用函数和case语句描述的编码器(不含优先顺序)【例6.6】阶乘运算函数【例6.7】测试程序【例6.8】顺序执行模块1【例6.9】顺序执行模块2【例6.10】并行执行模块1【例6.11】并行执行模块2【例7.1】调用门元件实现的4选1MUX【例7.2】用case语句描述的4选1MUX【例7.3】行为描述方式实现的4位计数器【例7.4】数据流方式描述的4选1MUX【例7.5】用条件运算符描述的4选1MUX【例7.6】门级结构描述的2选1MUX【例7.7】行为描述的2选1MUX【例7.8】数据流描述的2选1MUX【例7.9】调用门元件实现的1位半加器【例7.10】数据流方式描述的1位半加器【例7.11】采用行为描述的1位半加器【例7.12】采用行为描述的1位半加器【例7.13】调用门元件实现的1位全加器【例7.14】数据流描述的1位全加器【例7.15】1位全加器【例7.16】行为描述的1位全加器【例7.17】混合描述的1位全加器【例7.18】结构描述的4位级连全加器【例7.19】数据流描述的4位全加器【例7.20】行为描述的4位全加器【例8.1】$time与$realtime的区别【例8.2】$random函数的使用【例8.3】1位全加器进位输出UDP元件【例8.4】包含x态输入的1位全加器进位输出UDP元件【例8.5】用简缩符“?”表述的1位全加器进位输出UDP元件【例8.6】3选1多路选择器UDP元件【例8.7】电平敏感的1位数据锁存器UDP元件【例8.8】上升沿触发的D触发器UDP元件【例8.9】带异步置1和异步清零的上升沿触发的D触发器UDP元件【例8.12】延迟定义块举例【例8.13】激励波形的描述【例8.15】用always过程块产生两个时钟信号【例8.17】存储器在仿真程序中的使用【例8.18】8位乘法器的仿真程序【例8.19】8位加法器的仿真程序【例8.20】2选1多路选择器的仿真【例8.21】8位计数器的仿真【例9.1】基本门电路的几种描述方法【例9.2】用bufif1关键字描述的三态门【例9.3】用assign语句描述的三态门【例9.4】三态双向驱动器【例9.5】三态双向驱动器【例9.6】3-8译码器【例9.7】8-3优先编码器【例9.8】用函数定义的8-3优先编码器【例9.9】七段数码管译码器【例9.10】奇偶校验位产生器【例9.11】用if-else语句描述的4选1MUX【例9.12】用case语句描述的4选1MUX【例9.13】用组合电路实现的ROM【例9.14】基本D触发器【例9.15】带异步清0、异步置1的
2020/10/10 20:05:56 127KB Verilog 实例 经典
1
使用VHDL语言编写,在ISE运转环境下实现了EDA上机考试的五个程序并进行了相应的仿真其中包括8为BCD码加法器多数表决器,计数器,移位寄存器,序列检测等
2016/4/5 15:54:46 1.59MB 计数器 序列检测 移位寄存器
1
MAX7219中文资料MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。
其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。
只有一个外部寄存器用来设置各个LED的段电流。
MAX7221与SPI™、QSPI™以及MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。
一个方便的四线串行接口可以联接所有通用的微处理器。
每个数据可以寻址在更新时不需要改写所有的显示。
MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。
整个设备包含一个150μA的低功耗关闭模式,模仿和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。
2018/3/10 20:21:33 317KB MAX7219
1
交通灯控制系统,附实验要求及图纸利用单片机控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只七段LED数码管(不能使用BCD数码管)显示十字路口两个方向的剩余时间。
要求能用按键设置两个方向的通行时间(绿灯点亮的时间)和暂缓通行时间(黄灯点亮的时间),系统的工作符合一般交通灯控制要求。
2017/7/3 11:05:32 429KB 交通灯控制系统
1
使用两片74LS161和门电路设计一个六十进制计数器。
(1)画出连线图,输入用七段数码管7SEG-BCD显示出来。
(2)74LS161的CP脉冲由信号源中的DCLOCK提供,要求七段数码管的显示将从00→01→02→03→04→05→06→07→08→09→10→11→12→┄→57→58→59按十进制数循环变化。
使用两片74LS161和门电路设计一个六十进制计数器。
(1)画出连线图,输入用七段数码管7SEG-BCD显示出来。
(2)74LS161的CP脉冲由信号源中的DCLOCK提供,要求七段数码管的显示将从00→01→02→03→04→05→06→07→08→09→10→11→12→┄→57→58→59按十进制数循环变化。
2021/4/7 2:38:49 6KB proteus
1
(1)(第一道)编程实现将十进制数的ASCII码转换为BCD码要求:用E命令从键盘输入的五位十进制数的ASCII码已存放在0500H起始的内存单元中(25H、30H、32H、34H、65H),把它转换成BCD码后,再分别存入050AH起始的内存单元中。
若输入的不是十进制数的ASCII码,则对应的存放结果的单元内容为“FF”。
(2)(第四道)编程实现将存入0500H-0507H单元中的4个非紧缩BCD数(例:12,34,56,78),转换成二进制数码(用十六进制数表示),并存入起始地址为0510H-0517H的内存单元中。
1
51单片机中常用的多字节二进制码转压缩BCD码的示例代码(含清晰的正文),后3页使用代码编辑器重排版(对齐、美观)。
需要doc版本的可通过邮件zjyzfn@139.com联系。
2016/8/25 19:09:05 721KB 单片机 二进制 BCD 十六进制
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡