电风扇智控系统(源代码)(2)

 

{

minute=0;

}

}

}

if(minute==watch|(min==0&&sec==1)) //定时时间到

{

speaker_out();

speaker_out();

speaker_out();

TR0=0; //关T0

pwm=0; //关电机

Power_off_language(); //关机提示语

speaker_out();

speaker_out();

speaker_out();

speaker=1; //关蜂鸣器

while(1); //停在此处

}

}

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


★Program Description : Nokia LCD5110 驱动程序

★Date Time : Friday,September 26,2014

★Finished By : 何志明

************************************************************************/ #ifndef __Nokia_H__

#define __Nokia_H__

#include<reg52.h>

#include<intrins.h>

#include <stdio.h>

#include <math.h>

#include"WordsMode.h"

#define uint unsigned int

#define uchar unsigned char

#define ulint unsigned long int

#define ulong unsigned long

#define CMD 0

#define DATA 1

sbit RST_5110=P2^4; //复位

sbit CE_5110=P2^3; //片选

sbit DC_5110=P2^2; //数据/命令控制端,1-数据 0-命令

sbit DIN_5110=P2^1; //数据线

sbit CLK_5110=P2^0; //时钟

/************************************************************************ 卍 函数名 : delay

卍 函数功能 : ms级延时

卍 函数形参 : z

卍 函数返回值 : 无

************************************************************************/ void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/************************************************************************ 卍 函数名 : LCD_write_byte

卍 函数功能 : 向LCD写入一字节数据

卍 函数形参 : byte 写入的数据

卍 DC 数据/命令选择 1/0


卍 函数返回值 : 无

************************************************************************/ void LCD_write_byte(uchar byte,bit DC)

{

uchar i;

CE_5110=1;

DC_5110=DC;

CLK_5110=1;

for(i=0;i<8;i++)

{

CLK_5110=0;

DIN_5110=byte&0x80;

CE_5110=0;

CLK_5110=1;

byte<<=1;

CLK_5110=0;

}

CE_5110=1;

CLK_5110=1;

}

/************************************************************************ 卍 函数名 : LCD_RST

卍 函数功能 : 液晶屏复位

卍 函数形参 : 无

卍 函数返回值 : 无

************************************************************************/ void LCD_RST()

{

RST_5110=0;

_nop_();

RST_5110=1;

_nop_();

CE_5110=0;

_nop_();

CE_5110=1;

_nop_();

}

/************************************************************************ 卍 函数名 : LCD_clear

卍 函数功能 : 液晶屏清屏


卍 函数说明 :5110每行有84列,共6行。即使用84*6=504个十六进制数据可控制所有的

卍 最小显示单元,最小显示单元指纵向相连接的8个点阵

卍 函数形参 : 无

卍 函数返回值 : 无

************************************************************************/ void LCD_clear()

{

uint i;

LCD_write_byte(0x40,0); //y坐标回0

LCD_write_byte(0x80,0); //x坐标回0

for(i=0;i<504;i++)

{

LCD_write_byte(0x00,1);//清空RAM数据

}

}

/*-----------------------------液晶上电初始化-----------------------------*/

void LCD_Init()

{

LCD_RST(); //上电复位

LCD_write_byte(0x21,0); // 使用扩展命令设置LCD模式

LCD_write_byte(0xc0,0); // 设置液晶偏置电压 (0x80~0xff)

LCD_write_byte(0x06,0); // 温度校正

// LCD_write_byte(0x13,0); // 1:48

LCD_write_byte(0x20,0); // 使用基本命令,V=0,水平寻址

LCD_write_byte(0x0c,0); // 设定显示模式,正常显示

LCD_clear(); // 清屏

}

/*--------------------------------------------------------------------------------

卍 函数名 : Display5110

卍 函数功能 : 显示汉字和字符

卍 函数形参 : x:显示到屏幕上的横向位置,取值0~83

y:行位置,取值0~5

*WCP:Word Code Point存放字模数据的二维数组的数组名

DmsLong:Dimension Long,二维数组中,一维数组的长度

DmsLine:Dimension Line,二维数组中,构成一个完整字形的一维数组个数

index:字形在二维数组中的索引号0~n

卍 函数返回值: 无

---------------------------------------------------------------------------------*/

