问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

AD 控制LED灯亮度 C语言程序怎么编写

发布网友 发布时间:2022-04-29 22:26

我来回答

1个回答

热心网友 时间:2022-06-24 13:28

/**52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生
P1.3接按键
K1,每按一次按键,方波占空比改变一次,依次为:1/10→2/10→……→9/10→1/10,如此循环**/
#include"reg52.h"
//包含52系列头文件
#define
uchar
unsigned
char
//定义
无符号字符型
#define
uint
unsigned
int
//定义
无符号整型
#define
TRUE
1
//定义
逻辑真
#define
FALSE
0
//定义
逻辑假
#define
th0
0xfc
//100Hz(10ms),占空比分母10,则其最小时间单位应该为10ms/10=1ms,故定时器T0定时时间为
1ms
#define
tl0
0x18
//1ms
at
12HMz
Fosc
#define
DutyDeno
10
//定义
占空比分母
为:10
sbit
WaveOut=P1^0;
//定义
方波输出
接口
sbit
Key1=P1^3;
//定义
按键Key1
接口
uchar
DutyNume=1;
//定义
占空比分子
变量,并初始化为
1(即
占空比
为:1/10)
void
Timer0()
interrupt
1
//定时器T0
中断
函数
{
static
uchar
ty_time=0;
//定义静态变量,作为
占空比
输出时间的参考值(1ms)
TL0=tl0;
TH0=th0;
//重赋定时器初值,1ms
ty_time=++ty_time%DutyDeno;
//该句等效于:ty_time++;ty_time%=DutyDeno;
if(ty_time<DutyDeno)
WaveOut=1;
//若计时时间小于
占空比分子,则输出应为
高电平
else
WaveOut=0;
//若计时时间大于
占空比分子,则输出应为
低电平
}
void
TimerInit()
//定时器初始化
函数
{
TMOD=0x01;
//T0
16位定时器
EA=1;
//允许系统中断
ET0=1;
//允许T0中断
TH0=th0;
TL0=tl0;
//1ms
初值
TR0=1;
//T0开始计时
}
void
KeyResp()
//按键响应
函数
{
static
bit
KeyDownFlag,KeyReadyFlag;
//定义
静态标志位,KeyDownFlag
按键按下标志,KeyReadyFlag
按键准备(响应)标志
if(!Key1)
//若按键Key1
被按下
{
KeyDownFlag=TRUE;
//按键按下标志
置位
KeyReadyFlag=TRUE;
//按键准备标志
置位
}
else
KeyDownFlag=FALSE;
//若按键Key1
无按下,则清空
按键按下标志
if(!KeyDownFlag
&&
KeyReadyFlag)
//若
按键已准备,且按键无按下(即
松手状态)
{
DutyNume++;
//占空比分子
加1
if(DutyNume==DutyDeno)
DutyNume=1;
//若
占空比分子=分母,则返回
1
KeyReadyFlag=FALSE;
//按键处理完毕,清
按键准备标志
}
}
void
main()
//主函数
{
TimerInit();
//调用
定时器初始化
函数
while(1)
//循环系统
{
KeyResp();
//调用
按键响应
函数
}
}
方波输出接口接灯;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 香蕉奶昔的做法有哪些? 如何用C语言编写一个LED灯渐变的程序 对于售卖自己朋友圈内容的人,虞书欣怎样追究法律责任? 怎样编写led控制程序 如何做香蕉奶昔 你最讨厌朋友圈里的哪些内容? 如何做香蕉奶昔? 我有32个LED灯,用C语言编写程序,现实一些图案或字体 会动的手机壁纸 怎么做香蕉奶昔 酒吧LED灯怎么编程 香蕉奶昔的做法? 汇编语言 编写 程序 LED 灯显示 不想让我最爱的人,了解我的近况对他的朋友圈可以关闭掉吗? 怎么把自己写的文章发表到百度网页? 朋友圈视频怎么都显示同一个人朋友圈视频一打开? 香蕉奶昔制作过程 怎样编写程序点亮led灯 LED灯条怎么编程 用单片机控制LED灯要怎样编写 哪里能下载到会动的明星手机壁纸 51单片机用汇编语言如何编写LED灯逐渐变亮在逐渐变暗啊 香蕉奶昔的制作方法窍门 怎样在朋友圈植入广告视频 怎么下载会动的手机壁纸 圣诞,元旦到了,公司的LED灯怎么写? 如何简单的做香蕉奶昔 王大陆在节目中说他会删他爸的微信,什么时候你会删除家人的微信? 微机原理汇编语言课程设计 中的LED 灯显示控制代码怎么写? 怎样制作香蕉奶昔? 怎样下载会动的手机壁纸 关于LED灯的具体内容 香蕉奶昔的做法 如何编写一个C程序使51单片机LED灯按下列要求点亮 怎么样做香蕉奶昔 香蕉奶昔制作方法 拼多多地址删除了怎么找回来 谁能找到拼多多上收货地址? 以三国为题材有哪些经典的单机游戏 oracle执行多条语句怎么写