版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MSP430單片机试验汇报--段式LCD显示试验简介:试验演示了将ADC成果用段式LCD显示,并且還原输入電压也采用段式LCD显示。ADC的成果可以通過ADC12MEM0的值来显示。當程序运行時,LCD屏幕采用10進制显示出ADC12MEM0的值。试验目的:熟悉IAR5.0软件開发环境的使用理解MSP430段式LCD的工作方式掌握MSP430段式LCD的编程措施试验原理:驱動LCD需要在段電极和公共電极上施加交流電压。若只在電极上施加直流電压,液晶自身发生劣化。处理這個問題的一般措施是使用短時也就驱動器,如MSP430F4xx系列單片机就集成有段式液晶驱動。假如要在没有液晶驱動器的状况下使用段式液晶显示屏,就要用到如图1所示電路。图1中,A為電极信号输入端,控制该段液晶与否被點亮;B為交流方波信号输入端,将有一种固定频率的方波信号從此端输入;com為公共背极信号。工作原理為;固定的方波信号被直接加载到液晶公共背极,同步该信号通過一种异或门加载到液晶段极。當A端為低電平時,液晶的段极与公共背极将得到一种同相、同频率、同幅度的方波信号,液晶的两端一直保持没有電压差;當A端為高電平時,液晶的段极也公共背极将得到一种反相、同幅度、同频率的方波信号,液晶两端将保持一种交流的電压差。這样既能使液晶保持點亮状态,又不會发生劣化而损壞液晶显示屏。图一.段式液晶驱動電路试验环节:将PC和板载仿真器通過USB线相连;试验現象:段式LCD显示屏显示的数字為002031,ADC12MEM0的值為07EF,其值為16進制,将其转换後值為2031与屏幕显示一致。关键代码分析:#include<msp430x26x.h>#include"General_File.h"#include"I2C_Define.h"voidI2C_Start(void){DIR_OUT;SDA_1;I2C_Delay();SCL_1;I2C_Delay();SDA_0;I2C_Delay();SCL_0;}//EndI2C_Start/*函数名:I2C_Stop功能:遵照I2C總线协议定义的停止*/voidI2C_Stop(void){DIR_OUT;SDA_0;I2C_Delay();SCL_1;I2C_Delay();SDA_1;}//EndI2C_Stop/*函数名:I2C_ReceiveACK功能:待接受ACK信号,完毕一次操作*/voidI2C_Write_ACK(void){SDA_1;DIR_IN;SCL_1;I2C_Delay();while(SDA_IN);SCL_0;I2C_Delay();DIR_OUT;return;}//EndI2C_ReceiveACK/*函数名:2C_Read_Ack功能:接受数据後发送一种ACK信号*/voidI2C_Read_Ack(void){DIR_OUT;SCL_0;SDA_0;I2C_Delay();SCL_1;I2C_Delay();SCL_0;SDA_1;}//EndI2C_Read_Ack/*函数名:I2C_Read_NoAck功能:最终接受数据後发送NoACK信号*/voidI2C_Read_NoAck(void){DIR_OUT;SCL_0;SDA_1;I2C_Delay();SCL_1;I2C_Delay();SCL_0;}//EndI2C_Read_Ack/*函数名:I2C_Receiveuchar功能:接受一种字节的数据*/ucharI2C_Receiveuchar(void){ucharRead_Data=0x00;//返回值ucharDataBit=0x00;//每一种clk接受到的数据SCL_0;I2C_Delay();SDA_1;DIR_IN;for(uchari=0;i<8;i++){SCL_1;I2C_Delay();DataBit=SDA_IN;SCL_0;I2C_Delay();I2C_Delay();Read_Data=((Read_Data<<1)|DataBit);//将数据依次存入Read_Data}return(Read_Data);}//EndI2C_Receiveuchar/*函数名:I2C_Senduchar功能:遵照I2C總线协议定义发送一字节数据*/voidI2C_Senduchar(ucharWr_Data){DIR_OUT;SCL_0;SDA_1;for(uchari=0;i<8;i++){if(Wr_Data&0x80){SDA_1;//最高位与否為1,為1则SDA=1}else{SDA_0;//否则SDA=0}I2C_Delay();SCL_1;I2C_Delay();SCL_0;I2C_Delay();Wr_Data<<=1;//数据左移一位,進入下一轮送数}SDA_1;return;}//EndI2C_Senduchar/************BU9796FS有关指令定义**********/#defineWrite_Com0x80#defineWrite_Data0x00#defineDisplay_ON0x48#defineHalf_Bias0x44#defineSet_Reset0x6A#defineExt_Clock0x69#defineBlink_Mode00x70#defineBlink_Mode10x71#defineBlink_Mode20x72#defineBlink_Mode30x73#definePixel_ON0x7E#definePixel_OFF0x7D#defineBU9796_Addr0x7C#defineBase_Add0x00/**************引用的外部函数*********************/externvoidI2C_Start(void);externvoidI2C_Stop(void);externvoidI2C_Write_ACK(void);externvoidI2C_Senduchar(ucharWr_Data);/**************定义段式LCD的阿拉伯数字码*********************/constucharNum_Code[]={0xAF,//00x06,//10x6D,//20x4F,//30xC6,//40xCB,//50xEB,//60x0E,//70xEF,//80xCF,//90x10,//.假如要显示小数點,必须要将此值与下一位值相加0x88//:,包括LCD上的两個":"};ucharDisp_Data[]={5,5,7,3,1,5};/*函数名:Segment_Display功能:段式LCD数据包写入服务程序,负责将一串字符送到段式LCD上去显示*/voidSegment_Display(constucharAddr,constuchar*P_Data,ucharLength){ucharUser_Addr=Addr;I2C_Start();//启動BU9796I2C_Senduchar(BU9796_Addr);//写BU9796的物理地址I2C_Write_ACK();I2C_Senduchar(Base_Add+User_Addr*2);//发送起始地址,下一种紧跟的是数据I2C_Write_ACK();for(uchari=Length;i>0;i--){if(*P_Data!=0x0A)//显存中与否有小数點?假如有,就将小数點码值与下一位码值相加{I2C_Senduchar(Num_Code[*P_Data++]);}else{ucharTemp_Disp_Data=Num_Code[*P_Data++];I2C_Senduchar(Temp_Disp_Data+Num_Code[*P_Data++]);i--;}I2C_Write_ACK();}I2C_Stop();//访問結束}/*函数名:Init_BU9796FS功能:初始化驱動芯片BU9796的有关参数*/voidInit_BU9796FS(void){I2C_Start();//启動BU9796I2C_Senduchar(BU9796_Addr);//写BU9796的物理地址I2C_Write_ACK();//等待ackI2C_Senduchar(Write_Com+Set_Reset);//启動软复位I2C_Write_ACK();//等待ackI2C_Senduchar(Write_Com+Blink_Mode2);I2C_Write_ACK();I2C_Senduchar(Write_Com+Display_ON);//開显示I2C_Write_ACK();I2C_Senduchar(Write_Data+Base_Add);//发送起始地址,下一种紧跟的是数据I2C_Write_ACK();for(uchari=0;i<10;i++)//清LCD显示屏{I2C_Senduchar(0x00);I2C_Write_ACK();}I2C_Stop();//访問結束}/*函数名:Init_MCU功能:初始化MSP430的有关参数*/voidInit_MCU(void){/*WDTCTL=WDTPW+WDTHOLD;*///关看门狗BCSCTL3|=XT2S_2;//XT2频率范围设置BCSCTL1&=~XT2OFF;//打開XT2振荡器do{IFG1&=~OFIFG;//清振荡器失效標志BCSCTL3&=~XT2OF;//清XT2失效標志for(uinti=0x47FF;i>0;i--);//等待XT2频率稳定}while(IFG1&OFIFG);//外部時钟源正常起動了吗?BCSCTL2|=SELM_2+SELS;//设置MCLK、SMCLK為XT2P4OUT&=~BIT4;P4DIR|=BIT4;//打開LCD显示部分的電源//P8REN|=BIT3+BIT4;P8DIR|=BIT3+BIT4;//配置MSP430与BU9796的数据数P8OUT|=BIT3+BIT4;P5OUT&=~BIT7;//點亮外部LEDP5DIR|=BIT7;}/*函数名:main功能:系统入口主函数*/voidmain(void){WDTCTL=WDTPW+WDTHOLD;//停看门狗ADC12CTL0=SHT0_2+ADC12ON;//设置采样時间,開ADC12,Vref=VACCADC12CTL1=SHP;//使用定期器采样ADC12MCTL0=INCH_1;//选用A1通道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026道德与法治五年级活动园 探访敬老院
- 2026高中必修三《统计》知识闯关游戏
- 2026五年级下《分数的意义和性质》知识闯关游戏
- 生命教育绘画文案
- 2026年商业地产开发建设合同协议
- 人教版七年级上册Unit 4 Where's my schoolbag 语法焦点与同步作文指导课件(共12张)
- 大学职业规划考试指南
- 超越未来:放射废物新处理技术-创新机遇与未来发展展望
- 设计开拓未来竞争优势-工业设计助产品创新
- 创意工艺:设计之魅-灵感、技巧和材料的完美融合
- 安徽省合肥市合肥第一中学2022-2023学年高一下学期期末物理试题
- 离婚协议书电子版下载
- 2023版新教材高中生物第2章基因和染色体的关系检测卷新人教版必修2
- 人教版三年级数学下册教案(表格式)【全册】
- 信号与动态测量系统
- 中医诊断学局部望诊
- 交通组织疏导方案
- 2023年职业中专美术教师招聘考试题目另附答案
- 太钢不锈冷轧厂简介
- 电磁感应中“单、双棒”问题归类例析
- 特种设备制造内审及管理评审资料汇编经典版
评论
0/150
提交评论