基于msp430单片机的信号发生器设计 程序Word文件下载.docx

上传人:b****6 文档编号:16105139 上传时间:2022-11-20 格式:DOCX 页数:27 大小:19.95KB
下载 相关 举报
基于msp430单片机的信号发生器设计 程序Word文件下载.docx_第1页
第1页 / 共27页
基于msp430单片机的信号发生器设计 程序Word文件下载.docx_第2页
第2页 / 共27页
基于msp430单片机的信号发生器设计 程序Word文件下载.docx_第3页
第3页 / 共27页
基于msp430单片机的信号发生器设计 程序Word文件下载.docx_第4页
第4页 / 共27页
基于msp430单片机的信号发生器设计 程序Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于msp430单片机的信号发生器设计 程序Word文件下载.docx

《基于msp430单片机的信号发生器设计 程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于msp430单片机的信号发生器设计 程序Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

基于msp430单片机的信号发生器设计 程序Word文件下载.docx

#defineSET_RWP3OUT|=BIT1;

#defineCLR_ENP3OUT&

=~BIT2;

//EN=P3.2

#defineSET_ENP3OUT|=BIT2;

 

/***************DA转换模块的定义***************/

#defineSCL_HP1OUT|=BIT1

#defineSCL_LP1OUT&

=~BIT1

#defineSDA_HP1OUT|=BIT0

#defineSDA_LP1OUT&

=~BIT0

#defineSCL_outP1DIR|=BIT1//SCL设置为输出模式

#defineSDA_inP1DIR&

=~BIT0//SDA改成输入模式

#defineSDA_outP1DIR|=BIT0//SDA变回输出模式

#defineSDA_valP1IN&

BIT0//SDA的位值

#defineTRUE1

#defineFALSE0

#definepai3.14

/***************按键模块全局变量***************/

ucharkey_Pressed;

//按键是否被按下:

1--是,0--否

ucharkey_val;

//存放键值

ucharkey_Flag;

//按键是否已放开:

//设置键盘逻辑键值与程序计算键值的映射

ucharkey_Map[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

uchars1[]={"

zhengxian:

"

};

uchars2[]={"

fangbo:

uchars3[]={"

juchi:

uchars4[]={"

sanjiao:

/***************调节模块全局变量***************/

ucharfuzhi;

ucharpinlv;

unsignedinttime;

//定时

intvcc;

//da上加的电压

ucharboxing;

doublebianliang;

ucharbiaozhi;

intpianyi;

intshuchu;

/***************总体定义模块***************//***************总体定义模块***************/

voidxianshi(void);

voidDispNChar(ucharx,uchary,ucharn,uchar*ptr);

voidLocateXY(ucharx,uchary);

voidDisp1Char(ucharx,uchary,uchardata);

voidLcdReset(void);

voidLcdWriteCommand(ucharcmd,ucharchk);

voidLcdWriteData(uchardata);

voidWaitForEnable(void);

voidSet_IO(void);

voidstart(void);

voidstop(void);

ucharcheck(void);

voidwrite1(void);

voidwrite0(void);

voidwrite1byte(ucharwdata);

ucharWrite_DAC(ucharwdata);

voidInit_Keypad(void);

voidCheck_Key(void);

voidKey_Event(void);

voidzhengxian(void);

voidchansheng1(void);

voidfangbo(void);

voidchansheng2(void);

voidjuchi(void);

voidchansheng3(void);

voidsanjiao(void);

voidchansheng4(void);

voidzengfu(void);

voidjiaofu(void);

voidzengpin(void);

voidjianpin(void);

voiddelay100us(void);

voiddelay5ms(void);

voiddelay15ms(void);

voiddelay400ms(void);

/***************总体显示模块***************//***************总体显示模块***************/

/***********************************函数名称:

xianshi

功能:

让液晶显示程序中液晶显示的主框架

参数:

返回值:

***********************************************/

voidxianshi(void)

{

LcdWriteCommand(0x01,1);

//清除显示

Disp1Char(0,1,0x46);

//显示F

Disp1Char(1,1,0x3d);

//显示=

Disp1Char(3,1,0x56);

//0x56是字符V的ASCII码值

Disp1Char(5,1,0x50);

//显示P

Disp1Char(6,1,0x3d);

Disp1Char(9,1,0x48);

//0x48是字符H的ASCII码值

Disp1Char(10,1,0x5a);

//0x5a是字符Z的ASCII码值

}

/*******************************************

函数名称:

DispNchar

让液晶从某个位置起连续显示N个字符

x--位置的列坐标

y--位置的行坐标

n--字符个数

ptr--指向字符存放位置的指针

********************************************/

voidDispNChar(ucharx,uchary,ucharn,uchar*ptr)

uchari;

for(i=0;

i<

n;

i++)

{

Disp1Char(x++,y,ptr[i]);

if(x==0x0f)

{

x=0;

y^=1;

}

}

LocateXY

向液晶输入显示字符位置的坐标信息

voidLocateXY(ucharx,uchary)

uchartemp;

temp=x&

0x0f;

y&

=0x01;

if(y)temp|=0x40;

//如果在第2行

temp|=0x80;

LcdWriteCommand(temp,1);

Disp1Char

在某个位置显示一个字符

data--显示的字符数据

voidDisp1Char(ucharx,uchary,uchardata)

LocateXY(x,y);

LcdWriteData(data);

LcdReset

对1602液晶模块进行复位操作

voidLcdReset(void)

CtrlDir|=0x07;

//控制线端口设为输出状态

DataDir=0xFF;

//数据端口设为输出状态

LcdWriteCommand(0x38,0);

//规定的复位操作

delay5ms();

LcdWriteCommand(0x38,0);

LcdWriteCommand(0x38,1);

//显示模式设置

LcdWriteCommand(0x08,1);

//显示关闭

LcdWriteCommand(0x01,1);

//显示清屏

LcdWriteCommand(0x06,1);

//写字符时整体不移动

LcdWriteCommand(0x0c,1);

//显示开,不开游标,不闪烁

LcdWriteCommand

向液晶模块写入命令

cmd--chk--是否判忙的标志,1:

判忙,0:

不判

voidLcdWriteCommand(ucharcmd,ucharchk)

if(chk)WaitForEnable();

//检测忙信号?

CLR_RS;

CLR_RW;

_NOP();

DataPort=cmd;

//将命令字写入数据端口

SET_EN;

//产生使能脉冲信号

CLR_EN;

LcdWriteData

向液晶显示的当

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1