小红伞免费版是中文吗:12864显示波形

来源:百度文库 编辑:中财网 时间:2024/05/02 10:58:28
爱游戏,更爱攻略
你是游戏达人吗?游戏也有大智慧哦,快来这里写攻略,PSP3000、游戏键鼠等你拿!
查看
新闻
网页
贴吧
知道
MP3
图片
视频
百科
文库
帮助 |设置

',1)">
百度知道 >电脑/网络 >硬件
12864显示波形
悬赏分:0 | 提问时间:2010-9-8 08:58 | 提问者:汪兵522
推荐答案
#include #include #include //------------定义接口-------------//sbit RS=P2^5 ;sbit RW=P2^6 ;sbit E=P2^7 ;sbit RES=P2^1 ;#define Lcd_Bus P1// P1 接 LCM#define uchar unsigned char#define FIRST_ADDR 0//定义字符/汉字显示起始位置/*------------------检查忙位-----------------------------*/void chk_busy(){RS=0 ;RW=1 ;E=1 ;Lcd_Bus=0xff ;while((Lcd_Bus&0x80)==0x80);E=0 ;}/*------------------延时子程序-----------------------------*/void delay(unsigned int t){unsigned int i,j ;for(i=0;i0){write_data(*s);s++;delay(50);}}/*------------------首屏显示--------------------------*/void ceshi(){write_com(0x01);//清除显示,并且设定地址指针为00Hdelay(5);write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示)hzkdis("中国计量学院");write_com(0x90);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)hzkdis("光电学院");write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)hzkdis("06光信2");write_com(0x98);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)hzkdis("测试程序");}//------------------清整个GDRAM空间----------------------------void clrgdram(){unsigned char x,y ;for(y=0;y<64;y++)for(x=0;x<16;x++){write_com(0x34);write_com(y+0x80);//行地址write_com(x+0x80);//列地址write_com(0x30);write_data(0x00);write_data(0x00);}}//------------------------------------------------------------void clrscreen(){write_com(0x01);delay(10);}unsigned char ReadByte(void){unsigned char byReturnValue ;chk_busy();Lcd_Bus=0xff ;RS=1 ;RW=1 ;E=0 ;E=1 ;byReturnValue=Lcd_Bus ;E=0 ;return byReturnValue ;}//增加画点子程序void DrawPoint(unsigned char X,unsigned char Y,unsigned char Color){unsigned char Row,Tier,Tier_bit ;unsigned char ReadOldH,ReadOldL ;write_com(0x34);write_com(0x36);Tier=X>>4 ;Tier_bit=X&0x0f ;if(Y<32){Row=Y ;}else{Row=Y-32 ;Tier+=8 ;}write_com(Row+0x80);write_com(Tier+0x80);ReadByte();ReadOldH=ReadByte();ReadOldL=ReadByte();write_com(Row+0x80);write_com(Tier+0x80);if(Tier_bit<8){switch(Color){case 0 :ReadOldH&=(~(0x01<<(7-Tier_bit)));break ;case 1 :ReadOldH|=(0x01<<(7-Tier_bit));break ;case 2 :ReadOldH^=(0x01<<(7-Tier_bit));break ;default :break ;}write_data(ReadOldH);write_data(ReadOldL);}else{switch(Color){case 0 :ReadOldL&=(~(0x01<<(15-Tier_bit)));break ;case 1 :ReadOldL|=(0x01<<(15-Tier_bit));break ;case 2 :ReadOldL^=(0x01<<(15-Tier_bit));break ;default :break ;}write_data(ReadOldH);write_data(ReadOldL);}write_com(0x30);}void main(void){uchar i,j,colour=1 ;// uint ADzhi;RW=0 ;lcdreset();// ceshi();clrgdram();// delay(5000);clrscreen();for(i=4;i<124;i++){j=36-28*sin((i-8)*3.14);//正弦波显示DrawPoint(i,j,colour);}delay(5000);while(1);}
回答时间:2010-9-15 20:32