⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdt.c

📁 AVR开发板例子源代码
💻 C
字号:
//******************************************************************************
//                                                                             *
//    FileName   : WDT.c           ICCAVR V6.31A编译                           *
//    Function   : 借助跑马灯实验片内看门狗WDT的功能                           *
//    Date       : 2006-12-11                                                  *
//    Version    : 1.0                                                         *
//                                                                             *
//    Author     : 开关电源              hongtusy@163.com                      *
//    Company    : 电子信息技术咨询网    http://www.itsn.cn                    *
//                                                                             *
//***************************描述与记事*****************************************
//实验板的AVR程序,片内看门狗WDT的实验演示。
//说明:使用延迟程序,间歇轮点亮或关闭LED灯。
//具体电路可参照使用指南里的说明。PC口输出0,LED即点亮。
//实验板有两种方式使用条形LED,一种是配合LED,使用三极管驱动,
//这里使用后一种,LED公共阳极直接接电源正的驱动方式。
//使用器件:ATMEGA8535,可更换。          使用默认的片内RC振荡器,1MHz。
//使用的开关:SW1-1~8,SW6-2,SW2-6打开,SW3-8为系统复位端。
//记事:如果将喂狗程序关闭或超出需要喂狗的时间再喂,单片机就会复位。
//******************************************************************************
#include <iom8535v.h>             //头文件,ATmega8535单片机的寄存器定义
#include "macros.h"               //可以使用NOP()以及SEI()等指令.

typedef unsigned char  uchar;    //宏
typedef unsigned int   uint;

/************************************************
函 数 名:    DelayS()
功    能:    秒级延时函数
输入参数:     延迟时间/系统晶体
输出参数:    做相应的延迟处理
描    述:    /
***********************************************/
void DelayS (uint i)            //延时函数,参数i为延时时间
{
    uint j,k;               //双重延时
	for (j=0;j<i;j++)
	{
	    for (k=0;k<6000;k++)
		WDR();                  //喂狗
		//;
	}
}
//***********************main***************
void main(void)                       //主程序
{
    uchar i;                      //数据类型说明,无符号字符型常数
	
	WDTCR = 0b00001111;         //设置看门狗定时器并打开。定时时间是2.1s。
	
	DDRC=0xff;                    //PC口为输出
	i=255;                        //赋值语句
	while(1)                      //如果条件为真,1=真,所以死循环执行嵌套部分。
	{
	    if(i==0)                  //
		{
		      i=255;
		}
		PORTC=i;                  //led输出
		DelayS(2);
		i--;                      //led值递减
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -