STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc

STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc

ID:53280280

大小:35.00 KB

页数:4页

时间:2020-04-02

STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc_第1页
STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc_第2页
STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc_第3页
STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc_第4页
资源描述:

《STC12C5A60(32)S2单片机AD采样-LCD1602液晶显示程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/******************************************************STC12C5A32S2或STC12C5A60S2等单片机ADC采样功能示例**1、P1口为8路10位AD转换口2、用LCD1602显示:数据口为P0,RW接P2.5,RS接P2.6,EN接P2.73、亲手编写、亲自调试,完全可行*****************************************************/#include#include#defineucharunsignedchar#defineuintunsi

2、gnedintvoiddelay_ms(uintx);//ms延时子函数/*****stc12c5a32s2相关的寄存器说明*****/sfrP1ASF=0x9D;//P1口模数转换功能控制寄存器sfrADC_CONTR=0xBC;//AD转换控制寄存器sfrADC_RES=0xBD;//AD转换结果寄存器高位sfrADC_RESL=0xBE;//AD转换结果寄存器低位sfrAURX1=0xA2;//AD转换结果存储方式控制位/***P1ASF寄存器:8位,对应P1口8根线,用于指定那根线用作ADC功能******哪根线用作ADC就应置相应的位为1,注意:不能位寻址******/#defin

3、eADC_POWER0x80//ADC电源开#defineADC_SPEED0x40//设置为180个周期,ADC一次#defineADC_START0x08//ADC启动控制位设为开#defineADC_FLAG0X10//ADC结束标志位//***第n通道ADC初始化函数***//voidADC_int(ucharn){n&=0x07;//确保是第0~7通道AURX1

4、=0x04;//转换结果存储方式:高2位放ADC_RES,低8位放ADC_RESLP1ASF=1<

5、intadc_data;n&=0x07;//确保是第0~7通道ADC_RES=0;//清存放结果存储器ADC_RESL=0;//清存放结果存储器ADC_CONTR=0;//AD转换控制寄存器清0,以便重置ADC_CONTR

6、=(ADC_POWER

7、ADC_SPEED

8、n

9、ADC_START);//打开AD转换电源,设定转换速度,设定通道号,AD转换开始_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//延时4个时钟周期左右while(!((ADC_CONTR&ADC_FLAG)==0x10))//等待转换结束adc_data=(ADC_RES&

10、0x03)*256+ADC_RESL;//转换结果计算ADC_CONTR&=0xef;//转换结束标志清0returnadc_data;//adc_data的值(0~1023)}/***如果需要释放P1口为普通IO口,则需要本函数***//*voidADC_END(){P1ASF=0;P1_CONTR=0;}*//********延时子函数:xms********/voiddelay_ms(uintx){uinty;for(;x>0;x--)for(y=0;y<125;y++);}/*****以下是与LCD1602显示相关的定义和函数声明*****/#definelcd_data_portP

11、0//1602数据口接P0sbitlcd_rs=P2^6;//RS接P2.6(=0,是命令;=1,是数据)sbitlcd_rw=P2^5;//RW接P2.5(=0,是写;=1,是读)sbitlcd_en=P2^7;//EN接P2.7voidlcd_write_com(ucharlcd_com);//写命令子函数voidlcd_write_data(ucharlcd_data);//写数据子函数voidlcd_int();//1602初始化voidlcd_locate(ucharx,uchary);//显示定位(行,列)voidlcd_4_char(uintdata_4char);//显示4位

12、整型函数/********写命令子函数********/voidlcd_write_com(ucharlcd_com){lcd_data_port=lcd_com;//指令送到数据接口lcd_rs=0;//选择命令lcd_rw=0;//选择写lcd_en=0;delay_ms(1);lcd_en=1;delay_ms(1);lcd_en=0;}/********写数据子函数********/voidlcd_w

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

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

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