企业网站建设既可以外包给专业的网站建设服务公司,南宁论坛建站模板,微信公众号如何快速涨粉,一女被多男做的视频网站51单片机PCF8591数字电压表LCD1602液晶设计
( proteus仿真程序设计报告讲解视频#xff09;
仿真图proteus7.8及以上
程序编译器#xff1a;keil 4/keil 5
编程语言#xff1a;C语言
设计编号#xff1a;S0060 51单片机PCF8591数字电压表LCD1602液晶设计 1.主要功能程序设计报告讲解视频
仿真图proteus7.8及以上
程序编译器keil 4/keil 5
编程语言C语言
设计编号S0060 51单片机PCF8591数字电压表LCD1602液晶设计 1.主要功能讲解视频2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单下载链接资料下载链接可点击 1.主要功能
基于51单片机AT89C51/52与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用
基于51单片机的数字电压表设计
1.采用PCF8591实现AD采样功能;
2.采样电压范围0-5V;
3.用数码管显示转换后的实际电压值
4.显示保留小数点后两位。
需注意仿真中51单片机芯片是兼容的AT89C51,AT89C52是51单片机的具体型号内核是一样的。相同的原理图里无论stc还是at都一样引脚功能都是一样的程序是兼容的芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
讲解视频
仿真讲解代码讲解 51单片机PCF8591数字电压表LCD1602液晶 ( proteus仿真程序报告讲解 2.仿真
开始仿真
打开仿真工程双击proteus中的单片机选择hex文件路径然后开始仿真。 3. 程序代码
使用keil4或者keil5编译代码有注释可以结合报告理解代码含义。 IIC通信部分函数
/*******************************************************************起动总线函数
函数原型: void Start_I2c();
功能: 启动I2C总线,即发送I2C起始条件.
********************************************************************/
void Start_I2c()
{sda1; /*发送起始条件的数据信号*/_nop_();scl1;_nop_(); /*起始条件建立时间大于4.7us,延时*/_nop_();_nop_();_nop_();_nop_(); sda0; /*发送起始信号*/_nop_(); /* 起始条件锁定时间大于4μs*/_nop_();_nop_();_nop_();_nop_(); scl0; /*钳住I2C总线准备发送或接收数据 */_nop_();_nop_();
}/*******************************************************************结束总线函数
函数原型: void Stop_I2c();
功能: 结束I2C总线,即发送I2C结束条件.
********************************************************************/
void Stop_I2c()
{sda0; /*发送结束条件的数据信号*/_nop_(); /*发送结束条件的时钟信号*/scl1; /*结束条件建立时间大于4μs*/_nop_();_nop_();_nop_();_nop_();_nop_();sda1; /*发送I2C总线结束信号*/_nop_();_nop_();_nop_();_nop_();
}/*******************************************************************字节数据发送函数
函数原型: void I2C_SendByte(UCHAR c);
功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状态位进行操作.(不应答或非应答都使ack0) 发送数据正常ack1; ack0表示被控器无应答或损坏。
********************************************************************/
void I2C_SendByte(unsigned char c)
{unsigned char i;for(i0;i8;i) /*要传送的数据长度为8位*/{if((ci)0x80)sda1; /*判断发送位*/else sda0; _nop_();scl1; /*置时钟线为高通知被控器开始接收数据位*/_nop_(); _nop_(); /*保证时钟高电平周期大于4μs*/_nop_();_nop_();_nop_(); scl0; }_nop_();_nop_();sda1; /*8位发送完后释放数据线准备接收应答位*/_nop_();_nop_(); scl1;_nop_();_nop_();_nop_();if(sda1)ack0; else ack1; /*判断是否接收到应答信号*/scl0;_nop_();_nop_();
}/*******************************************************************字节数据接收函数
函数原型: UCHAR I2C_RcvByte();
功能: 用来接收从器件传来的数据,并判断总线错误(不发应答信号)发完后请用应答函数应答从机。
********************************************************************/
unsigned char I2C_RcvByte()
{unsigned char retc0,i; sda1; /*置数据线为输入方式*/for(i0;i8;i){_nop_(); scl0; /*置时钟线为低准备接收数据位*/_nop_();_nop_(); /*时钟低电平周期大于4.7μs*/_nop_();_nop_();_nop_();scl1; /*置时钟线为高使数据线上数据有效*/_nop_();_nop_();retcretc1;if(sda1)retcretc1; /*读数据位,接收的数据位放入retc中 */_nop_();_nop_(); }scl0; _nop_();_nop_();return(retc);
}
PCF8591部分通信函数 /************************************************************
* 函数名 : Pcf8591_SendByte
* 函数功能 : 写入一个控制命令
* 输入 : addr器件地址channel转换通道
* 输出 : 无
************************************************************/
bit PCF8591_SendByte(unsigned char addr,unsigned char channel)
{Start_I2c(); //启动总线I2C_SendByte(addr); //发送器件地址if(ack0)return(0);I2C_SendByte(0x40|channel); //发送控制字节if(ack0)return(0);Stop_I2c(); //结束总线return(1);
}/************************************************************
* 函数名 : PCF8591_RcvByte
* 函数功能 : 读取一个转换值
* 输入 :
* 输出 : dat
************************************************************/
unsigned char PCF8591_RcvByte(unsigned char addr)
{ unsigned char dat;Start_I2c(); //启动总线I2C_SendByte(addr1); //发送器件地址if(ack0)return(0);datI2C_RcvByte(); //读取数据0Ack_I2c(1); //发送非应答信号Stop_I2c(); //结束总线return(dat);
}
主函数
main()
{ init_1602();while(1){/********以下AD-DA处理*************/ PCF8591_SendByte(AddWr,0); //启动转换D[0]PCF8591_RcvByte(AddWr); //读转换完的数字信号ADC0 模数转换 范围是256-0vol_value PCF8591_RcvByte(AddWr); //0-256vol_value vol_value*5.0*100/256;//得到范围是500-0方便显示dis[8] (vol_value%1000)/1000x30; //百dis[10] (vol_value%100)/100x30; //十dis[11] vol_value%100x30; write_string(1,0,dis);
// write_string(1,5,ab cd ef;);}
}4. 设计报告
5246字设计报告内容包括硬件设计、软件设计、软硬件框图、调试、结论等 5. 设计资料内容清单下载链接
资料设计资料包括仿真程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读
1、仿真图
2、程序源码
3、功能要求
4、开题报告
5、设计报告
6、软硬件流程框图
7、讲解视频
Altium Designer 软件资料
KEIL软件资料
Proteus软件资料
单片机学习资料
答辩技巧
设计报告常用描述
鼠标双击打开查找更多51 STM32单片机课程毕业设计.url 资料下载链接可点击
https://docs.qq.com/doc/DS05VbHNQT2h4REhk