www.qpwy.net > vErilog按下按键LED灯亮,再按下LED灯灭,如此循环

vErilog按下按键LED灯亮,再按下LED灯灭,如此循环

熄灭了一下说明是检测到断码F0的,为什么马上有亮了,那就很简单了if(buffer的值是F0) //检测到断码 led = 熄灭; else //不再发送断码或者你的buffer值已经更新 led = 点亮;熄灭时间是根据你的buffer的值持续为F0的时间来判断的,松开后,

这个程序可以不用时钟,即使使用时钟你这个方法也是不对的; 正确的做法:如果按键a低表示按下,那么只需要判断a的上升沿然后加一次就可以了,同时你需要一个复位按键用来复位;具体程序如下,已仿真,完全正确;请给分,有不明白

按键低电平有效,led灯低电平时亮.按键按下亮,松开灭.程序较简单,为组合逻辑电路,没有按键防抖功能.module led(led,key);input key;output led;reg led_out;always@(key) if(!key) led_out=1'b0; else led_out=1'b1;assign led=led_out;endmodule

定义一个位变量temp,每按下一次,位变量temp取反一次.当temp为0时,让LED灯闪烁,当temp为1时让LED灯灭

按一次1亮,再按一次灭我自己写的检测管脚==0,然后去抖,等待释放什么的都写上了,不过效果是,当按着的时候有效果,放开就没效果了(恢复原来状态).也就是让他亮,按着就亮,放开就灭了.我需要的是1个按键分别让5个led成流水灯

#include<reg51.h> sbit KEY = P3^3; sbit LED = P3^6; void delay20ms(void) { unsigned char a,b; for(b=146;b>0;b--) for(a=67;a>0;a--); } main() { KEY = 1; while(1) { if(KEY==0) { delay20ms(); //消除按键抖动 if(KEY==0) { while(KEY==0); //等待按键放开 LED = ~LED; } } } }

用if语句编写 然后按键取反 弄个延时做按键防抖 画流程图来设计 应该能行 相信自己哈!

这个程序太简单了哦. 比如你的按键是p2.0,灯是p2.1的话程序如下: org 1000h lcall keyscan sjmp $ keyscan: push acc mov a,p2 jb acc.0,here lcall delay mov a,p2 jb acc.0.here cpl p2.1 here: ret delay: mov r6,20 delay1: mov r7,200 delay2: nop nop nop djnz r7,delay2 djnz r6,delay1 ret

设个寄存器做计数器alway(条件1满足)beginif count=xxx,对应4秒 count=0else count=count+1 endalways(条件1满足)beginled=1count=0 endalways(clk)if(count=XXX;对应0.5秒)led=0else led=1

1.先看仿真是否OK.2.再把你要看的信号接到逻辑分析仪或者示波器上,在你说的那种情况下,看看是什么信号没有起来.FPGA/CPLD调试的思路主要是看data path上的信号,慢慢查总归可以查到的

网站地图

All rights reserved Powered by www.qpwy.net

copyright ©right 2010-2021。
www.qpwy.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com