基于msp430单片机的信号发生器设计 程序Word文件下载.docx
- 文档编号:16105139
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:27
- 大小:19.95KB
基于msp430单片机的信号发生器设计 程序Word文件下载.docx
《基于msp430单片机的信号发生器设计 程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于msp430单片机的信号发生器设计 程序Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
#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
向液晶显示的当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于msp430单片机的信号发生器设计 程序 基于 msp430 单片机 信号发生器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)