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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

本文(宏晶科技STC15F系列单片机.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

宏晶科技STC15F系列单片机.DOC

1、技术支持:(86)13922809991 第 1 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com宏晶科技 STC15F 系列单片机用 RC 充放电实现检测外部电压日期:2012-2-24版本:V1.0对于没有 ADC 的 MCU,而又要测量外部的一个电压时,使用 RC 充放电的方式是比较容易实现并且低成本的方法。STC15F 系列是 1T 的 MCU,其 IO 口有 OPEN-DRAIN 模式,此模式可以很容易用一个 IO 口配合一个定时器实现 RC 充放电来测量外部未知电压。如果没有空余的定时器,也可以使用指令循

2、环的方式实现。本例使用定时器。本范例使用 P3.2(INT0)来做 RC 测量,电路和波形示意图如下:技术支持:(86)13922809991 第 2 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com操作流程:1、 初始化程序将 P3.2 设置成 OPEN-DRAIN 模式, 并将 P3.2 输出 0 给电容放电。INT0 设置成上升沿中断。Timer 0 设置成 16 位自动重装定时器模式,时钟源为 12T,允许中断。2、 测量时,先清 Timer 0 的 TH0、TL0,然后将 P3.2 输出 1 开始对电容充电

3、,接着设置 TR0 = 1 来启动 Timer 0,然后在 INT0 中断里设置 TR0 = 0 来停止计数,并将 P3.2 输出 0 对电容放电。读出 TH0、TL0 的值就是RC 充电时间。由于 MCU 工作在 5V 时,IO 口读到“1”的门限电压大约为 2V,所以要求输入的电压高于 2V,本例的测试数据从 412.4V,测试结果参考后面的附录 1。假设输入电压为 Ux,IO 口门限电压为 2V,则 RC 充电时间为:T = - R * C * ln ( 1 2 / Ux )按图示参数,当输入为 10V 时,RC 时间大约为 446uS,附录 1 中实测为 447uS。技术支持:(86)

4、13922809991 第 3 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com由于 RC 时间跟 R 和 C 有关,而 R 的温漂一般较小,但普通电容的温漂较大,所以要使用温漂小并且漏电也小的电容。由充电公式或曲线图可知,Ux 和 RC 值的关系是非线性的,所以实际项目使用时,要根据自己的实际电路做一些标定,这样可以得到比较准确的值。本方法适用于对测量精度要求不是很高的场合。附录 1:测量结果和曲线输入电压(V)Timer 0 读数时间 uS(18.432MHZ)4 2100 13674.2 1966 12804.

5、4 1846 12024.6 1740 11334.8 1646 10725 1560 10165.2 1487 9685.4 1416 9225.6 1354 882技术支持:(86)13922809991 第 4 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com5.8 1297 8446 1245 8116.2 1196 7796.4 1150 7496.6 1110 7236.8 1070 6977 1033 6737.2 1000 6517.4 968 6307.6 938 6117.8 910 5928 8

6、84 5768.2 860 5608.4 836 5448.6 814 5308.8 793 5169 772 5039.2 754 4919.4 736 4799.6 718 467技术支持:(86)13922809991 第 5 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com9.8 702 45710 686 44710.2 671 43710.4 656 42710.6 642 41810.8 629 41011 616 40111.2 604 39311.4 592 38511.6 581 37811.8

7、570 37112 560 36512.2 550 35812.4 540 352技术支持:(86)13922809991 第 6 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com附录 2:C 语言程序/*-*/* - STC MCU International Limited -*/* - STC 1T Series MCU RC Demo -*/* - Mobile: (86)13922805190 -*/* - Fax: 86-755-82944243 -*/* - Tel: 86-755-82948412 -

8、*/* - Web: www.STCMCU.com -*/* If you want to use the program or the program referenced in the */* article, please specify in which data and procedures from STC */*-*/*功能描述: 使用 STC15F 系列 C 版本做的 RC 测量电压的例子.*/技术支持:(86)13922809991 第 7 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.com#incl

9、ude “reg51.h“#define MAIN_Fosc 22118400L /定义主时钟#define uchar unsigned char#define uint unsigned intsfr AUXR = 0x8e; /Auxiliary registersfr P3M1 = 0xB1; /P3M1.N,P3M0.N =00-Standard,01-push-pullsfr P3M0 = 0xB2; / =10-pure input, 11-open drainsbit P_TXD1 = P31; /定义模拟串口发送脚,打印信息用sbit P_RC = P32; /RC port

10、uchar SampleCnt; /发送结果的采样间隔计数uchar LineCnt; /每行显示结果计数bit B_Over; /超时标志bit B_ADC_OK; /检测完成标志uint adc; /RC 做的 ADC 值void RC_start(void);void Tx1Send(uchar dat);void InitTimer(void);void delay_ms(unsigned char ms);/void main(void)InitTimer(); /初始化 TimerP3M1 |= 1 = 100) /1 秒钟发一个结果给串口SampleCnt = 0;Tx1Send

11、(adc / 10000 + 0); /send to PC from the UARTTx1Send(adc % 10000 / 1000 + 0);Tx1Send(adc % 1000 / 100 + 0);Tx1Send(adc % 100 / 10 + 0);Tx1Send(adc % 10 + 0);Tx1Send( );Tx1Send( );if(+LineCnt = 10) /10 个结果后换行LineCnt = 0;Tx1Send(0x0d); /send CRTx1Send(0x0a);/=/ 函数: void delay_ms(unsigned char ms)/ 描述:

12、延时函数。/ 参数: ms, 要延时的 ms 数./ 返回: none./ 版本: VER1.0/ 日期: 2010-12-15/ 备注: /=void delay_ms(unsigned char ms)unsigned int i;技术支持:(86)13922809991 第 9 页 共 11 页传真:86-755-82944243电话:86-755-82948412官方网站:www.STCMCU.comdoi = MAIN_Fosc / 14000L; /1Twhile(-i) ; /13T per loopwhile(-ms);/* RC 启动函数 */void RC_start(vo

13、id)/使用 Timer 0 计时TH0 = 0; /clear Timer 0TL0 = 0;B_Over = 0; /Clear Over flagP_RC = 1; /RC chargeTR0 = 1; /enable Timer 0IE0 = 0; /Clear INT0 flagEX0 = 1; /INT0 EnableIT0 = 0; /INT0 上升,下降沿中断/* INT0 中断函数 */void INT0_int (void) interrupt 0 /if(INT0 /deable Timer 0P_RC = 0; /dechargeadc = TH0; /read the RC timeadc = (adc = 1;BitTime();P_TXD1 = 1;EA = 1;BitTime();BitTime();

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。