九齐NY8A051F单片机呼吸灯

这篇具有很好参考价值的文章主要介绍了九齐NY8A051F单片机呼吸灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、呼吸灯简介

呼吸灯是指LED灯通过单片机控制实现由亮到暗的逐渐变化,就和人体呼吸一样。这里我们单片机要用到定时器和PWM占位来实现这项功能。

二、NY81051F定时器的定义

	DISI();					//静止所以中断
	TMR0=256-160;			//初始化寄存器,160*6.4=1024us,1MS进一次中断
	T0MD = C_PS0_TMR0 | C_PS0_Div;	//将TMR0分配,20M/10/64-->156.25KHz  (timeBase=6.4us),INT Falling Edge
	INTE=C_INT_TMR0;		//启动定时器
	ENI();					//开启中断

三、PWM(脉冲宽度调制)

通过改变脉冲宽度来改变电压的输出,T=1/f,T是周期,f是频率。如果频率为50Hz,那么一个周期就是20ms,一秒就有50次PWM周期。一个周期如下图,脉冲时间所占周期的时间的比例就是占空比。比如要实现呼吸灯则亮90%灭10%,亮80%灭20%,亮70%灭30%,依次循环。

ny8a051程序,单片机,嵌入式硬件 

四、程序编写(项目创建和参数设置请查看我上一篇文章)

#include <ny8.h>
#include "ny8_constant.h"
#include "typedefs.h"
#define uchar unsigned char
#define uint unsigned int

 
static unsigned char dir;
static unsigned int count=0,timer=0,value1=0;

#define IO_LED_R PORTBbits.PB4    //红色
#define IO_LED_G PORTBbits.PB2	  //绿色
#define IO_LED_B PORTBbits.PB1    //蓝色    

void initialize(void)
{	
	IOSTB = C_PB4_Output| C_PB2_Output | C_PB1_Output;	
	DISI();					
	TMR0=256-160;			
	T0MD = C_PS0_TMR0 | C_PS0_Div;	
	INTE=C_INT_TMR0;		
	ENI();				

}
void led(void)
{
	    while(1) 
	   {
        if(count > 50) 
        {
            count = 0;			
            if(dir == 1) 
            	value1++;
            else 
            	value1--;
        }
        if(timer > 1000)
            timer = 0;
        if(value1 == 1000)
            dir = 0;
        if(value1 == 0)
            dir = 1;
        if(timer < value1)
		{	
			CLRWDT();
           IO_LED_R=0;
           IO_LED_G=0;
           IO_LED_B=0;
		}
        else
		{
		CLRWDT();
           IO_LED_R=1;
           IO_LED_G=0;
           IO_LED_B=0;
		}
    }
}
void main(void)
{	 
	initialize();//初始化定时器
	led();//PWM控制LED的亮灭
}

void isr(void)  __interrupt(0)
{
		count++;
		timer++;		
}

五、 结果

呼吸灯的演示文章来源地址https://www.toymoban.com/news/detail-842623.html

到了这里,关于九齐NY8A051F单片机呼吸灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机2:单片机介绍

    Single Chip Microcomputer 将以下部件全部做到一块集成电路芯片中:CPU(进行运算和控制)、RAM(数据存储)、ROM(程序存储)及输入输出设备。 RAM:主要存储数据,掉电会丢失数据。 ROM:掉电不丢失 51单片机是所有兼容Intel 8031指令系统的单片机的统称。 我的单片机板子参数:

    2024年02月06日
    浏览(46)
  • 单片机入门——什么是单片机?

    单片机就是一个集成电路芯片,是一个采用超大规模集成电路技术将具有数据处理能力的CPU,存储器,IO端口,定时器等功能集成到一个硅片上,具有小而完整的微型计算机系统。 就是将复杂的计算机系统 进行裁剪,然后封装起来,可以实现一定功能的微型小电脑。 单片机

    2024年02月07日
    浏览(35)
  • 【单片机】单片机入门指南

    一、概述 单片机(Microcontroller,简称MCU)是一种集成了微处理器、存储器、时钟、IO端口和外设接口等的集成电路芯片。它可以通过编程实现各种控制、运算等功能,常用于自动化控制、家电、智能仪表等领域。 二、单片机的种类和选型 根据位数、功能、性能等不同指标,

    2024年02月10日
    浏览(29)
  • 【单片机】单片机存储器结构

    单片机内部存储结构分析    我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢

    2024年04月12日
    浏览(33)
  • c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

      后面这个是接收端代码  另外发现一个奇怪的现象:如果把T1口改为T0口没有办法正常模拟

    2024年02月13日
    浏览(34)
  • 51单片机实现贪吃蛇(清翔单片机)

    目录 一、创作背景 二、实现过程 1.一些声明与定义 2.键盘扫描 3.定时器中断 5.蛇的初始化 6.蛇体的移动 7.食物的创建 8.食物的检测和身体的增长 9.检测死亡 10.总代码 总结 由于大一的一个小作业,花了10天完成了这个小项目,中途克服了很多困难,发此文章以作纪念。 这些

    2024年02月08日
    浏览(32)
  • 51单片机:设计一单片机双机通信电路

    鱼弦:CSDN内容合伙人、CSDN新星导师、全栈领域优质创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 设计一单片机双机通信电路。要求编程实现:甲单片机系统中的按键可以控制乙单片机系统中的数码管(MPX8)动

    2024年02月20日
    浏览(40)
  • 51单片机的基础知识——单片机简介

    仅用于学习交流!!! 仅用于学习交流!!! 仅用于学习交流!!! 单片机,即单片微型计算器,简称为单片机。用专业术语来讲单片机就是在一块硅片上集成了微处理器、存储器以及各种输入/输出(I/O,I指的是input,O指的是output)口的芯片。通俗点讲,单片机是一块集

    2024年02月03日
    浏览(42)
  • c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图

         单片机一般采用中断方式接受数据,这样便于及时处理 其中发送数据段采用的是查询方式,接收端采用了中断方式, 要注意的地方有: 在中断处理函数int_0()内,处理数据前要先关闭中断,否则中断可能会不断传过来, EA=0; 然后退出中断处理函数前恢复中断处理能力:

    2024年02月13日
    浏览(36)
  • 【单片机】51单片机串口的收发实验,串口程序

    这段代码是使用C语言编写的用于8051单片机的串口通信程序。它实现了以下功能: 引入必要的头文件,包括reg52.h、intrins.h、string.h、stdio.h和stdlib.h。 定义了常量FSOC和BAUD,分别表示系统时钟频率和波特率。 定义了一个发送数据的函数send,该函数将数据发送到串口,等待数据

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包