• 大小: 76KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: modbus  atmega16  

资源简介

atmega16为核心的modbus通信系统

资源截图

代码片段和文件信息

//ICC-AVR application builder : 2004-10-27 10:06:29
// Target : M16
// Crystal: 8.0000Mhz

#include “main.h“

//初始化变量
void varInit(void)
{

}//void valInit(void)

void port_init(void)
{
    // 
 PORTA = 0xF0; //
 DDRA  = 0x00; //
 PORTB = 0xFF; //
 DDRB  = 0xFD; //
 PORTC = 0xFF;  //
 DDRC  = 0x00; //
 PORTD = 0xFF; //
 DDRD  = 0xFA; //
}//void port_init(void)


//Watchdog initialisation
// prescale: 2048K cycles
void watchdog_init(void)
{
 WDR(); //this prevents a timout on enabling
 WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
}//void watchdog_init(void)

void timer0_init(void)
{
 //初始化1ms 定时中断
 TCCR0 = 0x00;
 TIFR  = 0x00;  
 TCNT0 = 0x83;
 TCCR0 = 0x03;
}//void timer0_init(void)

//ADC initialisation
// Conversion time: 52uS
void adc_init(void)
{
 uint8 adcMux = 0;
 
 ADCSR = 0x00; //disable adc
 ADMUX = 0xc0 |(adcMux&0x0f); //select adc input 0   2.56V参考源
 ACSR  = 0x80;
 ADCSR = 0x85; //使能ADC 32分频
}//void adc_init(void)

//UART0 initialisation
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Even
void uart0_init(void)
{
 UCSRB = 0x00; //disable while setting baud rate
 UCSRA = 0x00;
 UCSRC = 0xA6;
 UBRRL = 51; //set baud rate lo
 UBRRH = 0x00; //set baud rate hi
 UCSRB = 0xD8;
 
 receEnable();
}

#pragma interrupt_handler uart0_rx_isr:12
void uart0_rx_isr(void)
{
  uint8 status;

 //uart has received a character in UDR
status = UCSRA;
    receBuf[receCount] = UDR;

    if(status & 0x1c)  //通信出错
      checkoutError = 2; //偶校验出错

   //testRegister = status;  
    receCount++;          //接收地址偏移寄存器加1
    receCount &= 0x1f;    //最多一次只能接收32个字节 
    receTimeOut = 10;    //通讯超时值
}

#pragma interrupt_handler uart0_tx_isr:14
void uart0_tx_isr(void)
{
 //character has been transmitted
    if(sendPosi < sendCount) 
    {
        sendPosi++;
        UDR = sendBuf[sendPosi];
    }
    else
    {
        receEnable();    //发送完后将485置于接收状态
        receCount = 0;   //清接收地址偏移寄存器
        checkoutError = 0;
    } 
}

//call this routine to initialise all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();
 watchdog_init(); 
 timer0_init();
 adc_init();
 uart0_init(); 

 MCUCR = 0x00;
 GICR  = 0x00;
 TIMSK = 0x01; //timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialised
}//void init_devices(void)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2605  2005-03-16 16:57  modbusM16\modbusM16\init.c

     文件        351  2005-03-16 17:20  modbusM16\modbusM16\init.dp2

     文件      16348  2005-03-16 17:20  modbusM16\modbusM16\init.lis

     文件       4166  2005-03-16 17:20  modbusM16\modbusM16\init.o

     文件       7361  2005-03-16 17:20  modbusM16\modbusM16\init.s

     文件       1860  2005-03-16 17:10  modbusM16\modbusM16\main.c

     文件        351  2005-03-16 17:20  modbusM16\modbusM16\main.dp2

     文件        679  2005-03-16 17:14  modbusM16\modbusM16\main.h

     文件      12924  2005-03-16 17:20  modbusM16\modbusM16\main.lis

     文件       3833  2005-03-16 17:20  modbusM16\modbusM16\main.o

     文件       5792  2005-03-16 17:20  modbusM16\modbusM16\main.s

     文件      13004  2005-03-16 17:19  modbusM16\modbusM16\modbus16.c

     文件        355  2005-03-16 17:20  modbusM16\modbusM16\modbus16.dp2

     文件        649  2005-03-16 17:19  modbusM16\modbusM16\modbus16.h

     文件      95034  2005-03-16 17:20  modbusM16\modbusM16\modbus16.lis

     文件      22362  2005-03-16 17:20  modbusM16\modbusM16\modbus16.o

     文件      39509  2005-03-16 17:20  modbusM16\modbusM16\modbus16.s

     文件      13004  2005-03-16 17:05  modbusM16\modbusM16\modbus16._c

     文件        649  2005-02-05 01:22  modbusM16\modbusM16\modbus16._h

     文件      12868  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.cof

     文件       9220  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.dbg

     文件       8539  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.hex

     文件         27  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.lk

     文件      60493  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.lst

     文件       1890  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.mak

     文件       4383  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.mp

     文件        841  2005-03-16 17:20  modbusM16\modbusM16\modbusM16.prj

     文件         81  2005-03-16 16:55  modbusM16\modbusM16\MODBUSM16.SRC

     目录          0  2007-11-25 16:40  modbusM16\modbusM16

     目录          0  2007-11-25 16:40  modbusM16

............此处省略3个文件信息

评论

共有 条评论