ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:483.06KB ,
资源ID:7210282      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7210282.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(STC12C5A60S2ADC查询法10位模式 1602显示.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

STC12C5A60S2ADC查询法10位模式 1602显示.docx

1、STC12C5A60S2ADC查询法10位模式 1602显示STC12C5A60S2(ADC查询法 10位模式)+1602显示 通道0接单片机电源,通道1接地线。 源程序:一共3个文件: LCD1602display.h#ifndef _LCD1602DISPLAY_H_#define _LCD1602DISPLAY_H_#define uchar unsigned char#define uint unsigned int/*LCD引脚定义sbit LCM_RS=P35;sbit LCM_RW=P36;sbit LCM_E=P37;/*延时void delay();/*初始化void Ini

2、tLCM();/*读状态uchar ReadStatusLCM();/*读数据uchar ResdDataLCM();/*写指令void WriteCommandLCM(uchar WCLCM, Busy);/*写数据void WriteDataLCM(uchar WDLCM);/*显示1个字符void DisplayOneChar(uchar X,uchar Y,uchar DData);/*显示字符串void DisplayListChar(uchar X,uchar Y,uchar code *DData);#endifSTC12(ADC flag).h#ifndef _STC12_AD

3、C_FLAG_H_#define _STC12_ADC_FLAG_H_#define uchar unsigned char#define uint unsigned int#define FOSC 11059200L#define BAUD 9600/* 初始化设置 */sfr ADC_CONTR = 0xBC; /ADC 控制寄存器sfr ADC_RES = 0xBD; /ADC 转换结果寄存器sfr ADC_RESL = 0xBE; /ADC 低2位结果寄存器sfr P1ASF = 0x9D; /P1口模拟功能控制寄存器/* ADC 数据转换函数 */#define ADC_POWER

4、0x80 /ADC 电源控制位#define ADC_FLAG 0x10 /ADC 转换结束标志位#define ADC_START 0x08 /ADC 开始转换控制位#define ADC_SPEEDLL 0x00 /540 个时钟周期转换一次#define ADC_SPEEDL 0x20 /360 个时钟周期转换一次#define ADC_SPEEDH 0x40 /180 个时钟周期转换一次#define ADC_SPEEDHH 0x60 /90 个时钟周期转换一次/*延时函数void Delay1(uint n);/*ADC初始化函数void Init_ADC();/*ADC数据转换函数

5、uint Get_ADC_Result(uchar ch);/*ADC数据计算函数float Count(uchar ch);#endifLCD1602display.c#include ;#include ;#include "LCD1602display.h"/*延时void delay(uchar z)uchar i,j;for(i=z;i;0;i-) for(j=110;j;0;j-); /*LCM初始化void InitLCM()WriteCommandLCM(0x38,0); /三次显示模式设置,不检测忙信号delay(1);WriteCommandLCM(0x

6、38,0);delay(1);WriteCommandLCM(0x38,0);delay(1);WriteCommandLCM(0x38,1); /显示模式设置:16×2显示,5×7点阵,8位数据接口WriteCommandLCM(0x0c,1); /显示模式设置:显示开,无光标WriteCommandLCM(0x06,1); /显示模式设置:光标右移,字符不移WriteCommandLCM(0x01,1); /清屏幕指令,将以前的显示内容清除/*读状态uchar ReadStatusLCM()P0 = 0x80;LCM_RS = 0;LCM_RW = 1;LCM_E

7、= 1;while (P0 & 0x80); /检测忙信号return(0);/*读数据/*uchar ResdDataLCM()LCM_RS=1;LCM_RW=1;LCM_E=1; */*写指令void WriteCommandLCM(uchar WCLCM, Busy)if(Busy) ReadStatusLCM();P0=WCLCM;LCM_RS=0;LCM_RW=0;LCM_E=0;LCM_E=1;/*写数据void WriteDataLCM(uchar WDLCM)ReadStatusLCM();P0=WDLCM;LCM_RS=1;LCM_RW=0;LCM_E=0;LCM_E=1;/

8、*显示字符void DisplayOneChar(uchar X,uchar Y,uchar DData)if(Y) X|=0X40; /Y=1显示第二行,Y=0显示第一行X|=0X80;WriteCommandLCM(X,1); /X用来选择哪一位,1是用来忙检测WriteDataLCM(DData); /DData用来写数据/*显示字符串void DisplayListChar(uchar X,uchar Y,uchar code *DData)uchar ListLength;ListLength=0;while(DDataListLength!=0) if(X; #include &q

9、uot;intrins.h"#include "STC12(ADC flag).h"float temp;/*延时函数(n=1: 1T 8.65ms,12T 59.9ms)void Delay1(uint n) uint x; while (n-) x = 5000; while (x-); /*ADC初始化函数void Init_ADC() P1ASF = 0xff; /设置P1口为开漏模式,使用AD功能 ADC_RES = 0; /AD数据寄存器高8位清空 ADC_RESL= 0; /AD数据寄存器低2位清空 ADC_CONTR = ADC_POWER | A

10、DC_SPEEDLL; /打开AD电源,转换周期540 Delay1(2); /延时 /*ADC数据转换函数uint Get_ADC_Result(uchar ch) ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch ;/开始转换 _nop_(); /延时一个机器周期 _nop_(); /延时一个机器周期 _nop_(); /延时一个机器周期 _nop_(); /延时一个机器周期 while (!(ADC_CONTR & ADC_FLAG); /等待转换结束(ADC_FLAG=0时一直等待,直到变为1跳出) ADC_CONTR &= AD

11、C_FLAG; /关闭AD转换 return (ADC_RES*4+ADC_RESL); /返回数据(10位AD值,ADC_RES高8位+ADC_RESL低2位) /*ADC数据计算函数float Count(uchar ch)temp=(float)Get_ADC_Result(ch)*4.60/1024; /4.85为参考电压,1024个“门”,10位ADreturn temp;main.c/*(ma)STC12C5A60S2(ADC查询法 10位模式)+1602显示*/马熔/2012-12-17/*#include ;#include "intrins.

12、h"#include "STC12(ADC flag).h"#include "LCD1602display.h"#define uchar unsigned char#define uint unsigned intextern float temp;uchar code string1="The voltage is :"uchar ge,shifen;/*显示函数void show()DisplayListChar(0,0,string1);DisplayOneChar(1,1,(int)Count(0)+0x30);

13、 /个位DisplayOneChar(2,1,.);DisplayOneChar(3,1,(int)(Count(0)*100)%100/10+0x30); /十分位DisplayOneChar(4,1,(int)(Count(0)*100)%100%10+0x30); /百分位DisplayOneChar(5,1,V);DisplayOneChar(8,1,(int)Count(1)+0x30); /个位DisplayOneChar(9,1,.);DisplayOneChar(10,1,(int)(Count(1)*100)%100/10+0x30); /十分位DisplayOneChar(11,1,(int)(Count(1)*100)%100%10+0x30); /百分位DisplayOneChar(12,1,V);/*主函数void main()InitLCM(); /液晶初始化 Init_ADC(); /AD转换初始化 while (1) show();

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2