收藏 分销(赏)

单片机 C语言 拖尾流水灯 含源码.doc

上传人:xrp****65 文档编号:7032431 上传时间:2024-12-25 格式:DOC 页数:3 大小:30.50KB
下载 相关 举报
单片机 C语言 拖尾流水灯 含源码.doc_第1页
第1页 / 共3页
单片机 C语言 拖尾流水灯 含源码.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
单片机拖尾流水灯 BY-零下21度de水 效果:同时亮5个LED,中间那个最亮,旁边两个渐暗。 原理:利用占空比调节LED亮度。 思路:占空比有两种调节方法,一种是固定脉宽,调节周期,一种是固定周期,调节占空比,该例程用得是前者。 观看效果: 该程序提供给大家参考,抛砖引玉,望大家做出更漂亮的效果。 C源码: #include <stc12c5a60s2.h> #define uchar unsigned char #define uint unsigned int #define LED P1 /*硬件为P1口输出,大家相应改一下*/ uchar i=0; uchar Position=0x01; /**/ void Delay(uchar n) { uchar i,j,k; for(i=n;i>0;i--) for(j=100;j>0;j--) for(k=100;k>0;k--); } void T0_INT(void)interrupt 1 { uchar dis_tmp; dis_tmp=Position; TH0=65432/256;/*定时器T0的中断时间就是固定脉宽,大家仔细看一下就会明白了*/ TL0=65432%256; if(i<100)i++; else i=0; LED=~dis_tmp;/*我的硬件设计是低电平点亮LED,就是灌电流~*/ if(i%10==0) /*调整周期,旁边第一盏灯的周期为脉宽的10倍*/ { dis_tmp|=dis_tmp<<1|dis_tmp>>1; LED=~dis_tmp; } if(i==0)/*旁边第二盏灯的周期为脉宽的100倍*/ { dis_tmp|=dis_tmp<<1|dis_tmp>>1|dis_tmp<<2|dis_tmp>>2; LED=~dis_tmp; } } void main(void) { uchar k,g; ET0=1; TMOD=0X01; EA=1; TH0=55532/256; TL0=55532%256; TR0=1; LED0=0; while(1) { for(g=20;g>0;g--) { for(k=7;k>0;k--) { Position<<=1; Delay(g); } for(k=7;k>0;k--) { Position>>=1; Delay(g); } } for(g=0;g<20;g++) { for(k=7;k>0;k--) { Position<<=1; Delay(g); } for(k=7;k>0;k--) { Position>>=1; Delay(g); } } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服