(1)A/D和D/A硬件设计
系统采用80C51为主控芯片,扩展具有8路输入的A/D接口芯片ADC0808完成两路电压采样,扩展一片I2C总线的D/A芯片MAX517控制输出电压值,扩展LCD1602用于电压值显示,扩展3个独立按键用于报警限、报警开关以及系统工作模式的设定。利用51单片机的串行接口连接RS232转换接口实现远程串行数据传送。可用串行工具实现与单片机通信,接收字符“0”,单片机发送0通道值,接收字符“1”,单片机发送1通道值,详细原理如图8.3所示。
(2)A/D和D/A系统软件设计
系统软件主要包括:主程序;A/D转换函数adc0808;LCD相关的显示函数:LCD初始化函数lcd_init,LCD写命令函数write_lcd_command,LCD写数据函数write_lcd_data,报警开关状态转换显示字符串函数alarmonoff_to_string,报警数据设置转换显示字符串函数alarmdata_to_string,采样数据转换显示字符串函数data_to_string,LCD显示字符串函数string;MAX517相关的D/A转换函数:I2C总线启动、应答和停止函数I2C_start、I2C_ack、和I2C_stop,I2C数据发送函数I2C_send,D/A转换函数dac_out;键盘扫描函数button_scan;串口通信函数com_send;系统初始化sys_init和延时程序delay。主程序实现系统状态监视并调用不同的功能,具体实现如图8.4所示。系统串行通信采用了中断方式实现。软件的详细实现,请阅读下面完整源代码。
(3)A/D和D/A系统软件设计
系统软件主要包括:主程序;A/D转换函数adc0808;LCD相关的显示函数:LCD初始化函数lcd_init,LCD写命令函数write_lcd_command,LCD写数据函数write_lcd_data,报警开关状态转换显示字符串函数alarmonoff_to_string,报警数据设置转换显示字符串函数alarmdata_to_string,采样数据转换显示字符串函数data_to_string,LCD显示字符串函数string;MAX517相关的D/A转换函数:I2C总线启动、应答和停止函数I2C_start、I2C_ack、和I2C_stop,I2C数据发送函数I2C_send,D/A转换函数dac_out;键盘扫描函数button_scan;串口通讯函数com_send;系统初始化sys_init和延时程序delay。主程序实现系统状态监视并调用不同的功能,具体实现如图8.4所示。系统串行通信采用了中断方式实现。以双通道监测系统为例,软件的详细实现请阅读下面完整源代码。系统完整的源代码如下。
图8.3 A/D和D/A系统硬件原理图
图8.4 A/D和D/A系统主流程图
(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。