- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交通灯控制系统 知识点: 实际交通灯的控制系统的模拟实现方法 交通灯控制系统设计的Verilog HDL设计与实现 本章导读: 本章是实际生活交通灯控制系统的CPLD/FPGA模拟实现的一个综合实例。将一个大的系统分成一个个相对小的模块,并且用Verilog HDL来设计实现。详细地讲解各个模块的Verilog HDL源代码,以及在EDA软件下的仿真波形。读者通过本章的学习将很快掌握交通灯系统的精髓,并且能够很快将本章的设计应用于实际的设计中来完成自己的系统设计。 很显然,在实际的系统中,最主要是系统的可靠性。随着微电子技术、半导体制造工艺的飞速发展,可编程逻辑器件的可靠性得到了很到提高,同时在成本方面也得到了很好的控制。因此,选择可编程器件来实现交通灯非常具有实际价值。 交通灯系统中,能够保证在确定的时刻,倒计数数字显示能够及时变化,红黄绿灯能准确地变化。本章谈论的实例中,在绿灯亮了55s后将变化为黄灯在亮5s,然后实现十字马路的纵横路放行与禁行的切换控制。 根据5.1.1节对实际交通灯系统的功能描述,设计如图5-2所示的交通系统电路框图 图中,两组共4个数码管用来显示倒计时时间,用6个发光二极管来代替实际生活中的红黄绿交通信号灯,考虑到实际电路的需要,分别在可编程逻辑器件与数码管以及发光二极管之间放上限流电阻,以避免数码管及发光二极管由于电流过大而烧坏,当然也不能加太大电阻,以避免数码管及发光二极管的亮度不够。固定开关SW1实现交通警察人为监督交通秩序和无人自动控制交通秩序之间的切换,默认为高电平,即默认为开关置于高电平端,为自动控制模式,开关置于低电平时为人为监督控制模式。电动开关SW2用于整个系统的总复位,如系统出现故障时,就需要总复位,当然一般情况下,用可编程逻辑器件实现的交通灯系统,只要系统设计得合理,软件设计得可靠,不会出现故障,除非意外的操作和操作不当。 BCD码运算 二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16 种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 1、BCD码与十进制数的转换 BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如: 75.4=(0111 (0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5 注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。 例如当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。 又例如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 . 2、BCD码的格式 计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。 所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为: _ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。 组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010 3、BCD码的加减运算 由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于 计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。 解决的办法是对二进制加法运算的结果采用加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则: (1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。 (2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正. (3)低位修正结果使高位大于9时,高位进行加6修正。 两个组合BCD码进行减法运算时,当低位向高位有借位时,由于借一作十六与借一作十的差别,将比正确的结果多6,所以有借位时,可采用减6修正 法来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上,计算机中既有组合BCD数的调整指令,
文档评论(0)