//图片取模方式:横向取模,字节正序
void pic_Disp(uchar *pic) //显示Gdram内容(显示图片) {
uchar x,y,i;
for(i=0;i<9;i=i+8) for(y=0;y<32;y++) {
for(x=0;x<8;x++) {
Lcd_WriteCmd(0x36); //扩充指令,开绘图显示 Lcd_WriteCmd(0x80+y); //行地址 Lcd_WriteCmd(0x80+x+i); //列地址
Lcd_WriteData(*pic++); //写数据 D15-D8 Lcd_WriteData(*pic++); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }
void H_pic_Disp(uchar *pic) //显示Gdram内容(显示图片) {
uchar x,y,i=0;
for(y=0;y<32;y++) {
for(x=0;x<8;x++) {
Lcd_WriteCmd(0x36); //扩充指令,开绘图显示 Lcd_WriteCmd(0x80+y); //行地址 Lcd_WriteCmd(0x80+x+i); //列地址
Lcd_WriteData(*pic++); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }
/*****整屏显示竖条*****/
//当i=0时显示上面128×32,当i=8时显示下面128×32 //当i=0时显示上面128×32,当i=8时显示下面128×32 void LcdFill_Vertical() {
uchar x,y,i;
for(i=0;i<9;i=i+8) for(y=0;y<0x20;y++) {
30
for(x=0;x<8;x++) {
Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址
Lcd_WriteCmd(x+0x80+i); //列地址 Lcd_WriteData(0x55); //写数据 D15-D8 Lcd_WriteData(0x55); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }
/*****整屏显示横条*****/ void LcdFill_Level() {
uchar x,y,i; uchar k;
for(i=0;i<9;i+=8) for(y=0;y<0x20;y++) {
if((y%2)==1) k=0xff; else k=0;
for(x=0;x<8;x++) {
Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址
Lcd_WriteCmd(x+0x80+i); //列地址 Lcd_WriteData(k); Lcd_WriteData(k); Lcd_WriteCmd(0x30); } } }
/*****整屏充满亮点或暗点*****/
//当i=0时显示上面128×32,当i=8时显示下面128×32 //当i=0时显示上面128×32,当i=8时显示下面128×32 void Lcd_Fill(uchar test) {
uchar x,y;
for(y=0;y<0x20;y++) {
for(x=0;x<8;x++) {
31
Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址 Lcd_WriteCmd(x+0x80); //列地址 Lcd_WriteData(test); //写数据 D15-D8 Lcd_WriteData(test); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }
void Init_CLK(void) {
int index;
BCSCTL1&=~0X00; //打开XT2振荡器 do {
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (index = 0xFF; index > 0; index--);// 延时,等待XT2起振 } while ((IFG1 & OFIFG) != 0);// 判断XT2是否起振
BCSCTL2 =SELM_2+SELS; //选择MCLK、SMCLK为XT2 }
void Deal_data(unsigned long int n) //报警 {
unsigned long m; m=baojing;
v[0]=m000/1000+'0'; v[1]=m00/100+'0'; v[2]=m0/10+'0'; v[3]=m+'0'; }
void Get_ad(unsigned long int n) //浓度 {
unsigned long m; m=n;
a[0]=m000/1000+'0'; a[1]=m00/100+'0'; a[2]=m0/10+'0';
a[3]=m+'0'; }
void Deal_Vc(unsigned int n) //预报警
32
{
unsigned int m; m=yubaojing;
b[0]=m000/1000+'0'; b[1]=m00/100+'0'; b[2]=m0/10+'0'; b[3]=m+'0'; }
nRF905发送
#include
unsigned char RFConf[11]= {
0x00, //配置命令//
0x6c, //CH_NO,配置频段在430MHZ
0x0c, //输出功率为10db,不重发,节电为正常模式
0x44, //地址宽度设置,为4字节
0x0C,0x0C, //接收发送有效数据长度为12字节 0xCC,0xCC,0xCC,0xCC, //接收地址
0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振 };
unsigned char TxAddress[4]={0xcc,0xcc,0xcc,0xcc}; char tf; unsigned char oneH,oneL,twoH,twoL,threeH,threeL,fourH,fourL,fiveH,fiveL,sixH,sixL; unsigned char TxRxBuf[TxRxBuf_Len]; unsigned int average_value[12];
void Delay_Ms(uint count) {
uint i,j;
for(i = 0;i for(j=0;j<120;j++) { ; } } } //================================================延时 =========================================================== 33

