资源简介
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个文件信息
- 上一篇:Nordic51822 被连接时打开广播
- 下一篇:寒假社会实践报告3000字
相关资源
- NModbus类库使用总结
- ModBus通讯DLL及说明文件
- Modbus通信协议(内附RTU+51单片机程序
- modbus tcp/ip通信client
- 串口调试助手V2.1,ModbusV1,BitBoy
- 基于FreeRTOS的FreeModbus移植
- Modbus主从站仿真程序
- 基于Atmega16湿度传感器源代码
- linux tcpmodbus服务端
- 使用modbus4j获取数据的源代码
- modbus dll
- 台达人机界面+台达PLC与第三方设备
- 基于ATmega16单片机的定时器中断秒表
- 2051modbus的通讯仿真PROTEUS
- CSharpModBusExample
- 全功能MODBUS-TCP从站仿真软件
- modbus RTU 的C51源程序单片机89S52编译器
- Delphi与仪表之间的MODBUS通讯
- atmega16输出pwm波形
- modbus从站仿真工具(带链接个数)
- 串口测试modbus-青智8720.zip
- 组态王MODBUS驱动常见问题
- modbus_rtu简单实现
- CodeSys如何实现Modbus通信
- stm32_实现Modbus,采用rtu,内含通信协
- 51与触摸屏modbus通讯
- Modbus Slave
- 关于FANUC数控系统的Modbus功能介绍
- 基于labview的modbus从站代码
- 基于51单片机的modbus rtu 通信测试程序
评论
共有 条评论