信号变化控制led灯的亮灭,单片机c语言编程
需要了解单片机的那些基础知识,因为没时间把单片机从头学到尾,所以想尽快了解。
ps:我用的是AVR ATmega16
信号变化控制led灯的亮灭,单片机c语言编程
答案:3 悬赏:20 手机版
解决时间 2021-02-08 14:48
- 提问者网友:容嬷嬷拿针来
- 2021-02-08 01:05
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-02-08 02:11
首先要看Led灯和单片机的连接情况,如果你只是控制亮灭,只需要看单片机端口控制即可,关键是配置端口的DDRx方向寄存器和PORTx数据寄存器,比如端口A的0引脚控制一个灯,要配置它的输出高电平或是低电平以达到控制灯的亮灭,那就
灯亮:
DDRA |= BIT(0); //输出
PORTA |= BIT(0);//高电平
灯灭:
DDRA |= BIT(0); //输出
PORTA &= ~BIT(0);//低电平
其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的。
如果你要控制灯的亮暗程度,选择使用PWM输出来控制,你需要看定时计数器。
灯亮:
DDRA |= BIT(0); //输出
PORTA |= BIT(0);//高电平
灯灭:
DDRA |= BIT(0); //输出
PORTA &= ~BIT(0);//低电平
其余的就看你电路如何连接的,每个端口寄存器的每一位控制一个引脚,你可以查查芯片的数据手册,上边有个表格的。
如果你要控制灯的亮暗程度,选择使用PWM输出来控制,你需要看定时计数器。
全部回答
- 1楼网友:山有枢
- 2021-02-08 02:37
你不想从头学的话,会发现非常难学,真的。而且编程老容易犯一些低级的算法错误,甚至是一些很难发现的编译错误。
- 2楼网友:逐風
- 2021-02-08 02:31
#include <reg52.h> //52系列单片机头文件 #define uint unsigned int //宏定义 sbit led1=p1^0; //声明单片机p1口的第一位 void delay1s(); //声明子函数 void main() //主函数 { while(1) //大循环 { led1=0; delay1s(); //调用延时子函数 led1=1; delay1s(); //调用延时子函数 } } void delay1s() //子函数体 { uint i,j; for(i=500;i>0;i--) for(j=110;j>0;j--); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