突然想到的一个问题,但尝试了许久,没有得出一个结论。想来问问大神的做法,借以参考。
5条回答 默认 最新
- soar3033 2021-01-19 08:18关注
#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit PWM=P2^0;// P2.0输出pwm uchar flag;//用于标识亮度增大/减小 uchar v;//亮度值满值255 uchar flag2;//一秒标识 uchar count;//用于一秒计数 void main() { flag=1; flag2=0; count=0; v=0; TMOD=0x01;//定时器0工作方式1 TH0=0xf8;//赋初值定时 TL0=0x2f;//6MHz主频下4ms EA=1;//开总中断 ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1) { light(v); if(flag2){//串口发送亮度 flag2=0; send_byte(v); } } } void light(uint l) { PWM=1; delayus(l); PWM=0; delayus(1000-l); } void delayus(uint x) { while(x--); } void tim0() interrupt 1 { TR0=0;//赋初值时,关闭定时器 TH0=0xf8;//赋初值定时 TL0=0x2f; TR0=1;//打开定时器 if(flag){//每ms更改v值 v++; } else{ v--; } if(v>254){ flag=0; } if(v<1){ flag=1; } count++; if(count==250){//一秒计数 count=0; flag2=1; } } void send_byte(uchar by){ SBUF = by; while(!TI);//等待发送完毕 TI = 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
- ¥30 求解达问题(有红包)
- ¥15 请解包一个pak文件