17
本科生课程设计(论文)
uchar const IC_DAT1[]={\: V I: A\ uchar const IC_DAT2[]={\工作温度: ℃\ uchar const IC_DAT3[]={\工作转速: R\
/****************** LCD12864初始化程序*****************/ void initina2(void) {
delay(40); //大于40MS的延时程序 PSB=1; //设置为8BIT并口工作模式 delay(1); //延时 RES=0; //复位 delay(1); //延时 RES=1; //复位置高 delay(10);
TransferData(0x36,0);
delay(100); //大于100uS的延时程序 TransferData(0x36,0);
delay(37); ////大于37uS的延时程序
TransferData(0x3E,0);
delay(100); //大于100uS的延时程序 TransferData(0x01,0); //CLEAR SCREEN
delay(100); //大于100uS的延时程序 }
void initinal(void) //LCD字库初始化程序 {
delay(40); //大于40MS的延时程序 PSB=1; //设置为8BIT并口工作模式 delay(1); //延时 RES=0; //复位 delay(1); //延时 RES=1; //复位置高 delay(10);
TransferData(0x30,0);
delay(100); //大于100uS的延时程序
17
18
本科生课程设计(论文)
TransferData(0x30,0); //Function Set
delay(37); ////大于37uS的延时程序 TransferData(0x08,0); //Display on Control delay(100); //大于100uS的延时程序 TransferData(0x10,0);
delay(100); //大于100uS的延时程序
TransferData(0x0C,0);
delay(100); //大于100uS的延时程序
TransferData(0x01,0); //Display Clear delay(10); //大于10mS的延时程序 TransferData(0x06,0);
delay(100); //大于100uS的延时程序
}
/*****************传送指令程序*********************/ void TransferData(char data1,char DI) {
WRD=0; RS=DI; delay(1);
P0=data1;
E=1;
delay(1); E=0; }
/***************字符位置显示程序*******************/ void lcd_mesg(unsigned char const *adder1) {
unsigned char i; delay(100);
for(i=0;i<16;i++) //32
{
TransferData(*adder1,1);
18
TransferData(0x80,0);
19
本科生课程设计(论文)
}
}
adder1++;
void lcd_mesg1(unsigned char const *adder1) { unsigned char i;
TransferData(0x90,0);
delay(100); }
void lcd_mesg2(unsigned char const *adder1)
{ unsigned char i;
TransferData(0x88,0);
delay(100);
}
void lcd_mesg3(unsigned char const *adder1)
{ unsigned char i; TransferData(0x98,0); delay(100);
for(i=0;i<16;i++) {
TransferData(*adder1,1); adder1++;
19
for(i=0;i<16;i++) //32
{
TransferData(*adder1,1); adder1++;
}
for(i=0;i<16;i++) //32
{
TransferData(*adder1,1); adder1++;
}
20
本科生课程设计(论文)
}
}
void DisplayGraphic(unsigned char const *adder) {
int i,j;
//*******显示上半屏内容设置*******// for(i=0;i<32;i++) {
TransferData((0x80 + i),0);
TransferData(0x80,0);
for(j=0;j<16;j++) {
TransferData(*adder,1); adder++; } }
//*******显示下半屏内容设置*******// for(i=0;i<32;i++) {
TransferData((0x80 + i),0);
TransferData(0x88,0); for(j=0;j<16;j++) {
TransferData(*adder,1); adder++; } } }
3.2.6 系统程序整体设计总结
系统整体设计比较复杂。但是系统按照功能可分成几个模块,针对各个模块进行
硬件设计、软件编程就比较简单,将复杂的程序简单化,以上为几个模块的部分编程程序,XS128编程采用的是C语言或C++语言,以上部分程序为C语言编程所成。
20
21
本科生课程设计(论文)
第4章 设计总结
本课设针对大功率电动机运行状态监控计算机系统设计,提出了用XS128单片机控制整个电机运行状态监控的方法。整个系统按照功能分为传感器模块、显示模块、键盘模块、报警模块及相关电路组成。
本系统在设计时首先设计电压传感器、电流传感器、温度传感器、速度传感器采集物理参数转化为模拟信号,然后通过A/D转换器转换成XS128单片机可识别的数字信号,将其送入XS128单片机中进行处理,随后将数据传送至显示模块再进行与设定报警值进行比较,单片机会赋予执行结构相关行为。系统可以完成课程设计的设计要求。
此次设计涉及单片机、传感器、C语言、数字电路、模拟电路等相关知识。知识涉及量广,我在此次课程设计中学到了很多知识,通过图书馆查阅资料和网上查阅资料学到了许多课本上并没有介绍的专业相关知识。
21