欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
1602簡易信號強度指示
[打印本頁]
作者:
wuxiandi
時間:
2015-4-10 01:29
標題:
1602簡易信號強度指示
//----0---6格信號強度指示----
#include <reg52.h>
#include "stdio.h"
#define u8 unsigned char
#define u16 unsigned int
#define DATA P2
sbit RS=P0^5;
sbit RW=P0^6;
sbit EN=P0^7;
u8 code font[8]={0x04,0x0e,0x15,0x04,0x04,0x04,0x04,0x00};
u8 code sign_font[7][8]={{0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00},
{0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x00},
{0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x00},
{0x00,0x00,0x00,0x08,0x18,0x18,0x18,0x00},
{0x00,0x00,0x04,0x0c,0x1c,0x1c,0x1c,0x00},
{0x00,0x02,0x06,0x0e,0x1e,0x1e,0x1e,0x00},
{0x01,0x03,0x07,0x0f,0x1f,0x1f,0x1f,0x1f},
};
u8 code clear_font[8]={0};
bit f_busy;
void delay(u16 x)
{
while(x--);
}
void busy()
{
u8 st;
if(f_busy!=1)
{
return;
}
else
{
EN=0;
RW=1;
RS=0;
DATA=0xff;
do
{
EN=0;
EN=1;
delay(10);
st=DATA;
}while(st&0x80);
EN=0;
delay(10);
}
}
void write_ddram(u8 add)
{
busy();
EN=0;
RW=0;
RS=0;
DATA=add|0x80;
EN=1;
delay(10);
EN=0;
delay(10);
}
void write_dat(u8 dat)
{
busy();
EN=0;
RW=0;
RS=1;
DATA=dat;
EN=1;
delay(10);
EN=0;
delay(10);
}
void write_cmd(u8 cmd)
{
busy();
EN=0;
RW=0;
RS=0;
DATA=cmd;
EN=1;
delay(10);
EN=0;
delay(10);
}
void show_string(u8 add,u8 *p)
{
write_ddram(add);
while(*p)
{
write_dat(*p);
p++;
}
}
void show_char(u8 add,u8 n)
{
write_ddram(add);
write_dat(n);
}
void set_cgram(u8 add) //設置cgram地址
{
busy();
EN=0;
RW=0;
RS=0;
DATA=add|0x40; //設置地址時候用
EN=1;
delay(10);
EN=0;
delay(10);
}
void set_code_cgram(u8 *font, u8 add)
{
u8 i;
set_cgram(add*8); //一個字符8行
for(i=0;i<8;i++)
{
write_dat(font[i]);
}
}
void show_strength(u8 add,u8 x)
{
if(x<2)
{
set_code_cgram(clear_font,6);
show_char(add+1,6);
set_code_cgram(sign_font[x],x);
show_char(add,x);
}
else
{
set_code_cgram(sign_font[1],1);
show_char(add,1);
set_code_cgram(sign_font[x],x);
show_char(add+1,x);
}
if(x>6)x=0;
}
void LCD_init() //------------
{
f_busy=0;
delay(15000);
write_cmd(0x38);
delay(5000);
write_cmd(0x38);
delay(5000);
write_cmd(0x38);
f_busy=1;
write_cmd(0x38);
write_cmd(0x08);
write_cmd(0x01);
write_cmd(0x06);
write_cmd(0x0f);
}
void main()
{
u8 i;
LCD_init();
show_string(0," Sign test!!!");
show_string(40," Strength: ");
while(1)
{
for(i=0;i<6;i++)
{
delay(60000);
show_strength(50,i);
}
}
}
復制代碼
作者:
錢情錦繡
時間:
2019-1-7 16:22
求教硬件怎么做?例如檢測100MHZ
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1