单片机按键消抖程序:通过两位按键配合(最多按8次)控制全彩LED切换至27种组合色R、G、B三色,每色亮、灭、

单片机实训考核装置,单片机控制功能实训考核装置:上海硕博公司
SBDPX-238单片机控制功能实训考核装置
图片供参考,配置未含电脑
入门容易,简洁而不简单
为了使入门容易,我们采用简单易懂的版面设计,从最基本的一个跑马灯开始就让您无缝地切入
教学。别看实验台体积巨大,每个模块都如此轻巧,当你在教学时可以把任何一个模块带入课堂,
并且大部分的模块在保证安全的前提下反面是镂空的。这使得您可以让学生一目了然看到,并可
以触摸到,这点很重要。因为我们深知,感性认识的重要性。当然你可以放心安全问题,我们对
可能产生安全隐患的部分都做了防护。
人体工学,美观而舒适
传统的立式实验桌,多采用立式屏结构。这种结构使得学生操作大部分实验时需要站立,易于疲
劳,视角向前不利于思考。同时由于立屏的高度较高,学生上实验课时视线受遮挡,不便于
老师讲解。潜龙采用模块平放结构,使得视线趋于自然向下,如同平时读书写字。靠近用户侧又
略带倾斜,使得操作时更加方便。同时抬头时视线使得毫无遮挡。可以方便地听讲,老师亦可观 察实验情况。
注重细节,一见倾心的质感
严格采用光洁度,厚度都符合高品质要求的铝材。每块木板都真材实料,厚度都到达8mm或以上,
并进行了定制家具级的封边工艺。黑色的木纹与银色的经典组合,让您一见倾心,永恒经典。从桌子
的高度,到每个模块背后的处理,甚至各个孔的位置,潜龙都进行了精心的考虑。一切细致考虑只为
了能使更加美观,方便,耐用。
高度开放,激发创新 采用模块化设计,我们并不简单的,单独设计模块,而是将模块间联系,可能性,功能性做了
综合考虑,加上十多年的研发经验,使得模块日趋经典与开放。提供经典实验项目,我们
建议用户利用高度开放性的模块,设计出自己的实验项目。
贴近实际,易于拓展 通过十几年与用户市场沟通,获得了宝贵的实际经验。我们深知教学与实际生产结合的重要性。
所以不管是从实验项目的设计,还是特别设计了多达几十种的实训包。超声波,GPS,GSM,雾化器等
等一系列的打包模块。
易于管理,维护方便 设计了不同以往的漂亮柜子,如同您家里的家具般让人舒适,上乘的脚轮易于移动与固定。同
时可选配仪器放置隔板,资料放置隔板等贴心设计,让您轻松,漂亮地放置常用仪器与实验时需要
查询的资料。同时采用精致的小模块设计,单独故障不会导致整个系统的破坏。如有损坏,仅
需替换相应小模块即可,方便又省心。
型号及规格
采用符合人体工学的平斜面设计,所有模块平斜放于桌面固定槽内,实验视线同读书一样,自然往下,利于思考。同时解决传统立式结构的视线遮挡,无法看见教师教学的问题。工艺上采用优质铝材,16mm以上黑色木板,家具级封边工艺,带3个柜子,优质铰链,铝合金把手,带4个可锁式脚轮便于移动。
尺寸630*580*1140
采用铝合金结构,16mm以上黑色木板,家具级封边工艺,带4个脚轮,带电脑位,伸缩键盘托板。
51单片机主机模块
AT89S52芯片/在系统下载设计
DC±5V,±12V,24V&
仿真器模块
KEIL USB仿真器
(USB通讯接口,使用KEIL软件)
显示模块(AB共2块)
8位数码管动态显示
16×32点阵LED屏
128×64绘图液晶显示屏
1602字符型液晶显示屏
继电器模块
6路继电器(带驱动)
PS2键盘接口
8个独立键盘接口
8路8位开关量输入
4*4矩形键盘接口
ADC/DAC模块
0-5V模拟电压输出
8等级LED电平指示
有源时钟发生器
交直流电机控制模块
24V直流减速电机
220V交流减速电机
光电开关计数输出
步进电机控制模块
水平移动装置
闭环控制装置
传感器配接模块
4路传感器接口
16路光电隔离IO口
8255芯片,74LS245芯片
温度传感器模块
18B20/LM35
RS232通讯线
RS232通讯线
ISP编程电缆
智能物料搬运模块
传感器检测机构
限位保护功能
接供料机构
实验室共用气泵
实验指导1套
实验程序与配套软件
配套实验源代码,配套软件与工具
实训一 灯光闪烁实训
实训二 跑马灯实训
实训三 独立按键输入实训
实训四 光隔离输入输出实训
实训五 金属检测实训
实训六 动态数码管显示实训
实训七 矩阵键盘接口实训
实训八 继电器隔离控制实训
实训九 蜂鸣器演奏实训
实训十 8255芯片扩展IO实训
实训十一 字符型液晶显示模块控制实训
实训十二 液晶显示模块控制实训
实训十三 点阵L E D屏汉字显示实训
实训十四 AD转换实训
实训十五 DA转换实训
实训十六 LM35温度传感器采集实验
实训十七 单总线温度传感器采集实训
实训十八 交直流减速电机控制实训
实训十九 步进电机开环控制实训
实训二十 RS232通信实训
实训二十一 PS2键盘通信实验
实训二十二 智能物料搬运装置实训
、、、、、、、、、、、、、、、、、、、、、、、、、、、
:建议最佳浏览效果为分辨率
24小时客服热线电话:021-482206&功能:通过两位按键配合(最多按8次)控制全彩LED切换至27种【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:145,882贴子:
功能:通过两位按键配合(最多按8次)控制全彩LED切换至27种收藏
专业从事单片机开发的生产,具有高品质的研发团队和设备,产品高品质保证,10年生产开发经验,深受国内外合作伙伴信赖,你的明智选择!!
功能:通过两位按键配合(最多按8次)控制全彩LED切换至27种组合色(R、G、B三色,每色亮、灭、半亮三个状态,共27个状态)中的任意一种。切换至任意一种颜色按下两个按键的次数之和不能超过七次。注:为验收方便,半亮状态可用1Hz闪烁代替,闪烁是蜂鸣器按同样频率鸣叫。可靠性要求:操作过程容易掌握,不需对照表。操作可连续进行,不需要复位;按键效果可靠,对按键时间长短具有鲁棒性,程序运行过程中其他外设资源不受影响。
帮帮忙,实在不会
精通这个设计,加我
提防吧龄0年的小号,楼上!
有偿服务,宝宝交易,交易有保证
登录百度帐号后使用快捷导航没有帐号?
来自ValentinRuhry的创意,这哥们用整整500
51单片机驱动WS8212系列集成LED程序及电路图(任意色彩搭配流水灯设计方案)
本帖最后由 E-Man 于
01:37 编辑
据我所知对于广大单片机初学者来说,这个芯片是冷门的!So,最近闲着无聊,又不想更新之前写的帖子,闲来无事看到下面这个家伙,写个程序玩玩,ok,废话不多说,直接上内容,此帖程序内容属于原创,禁止淘宝商家盗用!否则必究!据我所知,网络上还没有这个芯片的51程序。当然,谁会闲着蛋疼51写这个程序。仅以此贴献给刚刚学会流水灯的孩子,学会这个就可以搞任意颜色搭配的流水灯了,而且根本不用考虑引脚个数(碎碎念:只用一个引脚就可以控制几百个以上的灯珠,每个灯珠颜色是255*255*255种)!!!视频还没有审批通过,刚上传!等通过后在后面补上连接。
另外:秉持一贯开源的精神&&...求评分!!!!
貌似从DOC文档中无法带进来图片,我也懒得上图片了,这个东东的资料可以去百度去搜。
/*******************************************************************************************/
/***************************************专用分割线*******************************************/
WS2812B51单片机驱动程序+电路图+视频展示
WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。
数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。
LED具有低电压驱动,环保节能,亮度高,散射角度大,一致性好,超低功率,超长寿命等优点。将控制电路集成于LED上面,电路变得更加简单,体积小,安装更加简便。
机械尺寸(单位mm)
数据传输方法:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png
代码如下:
/********************************************************/
/*作 者:Dyingstraw
/*修改日期:
/*版& & 本:V1.0
/*程序功能:用51单片机控制ws2812 RGB输出,显示全色彩
/*备& && &&&注:51单片机晶振24M
/********************************************************/
#include&reg52.h&
#include&intrins.h&
#define uchar unsigned char
sbit Send_Dat=P1^0;& && && && && &//数据输出,接IN脚
sbit Key=P1^1;& && && && && && && & //按键等待
sbit Send_Dat1=P1^2;& &//中断状态灯
uchar RGB_BUF[24];
void delay();
void delays();
void init();
uchar Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};& && &&&
//存储一个转化后的RGB2进制数&&共24bits
struct My_24bits& && && && && && &&&//结构体
{
& && & uchar G_VAL;& && && && && &&&//绿色&&0-255
& && & uchar R_VAL;& && && && && && &//红色 0-255
& && & uchar B_VAL;& && && && && && &//蓝色0-255
};
/*写入数据时序*/
void Send_A_bit(uchar VAL)
{
//& &&&Send_Dat=0;
& && & if (VAL==1)
& && & {
& && & //& &&&Send_Dat=0;
& && && && &&&Send_Dat=1;
& && && && &&&_nop_();
& && && && &&&//_nop_();
& && && && &&&Send_Dat=0;& && && && &//2.17us
& && && && &&&//_nop_();
& && & //& &&&Send_Dat=1;& && && && && &&&//2.17us
& && & }
& && & else
& && & {
& && & //& &&&Send_Dat=0;
& && && && &&&Send_Dat=1;
& && && && &&&//_nop_();
& && && && &&&//_nop_();
& && && && &&&Send_Dat=0;& && && &&&
& && && && &&&_nop_();
& && & //& &&&Send_Dat=1;
& && & }& && && &&&
& && &
}
/*发送24位字符(包含RGB信息各8位)*/
void Send_24bits(struct My_24bits RGB_VAL )& && && && && && && &
{
& && &
& && & for& &(i=0;i&8;i++)
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.R_VAL&&i&0x01;& && && && && && && && &&&//转化R_VAL
& && & }
& && && && &&&for& &(i=8;i&16;i++)
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.G_VAL&&(i-8)&0x01;& && && && && &//转化G_VAL
& && & }
& && && && &&&for& &(i=16;i&24;i++)& && && && && && && && && && && && && && && && && && & //转化B_VAL
& && & {
& && && && &&&RGB_BUF[i]=RGB_VAL.B_VAL&&(i-16)&0x01;& &&&
& && & }
& && & for (i=0;i&24;i++)
& && & {
& && && && &&&Send_A_bit(RGB_BUF[i]);
& && & }
& && &
}
/*主函数*/
void main()
{
& && & struct My_24bits a,b,c,d,e,f,g;
& && & a.R_VAL=0
& && & a.G_VAL=0x00;& && && && && && && & //1& && && && && && & 颜色顺序,下同
& && & a.B_VAL=0x00;
& & b.R_VAL=0x00;
& && & b.G_VAL=0& && && && && && && &&&//2
& && & b.B_VAL=0x00;
& && & c.R_VAL=0x00;
& && & c.G_VAL=0x00;& && && && && && && && &&&//3
& && & c.B_VAL=0
& && & d.R_VAL=0& && && && && && && && && &//4
& && & d.G_VAL=0
& && & d.B_VAL=0x00;
& && & e.R_VAL=0
& && & e.G_VAL=0x00;& && && && && && && && && &&&//5
& && & e.B_VAL=0
& && & f.R_VAL=0x00;
& && & f.G_VAL=0& && && && && && && && && && && & //6
& && & f.B_VAL=0
& && & g.R_VAL=0& && && && && && && && && && && & //7
& && & g.G_VAL=0
& && & g.B_VAL=0
& && & init();
& && & while(1)
& && & {
& && & Send_Dat=0;
& && & Send_24bits(a);
& && & Send_Dat=0;& &P0=0xF9;
& && & delays();
& && & while(Key==1);& && && && && && && && && && && && && & //按键等待,当Key=1时停止,等于0时七种颜色流水灯循环,下同(主要方便观察颜色)
& && & Send_24bits(b);
& && & Send_Dat=0;& && && & P0=0xa4;& && && && && &//共阴极数码管显示颜色顺序,下同
& && & delays();
& && & while(Key==1);
& && & Send_24bits(c);
& && & Send_Dat=0;& &P0=0xb0;
& && & delays();
& && & while(Key==1);
& && & Send_24bits(d);
& && & Send_Dat=0;& &P0=Led_Tab[4];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(e);
& && & Send_Dat=0;& &P0=Led_Tab[5];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(f);
& && & Send_Dat=0;& &P0=Led_Tab[6];
& && & delays();
& && & while(Key==1);
& && & Send_24bits(g);
& && & Send_Dat=0;& &P0=Led_Tab[7];
& && & delays();
& && & while(Key==1);
//& &&&PCON|=0x01;& && && && && && && & //空闲模式
& && && && &
& && & }
}
/*中断唤醒测试函数*/
void INT1_ISR(void) interrupt 2
{
& && & P2=1;
}
/*小延时函数*/
/*大概1S吧,随便写的*/
void delay()
{
uchar i,j;
& && & for (i=0;i&250;i++)
& && & {
& && && && &&&for (j=0;j&250;j++);
& && & }
}
/*大延时函数*/
/*十几秒*/
void delays()
{
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();
& && & delay();&&
& && & delay();
& && & delay();
& && & delay();
}
/*系统初始化*/
void init()
{
&&P0=0x00;
&&P1=0x00;
&&P2=0x00;
&&P3=0x00;
&&TCON=0x05;
&&TMOD=0x00;
&&TH0=0x00;
&&TL0=0x00;
&&TH1=0x00;
&&TL1=0x00;
&&T2CON=0x00;
&&RCAP2H=0x00;
&&RCAP2L=0x00;
&&IP=0x00;
&&IE=0x85;
&&PCON=0x00;
&&SCON=0x00;
}复制代码东西狠小,一支笔对比!引脚标注是错的,请忽略!
下图序号小时不正确!
集中颜色的图片,意思一下。最后一张是实物图,单片机应该看不到吧(这个图片不是这个程序的,另外的序号不一样)
IMG_651.jpg (28.31 KB, 下载次数: 10)
01:30 上传
IMG_705.jpg (20.2 KB, 下载次数: 4)
01:30 上传
IMG_718.jpg (36.61 KB, 下载次数: 6)
01:30 上传
IMG_805.jpg (31.55 KB, 下载次数: 6)
01:30 上传
IMG_921.jpg (40.69 KB, 下载次数: 5)
01:30 上传
马克笔画出来的,引脚标注是错误的!!!请自觉忽略!!
视频地址:&embed src=&http://player.youku.com/player.php/sid/XOTQ2MTg0NjA0/v.swf& allowFullScreen=&true& quality=&high& width=&480& height=&400& align=&middle& allowScriptAccess=&always& type=&application/x-shockwave-flash&&&/embed&
自己嗨,好无聊,感谢hai.yang20189评分!
本帖最后由 ianon 于
21:18 编辑
这个LED要求速率很高,用STC来做有点紧张,楼主还用了点技巧,赞
花了不少时间调时序吧,我刚好可以借鉴了
ianon 发表于
这个LED要求速率很高,用STC来做有点紧张,楼主还用了点技巧,赞
花了不少时间调时序吧,我刚好可以借鉴了
其实还行吧,51速率刚好够。现在用stm32写了一个控制器玩,有时间交流
楼主多才多艺,还能玩stm
调时序用了示波器吗?我是两眼一摸黑
ws2812.png (148.35 KB, 下载次数: 11)
WS2812时序图
09:17 上传
其实我们都被误导了,WS8212适应性很强,并不是一定要800K的速率,低速率也可以,只要调好占空比,我试过400K都能用
折腾了2天,输出波形还是不稳定,真应该用PWM输出来做
可恨的是我选的这个STC15L204竟然不带串口不带PWM,晕死了
ianon 发表于
折腾了2天,输出波形还是不稳定,真应该用PWM输出来做
可恨的是我选的这个STC15L204竟然不带串口不带PWM, ...
没有串口毕竟还是少见
Copyright &
Powered by原创STC15F104W3个按键控制3路PWM驱动全彩LED|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
/*程序说明*///P3.3-P3.5输出3路频率500hz占空比1%-99%可调方波////P3.0-P3.2有3个按键单独控制3路占空比输出长按加5%//短按加1%占空比#include &STC15F2K60S2.H&#include &intrins.h& #define uchar unsigned char#define uint unsigned intsbit red=P3^3;&& //红色LED输出口sbit green=P3^4; //绿色LED输出口sbit blue=P3^5;&&&& //蓝色LED输出口sbit k1=P3^0;&&&& //红色LEDpwm控制sbit k2=P3^1;&&&& //绿色LEDpwm控制sbit k3=P3^2;&&&& //蓝色LEDpwm控制uchar r_temp=1,g_temp=1,b_temp=1;&&//三色占空比数值缓存&&&&&&&&&&&&&&&&&&&&&&&&&&//定时器T2定时次数标志//延时函数,大约延时10ms. void Delay10ms()&&&&&&&&//@11.0592MHz{&&&&unsigned char i,&&&&i = 108;&&&&j = 145;&&&&do&&&&{&&&&&&&&while (--j);&&&&} while (--i);}//按键扫描程序void key(){&&uchar&&&&num1=0,num2=0,num3=0;&&if(k1==0)&&&&&&&&&&&&&& //按键K1处理程序&& {&&&& Delay10ms();&&&& if(k1==0)&&&&&& {&&&&&&&&if(r_temp&99)&&&&&&&&&&&& {&&&& &&&&&&&&&&&&&&r_temp++;&&&&&&&&&&&&&&while(!k1)&&&&&&&& &&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&num1++;&&&&&&//长按标志位加到10约100ms&&&&&&&&&&&&&&&&&&Delay10ms();&&&&&&&&&&&&&&&&&&if(num1==10&&r_temp&95) &&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&& r_temp+=5;&&&&&&&&&&&&&&&&&&&& num1=0;&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&if(r_temp&=95) r_temp=1;&&&&&&&&&&&&&&&& }&&&&&&&&&&&&}&&&&&&&&else r_temp=1;&&&&&&&& &&&&&&&&}&&&&}&&&& &&if(k2==0)&&&&&&&&&&&&&& //按键K2处理程序&& {&&&& Delay10ms();&&&& if(k2==0)&&&&&& {&&&&&&&& if(g_temp&99)&&&&&&&&&& {&&&&&&&&&&&& g_temp++;&&&&&&&&&&&& while(!k2)&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&& num2++;&&&&&&&&&&//长按标志位加到10约100ms&&&&&&&&&&&&&&&&&& Delay10ms();&&&&&&&&&&&&&&&&&& if(num2==10&&g_temp&95)&&&&&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&g_temp+=5;&&&&&&&&&&&&&&&&&&&&&&&&&&num2=0;&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&& if (g_temp&=95) g_temp=1;&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&&&else g_temp =1;&&&&&& }&&&&}&&if(k3==0)&&&&&&&&&&&&&&&&&&&&&& //按键K3处理程序&&&&{&&&&Delay10ms();&&&& if(k3==0)&&&& {&&&&&& if(b_temp&99)&&&&&&&&&& {&&&&&&&&&&&&b_temp++;&&&&&&&&&&&&while(!k3)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&& num3++;&&&&&&&& //长按标志位加到10约100ms&&&&&&&&&&&&&&&& Delay10ms();&&&&&&&&&&&&&&&& if(num3==10&&b_temp&95)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&& b_temp+=5;&&&&&&&&&&&&&&&&&&&& num3=0;&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&& if(b_temp&=95) b_temp=1;&&&&&&&&&&&&&&&&}&&&&&&&&&& }&&&& else b_temp =1;&&&&&&}&&&&} }//定时器T0 16位自动模式定时1ms 控制灯灭时间void InitTimer0() interrupt 1&&// 1毫秒@11.0592MHz{&&&&&&&&IE2 = 0x00;&& //关闭定时器2中断&&&&AUXR=0XE4;&&&&//关闭定时器2计数&&&&TL0 = 0xCD;&&&&TH0 = 0xD4;&&&&red=1;&&&&green=1;&&&&blue=1;&&&&flag=1; &&&&AUXR=0xF4;&&&&&&&&//开启定时器2计数&&&&IE2=0x04;&&&&&& //开启定时器2中断允许}//定时器T2 16位自动模式定时10us&&&&控制等亮时间void InitTimer2() interrupt 12&&&&//&&&& 10微秒@11.0592MHz{&&&&&&&&flag++;&&&&T2L = 0x91;&&&&&&&&//设置定时初值&&&&T2H = 0xFF;&&&&&&&&//设置定时初值&&&&if(r_temp==flag) red=0;&&&&if(g_temp==flag) green=0;&&&&if(b_temp==flag) blue=0;}void init(){&&&&AUXR =0XE4;//设置定时器0和2为1T模式&&&&TMOD= 0x00;&&&&TL0 = 0xCD;&&&&TH0 = 0xD4;&&&&T2L = 0x91;&&&&&&&&//设置定时初值&&&&T2H = 0xFF;&&&&&&&&//设置定时初值&&&&EA = 1;&&&&ET0 = 1;&&&&TR0 = 1;}&&&&void main(){&&
init();while(1)&& {&& key();&& }}
赞助商链接
楞是没有看懂.
赞助商链接
没图,,,,,,,,最好配上图
没图,,,,,,,,最好配上图
:没图,,,,,,,,最好配上图 ( 21:28) 3个按键3路LED驱动,引脚作用定义开头都注明了
这个可以有,
留个记号!正研究这个呢
第2行,15F104哪里来的P1口
:第2行,15F104哪里来的P1口 ( 11:00) 多谢提醒,原理是89s51单片用的,买了2片stc15f104w,移植了一下,说明忘记改了,已经烧录测试了
:第2行,15F104哪里来的P1口 ( 11:00) 哈,我也看到了!正要说呢!!
赞,留下记号,多多学习
楼主你能把这程序改写成频率可调吗,我现在很需要这样的程序,谢谢
w型号用得人还不多,楼主买这个片子是为了用掉电定时器吗
内容这个不错
:w型号用得人还不多,楼主买这个片子是为了用掉电定时器吗 ( 14:03) 只会玩简单的51,,看这个封装比较小,想diy个无线接收的解码部分
:楼主你能把这程序改写成频率可调吗,我现在很需要这样的程序,谢谢 ( 15:55) 这个单片机外部资源没了,加个按键根据按键次数改变定时器0的处置就可以了,定时器0是控制频率的
楼主好,其实我想要的是一个占空比和频率可调的信号发生器程序,输出口只要一个就好了,当然如能改成有频率显示的更好,如能帮忙改好请发,先谢了
这个有意思,慢慢看看
昨天用51单片机写了一个1922HZ的PWM 占空比可调50步用来控制直流电机玩玩。
留个脚印!谢谢分享!
我用89系列采用端口赋值单键驱动LED有七钟颜色,楼主能试着写个15f104w 的pwm单键控制三色PWM吗?因为这样可以省下2个端口用来干别的事,比如驱动蜂鸣器发声。因为看到有人用STM8最初和我一样的,后来人家改成PWM后有14种颜色,而且是单键控制的。长按5秒后会10分钟变一种颜色。
我也写了个同样的程序....... 不过没有那么复杂.....过两天发上来.....现在这个电脑上没有.
原创内容,谢谢分享!
上图看看效果
谢谢分享,能用的设置
:我用89系列采用端口赋值单键驱动LED有七钟颜色,楼主能试着写个15f104w 的pwm单键控制三色PWM吗?因为这样可以省下2个端口用来干别的事,比如驱动蜂鸣器发声。因为看到有人用STM8最初和我一样的,后来人家改成PWM后有14种颜色,而且是单键控制的。长按5秒后会10分钟变一种颜色。&( 08:56)&看到有人用STM8最初和我一样的,后来人家改成PWM后有14种颜色能告知从哪里看到的吗?谢谢!我最近急需这样的,如果你能解决的话,请联系我QQ:
led是共阴还是共阳
内容应该是炒的,没看清楚
大神们,你们好!这个程序用在我的LED电源调光时,调到40%的电流后就直接到100%了,即是40%后不可调,用555做的就由0~100%连续可调,是否这个程序频率太高(500Hz),555的是250Hz以下。大神们帮忙将这个程序改成频率250Hz以下的试试,谢谢了。
/*我不服*/#include &STC15F104E.H&#define uchar unsigned char#define uint unsigned int#define LED_R P32#define LED_G P33#define LED_B P34bit d,r,g,b,s;uchar c,p;void init_PWM(){&&&&d=1;&&&&s=1;&&&&c=0x00;&&&&p=0x01;}void ctrl(){&&&&if(p&=c)&&&&{&&&&&&&&LED_R=r;&&&&&&&&LED_G=g;&&&&&&&&LED_B=b;&&&&}&&&&else&&&&{&&&&&&&&LED_R=1;&&&&&&&&LED_G=1;&&&&&&&&LED_B=1;&&&&}}void pwm_osc(){&&&&&&&&if(c==0x00)&&&&{&&&&&&&&dd=1;&&&&}&&&&if(c==0xff)&&&&{&&&&&&&&dd=0;&&&&}&&&&if(dd==1)&&&&{&&&&&&&&c++;&&&&}&&&&if(dd==0)&&&&{&&&&&&&&c--;&&&&}&&&&ctrl();}void pwm(){&&&&uint i,j;&&&&j=0;&&&&{&&&&&&&&while(s)&&&&&&&&{&&&&&&&&&&&&if(p==0x00)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&d=1;&&&&&&&&&&&&}&&&&&&&&&&&&if(p==0xff)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&d=0;&&&&&&&&&&&&}&&&&&&&&&&&&if(d==1)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&i=t;&&&&&&&&&&&&&&&&for(i;i&0;i--)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&pwm_osc();&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&p++;&&&&&&&&&&&&}&&&&&&&&&&&&if(d==0)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&i=t;&&&&&&&&&&&&&&&&for(i;i&0;i--)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&pwm_osc();&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&p--;&&&&&&&&&&&&}&&&&&&&&&&&&if(p==0)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&s=0;&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&s=1;&&&&}}void main(){&&&&init_PWM();&&&&r=0;&&&&g=0;&&&&b=0;&&&&t=1000;&&&&while(1)&&&&{&&&&&&&&r=0;&&&&&&&&g=0;&&&&&&&&b=0;&&&&&&&&pwm();&&&&&&&&r=0;&&&&&&&&g=1;&&&&&&&&b=1;&&&&&&&&pwm();&&&&&&&&r=0;&&&&&&&&g=0;&&&&&&&&b=1;&&&&&&&&pwm();&&&&&&&&r=1;&&&&&&&&g=0;&&&&&&&&b=1;&&&&&&&&pwm();&&&&&&&&r=1;&&&&&&&&g=0;&&&&&&&&b=0;&&&&&&&&pwm();&&&&&&&&r=1;&&&&&&&&g=1;&&&&&&&&b=0;&&&&&&&&pwm();&&&&&&&&r=0;&&&&&&&&g=1;&&&&&&&&b=0;&&&&&&&&pwm();&&&&}}
谢谢分享资料
可直接驱动吗?
这个例子对学习PWM很有帮助.
查看完整版本: [--
Powered by
Time 0.070469 second(s),query:5 Gzip enabled

我要回帖

更多关于 单片机按键电路 的文章

 

随机推荐