STC单片机AD转换及EEPROM使用_杨峰
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 系统硬件连接 本系统工作环境是11.0592MHZ,工作电压5V,其硬件中采用 dd313 器件,它是一种经常用来调节LED 电流的集成电路元件。 本电路中含有两个AD电路,其中一路用于采集环境照度,另一 路则用于采集LED自身亮度。因此在设计时,一个光传感器要置于 封装壳外,另一个置于壳内,两个传感器互不影响。
涉及到的硬件寄存器: ISP_DATA:ISP/IAP操作时的数据存储器,ISP/IAP从Flash 读出的数据放在此处,向Flash写入的数据也需放在此处; I S P _ A D D R H 、I S P _ A D D R L :I S P / I A P 操作时的地址寄存器; ISP_CMD:ISP/IAP操作时的命令模式寄存器; I S P _ T R I G :I S P / I A P 操作时的命令触发寄存器; ISP_CONTR:ISP/IAP控制寄存器。 具体的编程应用: 具体在应用中需要用到的几个函数模块: I. 擦除函数 void erase(unsigned?char?ADDRH) { if(ADDRH<0x2a) ISP_ADDRH=0x28; else if(ADDRH<0x2c) ISP_ADDRH=0x2a; else if(ADDRH<0x2e) ISP_ADDRH=0x2c; else if(ADDRH<0x30) ISP_ADDRH=0x2e; ISP_ADDRL=0x00; ?ISP_CONTR=0x8b; ISP_CMD=3; ISP_TRIG=0x46; ISP_TRIG=0xb9;//触发ISP/IAP delay(5); } 通过这个函数,可以擦除EEPROM中地址为ADDRH的一个字 节的内容。 II. ISP/IAP打开函数 void ISP_IAP_enable(void) //打开ISP,IAP 功能 { EA=0;/* 关中断*/ ISP_CONTR|=0x18;/*0001,1000*/ ISP_CONTR|=waittime;/*写入硬件延时*/ ISP_CONTR|=0x80;/*ISPEN=1*/ } 因为E E P R O M 中 使 用 的 是I S P / I A P 技术,因 此 在 使 用 EEPROM时必须打开ISP/IAP功能。 III. 公用的触发代码 void ISPgo_on(void)// 公用的触发代码 { ISP_IAP_enable();/* 打开ISP,IAP 功能*/ ISP_TRIG=0x46;/* 触发ISP_IAP 命令字节1 */ ISP_TRIG=0xb9;/* 触发ISP_IAP 命令字节2 */ _ n o p _ ( ) ; / / 空操作函数,包含在“i n t r i n s . h ”中 } 这个函数是一个共享函数,无论是擦除还是写入,都必须用到 这个函数。
169
单片机应用技术
数字技术 与应用
ADC_FLAG:模数转换结束标志位,当AD转换完成后,该位为 “1”,要由软件清零。
SPEED1,SPEED0:模数转换转换速度控制位。 A D C _ P O W E R :A D C 电源启动位。 另外,AD 转换完成后,结果保存在ADC_DATA/ADC_LOW2 寄存器中。 转换所得结果为1 0 位数据,分别取A D C _ D A T A 寄存器的8 位 作为高8位,ADC_LOW2的低2位作为低2位,具体组成形式可写成 (ADC_DATA[8:0], ADC_LOW2[1:0]),模拟数字转换结果计算公 式为: (ADC_DATA[8:0], ADC_LOW2[1:0])=1024*Vin/Vcc
III. void Get_AD_Result()//AD转换 {? unsigned i="1"; ADC_CONTR=ADC_CONTR|0x08;//启动 AD 转换 00001000B do{;} while((ADC_CONTR&0x10)==0);// 判断 AD 转换是否 完成00010000B? ADC_CONTR=ADC_CONTR&0xE7;? //清0 ADC_FLAG, ADC_START 位, 停止A/D 转换 ADC_Channel_X_Result=ADC_DATA;//保存 AD 转换 结果高8位 ADC_Channel_X_Result=ADC_LOW2;//保存 AD 转换 结果低2位 } 通过这个函数进行AD 转换,获取AD 转换结果,保存在寄存器 ADC_Channel_X_Result中。 将以上几个函数模块有机组合就能方便地使用单片机自带的 AD 转换功能了,如果还需要对AD 转换性能作进一步的要求,还可 以设置其他相关的寄存器。 2.3 STC12C5624AD单片机的EEPROM使用 STC12C5624AD单片机的EEPROM功能是基于IAP/ISP技术,
将内部的D a t a F l a s h 当做EEPROM 使用的结果。即通过对内部 FlashROM进行IAP读写进而实现EEPROM功能。
上面提到了I A P ,它的意思是“在应用编程”,即在程序运行时 程序存储器可由程序自身进行擦写。正是因为有了I A P ,从而可以 使单片机可以将数据写入到程序存储器中,使得数据如同烧入的程 序一样,掉电不丢失。当然写入数据的区域与程序存储区要分开来, 以使程序不会遭到破坏。
on STC MCU
Yang Feng; Hu Bin; Luo Qingqing (College of Physics and Electronic Information AnHui WuHu 241000)
摘 要: The article summarizes the methods by which to use the AD Converter and the EEPROM on MCU of STC. Based on the design“ The self- adaptive bias-lighting of LED”, combining the thoughts and problems we are confronted with in the process of doing our design, we make a deep summary and probe into the principles, structures and the application methods of the AD Converter and the EEPROM on MCU of STC with the reference to some pieces of articles written by other experts. The article shall provide some help to the following researches.
及体会,参考相关文献,对A D 转换、E E P R O M 的原理、结构及使用方法作了深入的总结和分析,旨在为后续研究设计提供参考。
关键词:STC单片机 AD转换 EEPROM
中图分类号: TP316.2 文献标识码:A
文章编号:1007-9416(2011)09-0169-03
The use of AD converter and EEPROM
关键词: MCU of STC AD converter EEPROM
目前,使用单片机来控制电子系统的工作已经越来越广泛,其 优势是十分明显的。而这其中又以LED照明领域较为突出。将单片 机与LED结合起来,有利于实现照明智能化,又提高了能源利用效 率。因此,其应用前景十分广阔。
经过详密地设计与论证,我们设计了一个系统——“自适应LED 背光模块”。该设计将STC单片机与应用到LED背光中,使其背光效 果可以调节并且能自动适应环境光亮度调节,真正实现了照明智能 化、人性化。
II. void Set_ADC_Channel ()//设置相应端口为A/D 转 换通道
{ ADC_CONTR=ADCPowerChannel_X; Delay(10); } 通 过 这 个 函 数 设 置 相 应 的 通 道 为 A D 转 换 通 道 ,其 中 A D C P o w e r C h a n n e l _ X 为可变参数, 依所设置的通道的不同而不 同,在本单片机中,共有P1.0-P1.7 八个通道可供选用。
数字技术 与应用
单片机应用技术
S T C 单片机 A D 转换及 E E P R O M 使用
杨峰 胡彬 罗青青 (安徽师范大学物理与电子信息学院 安徽芜湖ห้องสมุดไป่ตู้ 241000)
摘 要:本文总结介绍了S T C单片机A D 转换及E E P R O M 功能的使用,它以设计“自适应L E D 背光模块”为基础,结合实际制作中的问题
2、STC12C5624AD 单片机 AD 转换及 EEPROM
2.1 STC 单片机 AD 转换及 EEPROM 的简介 部分S T C单片机,如STC12C56系列,都自带有A/D 转换及 EEPROM功能。以我们设计中使用的STC12C5624AD单片机为例, 它自带10 位高精度AD ,共8个通道,转换速度均达到100KHZ,可 作温度检测、电池电压检测、光线检测、频谱检测等之用。而且,由于 自带AD 功能,省去诸多外围电路的不便,增加了电路的工作稳定 性,使用起来也更加方便快捷。同样,STC单片机还自带EEPROM功 能,它是利用ISP/IAP技术将Data Flash当EEPROM使用,可擦写 次数达到10万次以上,总容量计八个扇区,每个扇区512 个字节。 STC单片机自带的EEPROM功能极大地方便了单片机电子系统的 设计。 2.2 STC12C5624AD 单片机的 AD 转换使用 我们使用的STC12C5624AD 单片机,其A D 转换口在P 1口(P1. 7-P1.0),有8路10位高速AD 转换,转换速率可达10万次/秒。上电 复位后,P1口为弱上拉型I/O口,用户可通过软件设置将8路中的任 何一路设置为A / D 转换,不需作为A / D 转换使用的口可继续作为 普通I/O口使用。设置A/D转换可通过ADC_CONTR特殊功能寄存 器来实现: CHS2,CHS1,CHS0三位用来选取进行AD 转换的通道,通过 设置这三位的值就可以设定A D 转换通道。 A D C _ S T A R T :模数转换器转换启动控制位,设置为一时,开 始转换,转换结束后为零。
本文“STC单片机AD 转换与EEPROM使用”是基于该设计提 出来的,旨在总结STC单片机AD转换和EEPROM的使用方法,为后 续研究设计提供参考。
1、自适应 LED 背光模块的设计
1.1 系统总体设计 自适应LED背光模块主要包括5个主要部分:显示当前LED照 度的数码管显示模块;当前环境亮度数据采集模块;电流大小调节 模块;用于设定照度大小的按键模块以及总控制模块。 1.2 STC12C5624AD 单片机芯片介绍 为满足对光线强弱的处理的实时性要求,自适应LED背光模块 应具有一定的数据处理能力,并且具有AD转换功能。因此我们采用 STC12C5624AD单片机芯片作为本系统的处理芯片。 STC12C5624AD中国台湾宏晶科技公司推出的带高速A D 的 单片机芯片,运算能力达到45MIPS。该芯片具有丰富的片上存储器 资源,多种片上外设,包括10位高速AD 转换、16位定时器、优化的 CPU结构,具有PMW功能,而且价格适中,是一款性价比较高的单 片机芯片。 在本系统中,STC单片机起着信息处理和系统控制的作用。利 用单片机自带的AD功能采集光线强度信息,用于判断照明情况,并 根据所得信息做出相应调节。本系统包含LED照度的数码管显示模 块、亮度数据采集模块、电流大小调节模块、按键模块、总控制模块。
具体在应用中,写A D 转换程序主要包括以下几个程序部分:
I. void ADC_Power_On(void) //开ADC 电源,第一次 使用要开启A D 电源
{ ADC_CONTR=ADC_CONTR|0x80; //将 ADC_POWER 位置“1” Delay(20); }??? 通过这个函数实现ADC电源开启功能,即开启单片机的AD转 换电源。