单片机代码-AD转换电压在1602中显示.doc

单片机代码-AD转换电压在1602中显示.doc

ID:56796123

大小:25.50 KB

页数:6页

时间:2020-07-12

单片机代码-AD转换电压在1602中显示.doc_第1页
单片机代码-AD转换电压在1602中显示.doc_第2页
单片机代码-AD转换电压在1602中显示.doc_第3页
单片机代码-AD转换电压在1602中显示.doc_第4页
单片机代码-AD转换电压在1602中显示.doc_第5页
资源描述:

《单片机代码-AD转换电压在1602中显示.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、#include#include//为了使用这个头文件中的_nop_()延时函数sbitsda=P2^0;//SDA线sbitscl=P2^1;//SCL线sbitrst=P2^4;//关掉时钟芯片输出sbithc573_sg_le=P2^6;//对用于锁存段数据的573锁存LE端进行定义sbithc573_bit_le=P2^7;//对用于锁存位选通数据的573锁存LE端进行定义sbitlcd_rs=P1^0;//1602数据/命令选择端,高电平执行数据操作,低电平执行命令操作sbitlcd_rw=P1^1;//1

2、602读/写控制端高电平读,低电平写sbitlcd_en=P2^5;//1602读写控制使能信号,它为高脉冲信号才可执行读写操作sbitsta7=P0^7;//1602忙信号检测位,为1则忙,需等待,为0表示空闲voiddelay_ms(unsignedintt)//tms的延时函数{unsignedinta,b;for(a=0;a

3、art()//主机发送开始信号的函数{scl=0;//SCL线拉低,以便让SDA线准备变化sda=1;//SDA线拉高,准备产生开始信号scl=1;//SCL线拉高_nop5_();//SDA线高电平持续5us,以符合开始信号定义的要求(>4.7us)sda=0;//SDA线拉低,产生开始信号_nop5_();//SDA线低电平持续5us,以符合开始信号定义的要求(>4us)}voidiic_stop()//主机发送停止信号的函数{scl=0;//SCL线拉低,以便让SDA线准备变化sda=0;//SDA线拉低,准备产生停止信号scl=1;//SCL线拉高

4、_nop5_();//SDA线低电平持续5us,以符合停止信号定义的要求(>4us)sda=1;//SDA线拉高,产生停止信号_nop5_();//SDA线的高电平持续5us,以符合停止信号定义的要求(>4.7us)}voidiic_ack()//检测从机应答信号的函数{unsignedchari;i=255;scl=0;//SCL线拉低,以便让SDA线准备变化sda=1;//SDA线拉高,准备检测从机的应答信号while(sda==1)//当SDA为高电平时,则等待从机的应答将SDA拉低{if(i>0)i--;elsereturn;//如果i自减到0了,

5、从机还没响应,则不再等待,返回}//这种情况极少发生,一般是从机器件出问题了才会发生scl=1;//从机已经应答,将SDA线拉低了_nop5_();//SDA线的低电平持续5us,以符合应答信号定义的要求(>4us)scl=0;//SCL线拉低,以便让从机把SDA线释放}voidsend_ack()//主机给从机发送应答信号{scl=0;//SCL线拉低,以便让SDA线准备变化sda=0;//SDA线拉低,即将发送应答信号给从机scl=1;//SCL线拉高,将应答信号发送过去_nop5_();//SDA线的低电平持续5us,以符合应答信号定义的要求(>4u

6、s)scl=0;//SCL线拉低,以便让SDA线准备变化sda=1;//释放SDA线}voidiic_send_no_ack()//主机给从机发送非应答信号{scl=0;//SCL线拉低,以便让SDA线准备变化sda=1;//SDA线拉高,即将发送非应答信号给从机scl=1;//SCL线拉高,将应答信号发送过去_nop5_();//SDA线的高电平持续5us,以符合非应答信号定义的要求(>4us)}voidiic_write(unsignedchardat)//主机向从机写操作函数{unsignedchari;for(i=0;i<8;i++){scl=0;

7、//SCL线拉低,以便让SDA线准备变化sda=(bit)(0x80&dat);//取字节数据的最高位,发送到SDA线dat=dat<<1;//发送的数据都是由高位到低位顺序发送的,所以要将所//需发送的那位移到数据的最高位,以发送到SDA线上scl=1;//SCL线拉高,数据被发送过去}}unsignedchariic_read()//主机向从机读操作的函数{unsignedchari;unsignedchardat;//定义一个字节变量,用来存储读出的从机数据dat=0;for(i=0;i<8;i++){dat=dat<<1;//将位数据不断地往高位移

8、动,将接收到的位数据转换为字节数据scl=0;//SCL线拉低,以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。