版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<msp430g2553.h>#defineucharunsignedchar#defineuintunsignedint#defineLCD_CON_DIRP2DIR#defineLCD_CON_INP2IN#defineLCD_CON_OUTP2OUT#defineLCD_RSBIT0//p2.5接51p2.5#defineLCD_RWBIT1//p2.0接51p2.6#defineLCD_ENBIT2//p2.1接51p2.7#defineLCD_DATA_DIRP1DIR#defineLCD_DATA_INP1IN#defineLCD_DATA_OUTP1OUT#defineA1000#defineB100#defineX10voidInitOsc(void);voidInitLCD(void);voidwrite_command(ucharcommand);voidwrite_data(uchardata);voidDisplay_ZFC(uchar*s);voidLCD_Set_xy(ucharx,uchary);voidTrans_val(uintHex_Val);voidDisplay_Volte(uintHex_Val);voidMeasure_Volte(void);ucharnum[]={".v"};ucharvolte[]={"Volt:"};uintindex=0;inti;unsignedlongsum=0;uintHex_Val;#defineNum_of_Results32uintresults[Num_of_Results];//保存ADC转换成果旳数组uintaverage;/****************************************************************************ADC初始化*****************************************************************************/voidADC_Init(void){ADC10CTL0=ADC10SHT_2+ADC10ON+ADC10IE;//ADC10ON,interruptenabledADC10CTL1=INCH_1;//inputA1ADC10AE0|=0x02;//二次采集}/****************************************************************************DCO时钟初始化设为1MHz*****************************************************************************/voidDCO_Init(void){ if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)ﻩﻩ{ﻩﻩﻩwhile(1); } BCSCTL1=CALBC1_1MHZ;ﻩDCOCTL=CALDCO_1MHZ;ﻩBCSCTL2=SELM_0+DIVM_0;}/****************************************************************************向12864发送字节*****************************************************************************/voidSendByte(ucharZdata){ uinti;ﻩfor(i=0;i<8;i++) {ﻩﻩif((Zdata<<i)&0x80) ﻩ{ﻩﻩﻩLCD_CON_OUT|=LCD_RW;//clk始终信号为高ﻩﻩ}ﻩﻩelse ﻩ{ﻩ LCD_CON_OUT&=~LCD_RW;//clk始终信号为低ﻩﻩ}ﻩﻩLCD_CON_OUT&=~LCD_EN;ﻩ LCD_CON_OUT|=LCD_EN;ﻩ}}/****************************************************************************向12864写命令*****************************************************************************/voidwrite_command(ucharcommand){ LCD_CON_OUT|=LCD_RS;ﻩSendByte(0xF8);ﻩSendByte(command&0xF0); SendByte((command<<4)&0xF0);ﻩ_delay_cycles(200);}/****************************************************************************向12864写数据*****************************************************************************/voidwrite_data(uchardata){ﻩLCD_CON_OUT|=LCD_RS;ﻩSendByte(0xFA);ﻩSendByte(data&0xF0);ﻩSendByte((data<<4)&0xF0); _delay_cycles(200);}voidDisplay_ZFC(uchar*s){ while(*s>0){ﻩﻩwrite_data(*s);ﻩﻩs++;ﻩﻩ_delay_cycles(5000);}}/****************************************************************************拟定12864屏幕显示旳坐标位置(x,y)*****************************************************************************/voidLCD_Set_xy(ucharx,uchary){ucharaddress;ﻩswitch(x)ﻩ{ ﻩcase0:address=0x80+y;break;case1:address=0x80+y;break;ﻩﻩcase2:address=0x90+y;break;ﻩﻩcase3:address=0x88+y;break;ﻩﻩcase4:address=0x98+y;break; ﻩdefault:address=0x80+y;break;ﻩ}write_command(address);//写入地址命令}/****************************************************************************lcd初始化*****************************************************************************/voidInitLCD(void){ﻩLCD_CON_DIR|=0xFF;//p2口定义为输出ﻩwrite_command(0x01);//清屏ﻩwrite_command(0x30);ﻩ_delay_cycles(5000); write_command(0x0c);ﻩ_delay_cycles(5000);}/****************************************************************************采集到旳数据转化成电压形式*****************************************************************************/voidTrans_val(uintHex_Val){ﻩunsignedlongcaltmp;ﻩuintCurr_Volt,volt,max;ﻩuinta[50];ﻩcaltmp=Hex_Val;caltmp=caltmp*34600;//caltmp=Hex_Val*34600Curr_Volt=caltmp>>10;//Curr_Volt=caltmp/2^nvolt=Curr_Volt;for(i=0;i<50;i++){a[i]=volt;}for(max=a[0],i=0;i<50;i++){if(a[i]>max)max=a[i];}Curr_Volt=max;Display_Volte(Curr_Volt);}/****************************************************************************主函数*****************************************************************************/voidmain(void){ﻩWDTCTL=WDTPW+WDTHOLD;ﻩADC_Init();//ADC初始化ﻩDCO_Init();//DCO初始化 InitLCD();//12864液晶初始化ﻩwhile(1)ﻩ{ ﻩMeasure_Volte();//测量直流电压值并且显示ﻩ}}/****************************************************************************测量电压*****************************************************************************/voidMeasure_Volte(void){ﻩADC10CTL0|=ENC+ADC10SC;//Samplingandconversionstart __bis_SR_register(CPUOFF+GIE);ﻩresults[index++]=ADC10MEM;//Moveresultsﻩif(index==Num_of_Results) { ﻩindex=0; ﻩfor(i=0;i<Num_of_Results;i++) ﻩ{ﻩ ﻩsum+=results[i]; ﻩ}ﻩ sum>>=5;//除以32ﻩﻩTrans_val(sum); ﻩsum=0;ﻩ}}/****************************************************************************显示电压值*****************************************************************************/voidDisplay_Volte(uintHex_Val){ﻩuintCurr_Volt; Curr_Volt=Hex_Val;ﻩwr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境保护执行细则
- 殡葬服务标准化工程师考试试卷及答案
- IDSA 2025版耐药革兰氏阴性杆菌感染治疗指南 完整版权威解读
- 心肌修复中生物材料与外泌体互作
- 专题六光、热学和近代物理(培优学生版)
- 少数民族医疗创新技术的知情同意文化适配
- 安徽省蚌埠市2026年高三年级新起点考试化学试题含解析
- 患者参与:线上线下共同决策模式构建
- 超市转让合同
- 被迫解除劳动合同通知书
- 2026年4月23日四川省宜宾市五方面人员选拔笔试真题及答案深度解析
- 2026广东建设职业技术学院第二批招聘6人备考题库附答案详解(考试直接用)
- 2026年科级干部任职资格政治理论考核要点
- GB/T 17498.6-2026室内固定式健身器材第6部分:跑步机附加的特殊安全要求和试验方法
- 义务教育均衡发展质量监测八年级物理综合试卷
- 2026秋招:重庆水务环境控股集团笔试题及答案
- 《材料分析测试技术》全套教学课件
- 天津英华插班生考试卷五年级
- 2021一级消防工程师继续教育考试石油化工类答案
- 小学音乐人教版 六年级下册爱我中华1 课件
- 深圳珠宝参展商名录
评论
0/150
提交评论