几乎每届蓝桥杯单片机组比赛都會考到led模块;特别是对于近几年的省赛来讲led模块的使用显得更为灵活;即便led比较之简单,但是编写程序时还是很有可能出现错误
现在來给大家介绍动态verilog实现数码管显示的使用方法
1、对led模块进行操作,无需改变跳帽的位置
2、led模块相关原理图如下
- 在这里我只展示了led显示模塊的主要部分。其他是一些门电路大家可以参照官方给定的PDF。
- led显示代码的编写同样利用到了状态机的思想为了防止led模块对应的锁存器頻繁开关,我们可以定义一个led_flag标志位对其进行控制
- led显示模块的一般操作:一、将操作led点亮的verilog实现数码管显示代码送入锁存器。二、打开led囿关锁存器三、关闭led有关锁存器。
Q:为啥led的操作是先送数据再操作锁存器呢
A:在执行点亮led点亮的代码时,P0口可能会随时发生改变;若此时先打开锁存器再发送数据那么P0就有可能被多次赋值,从而导致led模块可能出现微亮现象因此,为了杜绝此类事情发生我们必须先送数据再操作相应锁存器。
总而言之在编写代码的时候必须避开这两个坑
- 循环不间断访问led模块
3、如下,附上led显示代码块
- 为了方便看到led顯示的效果,本文中还用到了独立按键模块;如需要深入了解独立按键模块的运行请点击下面的链接:
4、这只是led模块最基本的操作,led流沝灯等内容以后会提到
祝大家在蓝桥杯比赛中获得优异的成绩!
——南昌大学 电子183刘昊