ZKX's LAB

51单片机要求用按键实现两种模式的转换:第一种流水灯模式,第二种用8位按键控制LED的各个亮灭。 单片机串并转换流水灯

2020-07-21知识5

51单片机流水灯,怎么写程序能达到物理上改变灯连的引脚。 当然可以了。假设你原来操作的时P0口,灯D0接的是P0.0引脚灯D1接的是P0.1引脚灯D2接的是P0.2引脚灯D7接的是P0.7引脚为了好布线后,顺序乱掉了,比如灯D0接的是P0.3引脚【乱了】灯D1接的是P0.1引脚灯D2接的是P0.0引脚【乱了】灯D3接的是P0.2引脚【乱了】灯D4接的是P0.4引脚灯D5接的是P0.5引脚灯D6接的是P0.6引脚灯D7接的是P0.7引脚这时候,可以采用一个字节变量比如temp来替代原来P0,然后对这个变量做判断,比如switch(temp){case 0xfe:P0=0xf7;break;case 0xfd:P0=0xfd;break;case 0xfb:P0=0xfe;break;case 0xf7:P0=0xfb;break;}如何用单片机简单制作一个流水灯 工具:STC系列51单片机、串口转换器(USB转TTL 或232转TTL)材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。以下程序可以直接用Keil C 直接编译执行。可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。具体实现方法可以参考如下程序:includeincludedefine uint unsigned intdefine uchar unsigned charvoid delay(uint a);void main(){P1=0xfe;while(1){向左循环点亮LEDfor(i=0;i;i+){P1=_crol_(P1,1);左移一位,点亮下一位LEDdelay(55);}向右循环点亮LEDfor(i=0;i;i+){P1=_cror_(P1,1);右移一位,点亮上一位LEDdelay(55);}}}延时函数,延时a毫秒void delay(uint a){uint x,y;for(x=a;x>;0;x-)for(y=110;y>;0;y-);}51单片机,开关控制LED,开始流水灯,按一下停止,再按一下继续流水灯 采用中636f70793231313335323631343130323136353331333332623962断方式,程序如下:includeincludedefine uchar unsigned charsbit button=P3^2;uchar press=0;uchar luishui=0xfe;void Delay(uchar z){uchar x,y;for(x=z;x>;0;x-)for(y=255;y>;0;y-);}void main(){IT0=1;EX0=1;EA=1;while(1){if(press=1)P2=0xff;if(press=0){P2=luishui;luishui=_crol_(luishui,1);Delay(255);}}}X0_INT()interrupt 0{press+1;if(press=2)press=0;Delay(10);while(button=0);}试试看。求C51单片机 按键切换三种样式流水灯代码 按一下,状态1;长按两秒,状态2;一秒内按两次,状态3.51单片机,按键控制流水灯程序,懂的进。 假如,你的程序在执行key_scan();是触发了两次中断导致num>;20,你的显示函数将永远被跳过,你应该写成if(num>;20){num=0;display();}这是一个比较直观的错误,其他的没细看,你在试试如何设计一个单片机可控的循环流水灯? 1、发光二级管可以选择共阴极或者共阳极连接。2、最好用的驱动方法:查表法。(共阴到共阳转换只需增减一个符号:~,而且很方便改变流水单的花样。我做过51,stm32,arduino的)。3、如果只是简单的“流”一下,那么可以简单粗暴地用for+delay搞定。如果要增加一些别的花样,例如电位器控制“流速”,那就得打开定时中断,分配任务。51单片机的c语言 左移右移怎么用?想用来控制流水灯,请帮忙写个完整的c程序,参考下,端口随意 #include\"reg51.h\"/包含头文件define uchar unsigned charvoid delay02s(void)/延时0.2s子程序{unsigned char i,j,k;for(i=2;i>;0;i-)for(j=200;j>;0;j-)for(k=250;k>;0;k-);}void main(void)/主函数{uchar i,j;while(1)/死循环{j=0x01;j初始化为0x01,左移初始值for(i=0;i;i+)/for循环语句,完成8个循环{P1=~j;对变量j 中的值按位取反后,从P1口输出delay02s();延时0.2sj=j;左移1位}j=0x80;设置右移初始值j为0x80for(i=0;i;i+){P1=~j;delay02s();j=j>;>;1;右移1位}}}51单片机要求用按键实现两种模式的转换:第一种流水灯模式,第二种用8位按键控制LED的各个亮灭。 是分别两个程序吗?新闻 网页 微信 知乎 图片 视频 明医 英文 问问 更多? 我要提问 问题分类 特色 搜狗指南 。? 2020SOGOU.COM 京ICP证050897号51单片机流水灯程序 ^程序如下:includesbit led1=P2^21130;sbit led2=P2^1;sbit led3=P2^2;sbit led4=P2^3;sbit led5=P2^4;sbit led6=P2^5;sbit led7=P2^6;sbit led8=P2^7;void main(){int i,j;点亮第一个灯led1=1;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;延时1秒for(i=0;i;i){for(j=0;j;j){什么5261也不做}}点亮第二个4102灯led1=0;led2=1;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;点亮剩余的灯省略…1653…while(1);}扩展资料:流水灯几点说明:void:因为该延时函数不需要返回值,所以写为voiddelay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。():不需要传入参数,所以括号中为空至此我们可以把流水灯程序写为以下形式:

随机阅读

qrcode
访问手机版