完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/**********************1000hz的pwm******************/
#include "reg52.h" #define uchar unsigned char #define uint unsigned int ***it flag=P1^3; ***it k1=P3^1; ***it k2=P3^0; uint number; uint speed=10; uint pwm=100; /**************************设置延时函数**********************/ void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } /***********************设置定时器0控制函数*****************/ void init() { TMOD=0X01; TH0=0XFF; TL0=0XF6; ET0=1; TR0=1; EA=1; } /***********************加速**********************/ void speed_add() { if(k1==0) { delayms(2); if(k1==0) { pwm+=speed; if(pwm>=100) { pwm=0; } } } } /************************减速************************/ void speed_dec() { if(k2==0) { delayms(2); if(k2==0) { pwm-=speed; if(pwm<=0) { pwm=0; } } } } void main() { init(); flag=1; while(1) { speed_add(); speed_dec(); if(number==pwm) { flag=!flag; } if(number>100) { flag=!flag; number=0; } } } void pwm_time() interrupt 1 { TH0=0XFF; TL0=0XF6; number++; } |
|
|
|
只有小组成员才能发言,加入小组>>
3048 浏览 9 评论
2748 浏览 16 评论
3264 浏览 1 评论
8592 浏览 16 评论
3854 浏览 18 评论
9455浏览 3评论
738浏览 3评论
375浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
369浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2101浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-3 07:47 , Processed in 0.659326 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号