基于MSP430G2553的电压表设计(2)

2019-08-30 22:26

基于MSP430G2553的电压表设计 Delay_nms(5); //延时等待液晶完成复位

LCD_Send(0,0x30); //功能设定:基本指令集操作 Delay_nms(5);

LCD_Send(0,0x02); //地址归0 Delay_nms(5);

LCD_Send(0,0x0c); //开显示,且关闭光标及其反白显示 Delay_nms(5); }

/********************************************************* 函数功能:写指令或数据 入口参数:type,transdata 出口参数:无 函数说明:无

*********************************************************/ void LCD_Send(uchar type,uchar transdata) {

uchar firstbyte = 0xf8; uchar temp,i,j; if(type)

firstbyte |= 0x02; P1OUT &= ~BIT1; for(j=3;j>0;j--) {

switch(j) {

case 3:temp=firstbyte;break;

case 2:temp=transdata&0xf0;break;

case 1:temp=(transdata<<4)&0xf0;break; }

for(i=8;i>0;i--) {

if(temp&0x80) P1OUT |= BIT0; else

P1OUT &= ~BIT0; P1OUT |= BIT1; temp <<= 1;

P1OUT &= ~BIT1; }

Delay_nms(1); }

P1OUT &= ~BIT0; }

/**********************定位函数************************/ void LCD_Pos(uchar x,uchar y) {

6

基于MSP430G2553的电压表设计 int pos; switch(x) {

case 1:pos=0x80;break; case 2:pos=0x90;break; case 3:pos=0x88;break; case 4:pos=0x98;break; default:pos=0x80; }

pos += y;

LCD_Send(0,pos); }

/********************************************************* 函数功能:字符串显示函数 入口参数:*pt ,num 出口参数:无 函数说明:无

*********************************************************/ void LCD_Display_String(const uchar *pt,uchar num) {

uchar i;

for(i = 0;i < (num*2);i++) LCD_Send(1,*(pt++)); }

/********************************************************* 函数功能:数字显示函数 入口参数:num 出口参数:无 函数说明:无

*********************************************************/ void LCD_Display_Digit(long int num) {

uint SHOW[7],i=0;

SHOW[0]=(num/10000); //十位 SHOW[1]=(num/1000); //个位 SHOW[2]=10; //.

SHOW[3]=(num/100); //十分位 SHOW[4]=num/10; //百分位 SHOW[5]=num; //千分位 SHOW[6]=11; //V switch(Voltage_Range) {

case Range_3V: for(i=1;i<7;i++)

LCD_Send(1,LCD_Table[SHOW[i]]); break; case Range_15V: for(i=0;i<7;i++) {

7

基于MSP430G2553的电压表设计 if(i==5)++i; LCD_Send(1,LCD_Table[SHOW[i]]); } break; default: break; } }

/***********************延时函数*************************/ void Delay_nms(uint n) {

uchar i; while(n--)

for(i=0;i<115;i++); }

/************************************************************* 函数名称:显示函数 入口参数:Data 出口参数:无

函数说明:每行最多8个字,2个字母或数字相当于1个字的长度,注意 汉字没法跨格显示。

*************************************************************/ void LCD_Display(long int Data) {

//LCD_Pos(1,0); //第一行 //LCD_Display_String(\

LCD_Pos(2,0); //第二行 LCD_Display_String(\ 数字式电压表\

LCD_Pos(3,0); //第三行 LCD_Display_String(\当前电压:\ LCD_Display_Digit(Data);

//LCD_Pos(4,0); //第四行 //LCD_Display_String(12.13); }

/********************************************************* 函数名称:主函数 入口参数:无 出口参数:无

函数说明:请看完最上面程序说明再运行程序

*********************************************************/ void main() {

System_Init(); while(1) {

ADC10CTL0 |= ENC + ADC10SC; //开启ADC转换 } }

8


基于MSP430G2553的电压表设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超过6000条史上最强最全的windows系统错误蓝屏代码解释大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: