版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、STC12C5A60S加部ADC专换串口显示程序(已经验证成功)#include<stc12c5a60s2.h>#include"intrins.h"typedefunsignedcharuchar;typedefunsignedintuint;/*设置ADC_CONTRL控制寄存器*/#defineADC_POWER0x80换电源/ADC电源控制为0:关闭AD转换电源1:打开AD转#defineADC_FLAG0x10/ADC转换结束标志位,AD转换后自动置1,/由软件清零(这里作取反使用)#defineADC_START0x08/ADC转换启动控制位,设置为
2、1时开始AD转换,/转换结束后为0#defineADRJ_0x04/AUXR1寄存器的ADRJ位是转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位/ADRJ为0时,10位AD转换结果的高8位存放在ADC_RES2位存放在ADC_RESL的低2位/ADRJ为1时,10位AD转换结果的高2位存放在ADC_RES低2位中,低8位存放在ADC_RESL#define ADC_SPEEDLL 0x00#define ADC_SPEEDL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60uchar ch = 0;/540个时钟周期
3、转换一次(最低速)/360个时钟周期转换一次(低速)/180个时钟周期转换一次(高速)/90个时钟周期转换一次(最高速)模拟通道ucharcodenum='0','1',2,'3','4',5,'6',7,'8','9'/字符数组,输出到串口显示voiddelay2ms(void)/误差0.000000000000usunsignedchara,b;for(b=129;b>0;b-)for(a=45;a>0;a-);voiddelay2s(void)/误差-0.00000
4、0000111usunsignedchara,b,c,n;for(c=142;c>0;c-)for(b=168;b>0;b-)for(a=250;a>0;a-);for(n=2;n>0;n-);_nop_();/ifKeil,requireuseintrins.h/*uchar wj_uun = '!'/用于存放串口 1 接收的字符void bt_uart_init(void)/ 单片机串口初始化许串口接收/SCON=0X50;SM0 = 0;SM1 = 1;REN = 1;/ SM0=0 SM1=1 SM2=0 REN=1/ 串口工作方式1: 1 位起
5、始位, 8 位数据位, 1 位停止位允/ 允许串口接收/RI=1;/接收标志位,0:正在接收1:接收完毕(如果RI=1就一直执行串口中断)TMOD = 0X20;/ 定时器 T1 工作方式 2TH1 = 0XFD;/ 9600bit/s 下的定时器初值TL1=0XFD;TR1=1;/启动定时器T1EA=1;/开总中断ES=1;/开串行口中断/*1 发送函数*/voids1_send_char(uchardat)/发送端(发送的是字符)SBUF=dat;/将字符送入发送缓冲寄存器while(!TI);/TI为发送状态标志位,0:发送中1:发送结束TI=0;/手动清零标志位voids1_send_
6、string(uchar*pt)/通过调用发送字符函数来发送字符数组while(*pt!='0')s1_send_char(*pt+);voidADC_Init(void)/P1ASF=0x01;/设置P1口的0为模拟输入端口(经过测试这句写不写P1口都能模拟输入)ADC_RES=0;/先清空两个寄存器ADC_RESL=0;AUXR1&=ADRJ_;/ADRJ为0的存储格式(参考技术手册)ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;/开启ADC电源并且启动ADC/经过最少四个时钟周期之后才能够正确读取到ADC_CONTR的值
7、delay2ms();EADC=1;/允许ADC中断*主函数 *voidmain()P4SW=0x70;/P4端口的4、5、6脚可作为通用I/O口bt_uart_init();/串口初始化ADC_Init();/ADC初始化while(1);/*ADC中断函数*voidADC_(void)interrupt5/ADC中断编号为5uintadc_result=0;/while(!(ADC_CONTR&ADC_FLAG);/如果未转换结束,等待ADC_CONTR寄存器ADC_FLAG位置1/ADC_CONTR&=ADC_FLAG;/清零ADC转换结束标志位(这句可以不写,)if(A
8、DC_CONTR&ADC_FLAG)ADC_RESL&=0x03;adc_result=ADC_RES*4+ADC_RESL;/获取到10AD转换值s1_send_string("通道号:");s1_send_char(numch);/通过串口发送通道号s1_send_string("转换值:");/一共四位数s1_send_char(numadc_result/1000);s1_send_char(numadc_result%1000/100);s1_send_char(numadc_result%100/10);s1_send_char(numadc_result%10);if(+ch>3)ch=0;/不断切换通道号0、1、2、3/再次设置ADC_CONTR寄存器ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;delay2s();/*1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《名师成长案例研究》2021-2022学年第一学期期末试卷
- 淮阴师范学院《运河文化研究》2022-2023学年第一学期期末试卷
- 淮阴师范学院《刑法(1)》2021-2022学年第一学期期末试卷
- 淮阴师范学院《微机原理与接口技术》2022-2023学年期末试卷
- 淮阴师范学院《合唱与指挥(1)》2022-2023学年第一学期期末试卷
- 淮阴师范学院《操作系统》2022-2023学年期末试卷
- 淮阴工学院《新能源仪器分析》2021-2022学年第一学期期末试卷
- DB4117-T+419-2024兽药消毒剂生产技术要求
- DB2305-T 020-2024牛病毒性腹泻病毒pcr检测规程
- 2025超长期特别国债怎么谋划
- 好看的皮囊千篇一律有趣的灵魂万里挑一
- 某房地产公司项目定位分析
- 部编版三年级上册道德与法治作业设计
- ERAS理念下麻醉与镇痛的优化
- 2023-2024学年四川省泸州市江阳区西路学校七年级(上)期中数学试卷(含解析)
- 2023年下半年软件设计师真题 答案解析(上午选择 下午案例)全国计算机软考
- 初中英语新课程标准词汇表
- 创伤失血性休克中国急诊专家共识(2023)解读
- 学校体育与社区体育融合发展的研究
- 中国旅游地理智慧树知到课后章节答案2023年下平凉职业技术学院
- 工程竣工移交报告
评论
0/150
提交评论