void Display5110(uchar x,uchar y,uchar *WCP,uchar DmsLong,uchar DmsLine,uint index) {


ulint location;

uchar iLine,jLong;

location=DmsLong*DmsLine*index; //确定字模数据提取的起始位置

WCP=WCP+location; //将数组指针定位到要取得数据的起始位置

for(iLine=0;iLine<DmsLine;iLine++)

{

LCD_write_byte(0x40|(y+iLine),CMD);//Y坐标 +iLine是为了保证拼汉字的数据能自动向下一行

LCD_write_byte(0x80|x,CMD); //X坐标

for(jLong=0;jLong<DmsLong;jLong++) //将一维数组中的数据顺序输出

{

LCD_write_byte(*(WCP++),DATA);

}

}

}

/*----------------------------开机问候语---------------------------*/

void Turn_on_language()

{

uchar i,j;

for(i=0;i<9;i++) //Welcom To

{

Display5110(j,1,Nokia_,8,2,i);

j+=8;

delay(250);

}

i=j=0;

for(i=10;i<20;i++) //Nokia5110!

{

Display5110(j,3,Nokia_,8,2,i);

j+=8;

delay(250);

}

delay(2000);

LCD_clear();

}

/*----------------------------关机机提示语---------------------------*/

void Power_off_language()

{

uchar i,j=8;

LCD_clear();

for(i=0;i<4;i++) //Good

{

Display5110(j,1,turn_off,8,2,i);


j+=8;

delay(360);

}

i=0;

j=34;

for(i=4;i<9;i++) //Bye!

{

Display5110(j,3,turn_off,8,2,i);

j+=8;

delay(360);

}

delay(5000);

LCD_clear();

}

/*-------------------------固定显示初始化--------------------------*/ void Dis_Init()

{

Display5110(0,0,Chinese,12,2,0); //模 Display5110(12,0,Chinese,12,2,1); //式 Display5110(24,0,Mark1,6,2,0); //':' Display5110(36,0,Chinese,12,2,6);

Display5110(48,0,Chinese,12,2,7);

Display5110(60,0,Chinese,12,2,12);

Display5110(0,2,Chinese,12,2,2); //档 Display5110(12,2,Chinese,12,2,3); //位 Display5110(24,2,Mark1,6,2,0); //':' Display5110(30,2,Digit,6,2,0);

Display5110(40,2,Mark1,6,2,2);

Display5110(46,2,Mark1,6,2,3);

Display5110(52,2,Mark1,6,2,4);

Display5110(58,2,Mark1,6,2,0);

Display5110(62,2,Digit,6,2,0);

Display5110(68,2,Digit,6,2,0);

Display5110(76,2,Mark1,6,2,1);

Display5110(0,4,Chinese,12,2,4); //定 Display5110(12,4,Chinese,12,2,5); //时 Display5110(24,4,Mark1,6,2,0); //':' Display5110(28,4,Mark1,6,2,5);

Display5110(34,4,Mark1,6,2,6);

Display5110(40,4,Mark1,6,2,6);

Display5110(46,4,Digit,6,2,0);

Display5110(52,4,Digit,6,2,0);


Display5110(58,4,Digit,6,2,0);

Display5110(64,4,Mark1,6,2,0);

Display5110(70,4,Digit,6,2,0);

Display5110(76,4,Digit,6,2,0);

}

#endif

#ifndef __WordsMode_H__

#define __WordsMode_H__

#define uchar unsigned char

uchar code Chinese[34][12]=

{

{0x88,0x68,0xFF,0x48,0x02,0xFA,0xAF,0xAA,0xAF,0xFA,0x02,0x00},

{0x00,0x00,0x0F,0x00,0x0A,0x0A,0x06,0x03,0x06,0x0A,0x0A,0x00},/*"模",0*/

{0x08,0x48,0x48,0xC8,0x48,0x48,0x08,0xFF,0x08,0x09,0x0A,0x00},

{0x08,0x08,0x08,0x07,0x04,0x04,0x04,0x00,0x03,0x04,0x0E,0x00},/*"式",1*/

{0x88,0x88,0xFF,0x48,0x12,0x94,0x90,0x9F,0x90,0x94,0xF2,0x00},

{0x00,0x08,0x0F,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x0F,0x00},/*"挡",2*/

{0x10,0xFC,0x03,0x08,0x68,0x88,0x09,0x0A,0x08,0xE8,0x08,0x00},

{0x00,0x0F,0x00,0x08,0x08,0x0B,0x08,0x0C,0x0B,0x08,0x08,0x00},/*"位",3*/

bbs.99jianzhu.com内容:建筑图纸、PDF/word 流程,表格,案例,最新,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。


TOP最近更新内容

    绿豆蛋花是怎样制作及具有什么样的功效?
    江苏省盱眙县都梁中学高中数学第2章平面向
  • 上一篇:李晓磊一学位开题报告
  • 下一篇:ISW管道增压泵厂家型号