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

📄 main.c

📁 AVR mega16的单片机程序
💻 C
字号:
/*****************************************************
* Copyright (c) 2002, VSUNTEK, R&D Dept.
* All rights reserved.
Project : Test Box
Version : 0.01
Date    : 2007-07-03
Author  : SunnyLu
Company : Sunlan
Comments: 控制计算机分立信号测试台 项目


修改记录:  修改 串口偶尔收发数据失败问题 2007 08 30


Chip type           : ATmega16L
Program type        : Application
Clock frequency     : 11.059200 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/



#include <iom16.h>
#include <stdio.h>
#include  <ina90.h>
#include  "Public.h"
#include  "main.h"


void main(void)
{

      Init_Port();
      Init_Time0();
      Init_Time1();
      Init_Time2();
#if  CYC  == M_110592
      USART_Init(5 );   /* Set the baudrate to 115200 bps using a 11.0592 MHz crystal */
#elif  CYC  == M_73728
      USART_Init(3 );   /* Set the baudrate to 115200 bps using a 7.3728 MHz crystal */
#elif  CYC  == M_8000
      USART_Init(12 );   /* Set the baudrate to 38400 bps using a 8.000000 MHz crystal */
#endif
      Init_Other();

      _SEI();   // 打开总中断
      Work_Mode = 0; // 为了开始灯而在此初始化为0
      Send_String("\n\r       控制计算机分立信号测试台    \n\r");
      Send_String("\n\r       北京中盛华旭电子科技有限公司    \n\r");
      Send_String("\n\r           \n\r");
      Send_String("\n\r       版本:0.01    2007年7月5日    SunnyLu\n\r");
         while(time_100ms<10)
      {
        WatchDog();
      }
      Init_Param();
      if(Work_Mode == 0xA2)
      {
         LED_Mode = 1;// host led display
         Send_String("\n\r  工作方式: 控制机模式         \n\r");
      }
      else if(Work_Mode == 0xA3)
      {
        LED_Mode = 2;// client led display
        Send_String("\n\r  工作方式: 检测机模式         \n\r");\
      }
      else
         Send_String("\n\r  工作方式: 未设定模式         \n\r");
      if(Send_Mode == 0xA0)
         Send_String("\n\r  发送模式 : 单次发送模式         \n\r");
      else if(Send_Mode == 0xA1)
         Send_String("\n\r  发送模式 : 连续发送模式         \n\r");
      else
         Send_String("\n\r  发送模式 : 未设定发送模式         \n\r");


while (1)
      {

        Usart_Process();

        if(Work_Mode==0xa2) //控制机模式
        {
            Host_Process();
        }
        else if(Work_Mode==0xa3 && Rec_Data == 1)//检测机模式
        {
          Rec_Data = 0 ;
          Device_Process();
        }
        WatchDog();

      }
}

⌨️ 快捷键说明

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