基于单片机与模数转换器的仿真实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文的仿真实例见网址
/plus/view.php?aid=218
014
1,基于51单片机与ADC0832的仿真
I 以下是.h文件
1. include.h文件
#ifndef __INCLUDES_H__
#define __INCLUDES_H__
#include
#include "SMC1602.h"
#include "adc0832.h"
#include "delay.h"
#endif
2. SMC1602.h文件
#ifndef __SMC1602_H__
#define __SMC1602_H__
#include
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>> //<<<<<<< //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #define LcdInitiate() WriteInstruction(0x01);WriteInstruction(0x38);WriteInstr uction(0x0C); //初始化 //WriteInstruction(0x01); 清屏 //WriteInstruction(0x38); 显示模式设置:8位2行5x7点阵//WriteInstruction(0x0C); (0x0C)文字不动,光标自动右移//WriteInstruction(0x0F); 显示器开、光标开、闪烁开 #define RS P2_0 //寄存器选择信号: // 0--数据寄存器; // 1--指令寄存器。 #define RW P2_1 //读写信号: // 1--读LCD; // 0--写LCD。 #define E P2_2 //片选信号,当输入下降沿信号时, //执行指令或传送数据。 #define BF P0_7 //忙碌标志位,,将BF位定义为P0.7引脚 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>> //< 写数据命令>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void WriteInstruction(unsigned char dictate); //1602写命令函数 void WriteAddress(unsigned char x); void WriteData(unsigned char dat); //把1个数据写入LCD。 #endif 3. adc0832.h文件 #ifndef __adc0832_H__ #define __adc0832_H_ #include unsigned char A_D(); #endif 4.delay.h文件 #ifndef __delay_h__ #define __delay_h__ #include #define uint unsigned int #define uchar unsigned char void delay1ms(); void delaynms(uchar n); void delay(uint i); #endif II .c文件 1. main.c文件 #include "includes.h" uchar code digit[10]={"0123456789"}; //定义字符数组显示数字uchar code Str[]={"Volt="}; //说明显示的是电压 ///******************************************************** //以下是电压显示的说明2 //********************************************************* ///***************************************************** //函数功能:显示电压符号 //************************************************** void display_volt(void) { uchar i; WriteAddress(0x03); //写显示地址,将在第2行第1列开始显示 i = 0; //从第一个字符开始显示 while(Str[i] != '\0') //只要没有写到结束标志,就继续写 { WriteData(Str[i]); //将字符常量写入LCD i++; //指向下一个字符 } } ///***************************************************** //函数功能:显示电压的小数点 //*************************************************** void display_dot(void)