完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
做一个波形图,横轴是时间,比如一个小时,纵轴是温度,比如一直都是70度,然后有一根竖着的细线,随着时间的推移从左到右,显示当前的状态,这个LV可以做到吧?
自己弄了好久没弄出来,求大神赐教~感激不尽·········· |
|
相关推荐
4个回答
|
|
波形图弄出来了 就是不知道为啥-20度显示的是0度,然后进度条不知道咋弄呀
|
|
|
|
进度怎么搞呀,有木有专家哦
|
|
|
|
|
|
|
|
帮忙改一下这程序吧,怎么错误越改越多 #include #define uint unsigned int #define uchar unsigned char #define x1 0x80 #define x2 0x88 #define y1 0x80 #define comm 0 #define dat 1 bit flag=0; ***it rs=P2^0;//H=data;L="command" ***it rw=P2^1;//H=read;L=write ***it e=P2^2;//input enable ***it PSB=P2^3; //H=关口;L=串口 ***it rst=P2^5; //reset signal 低电平有效 ***it busy=P2^4; //lcd busy bit ***it DQ=P3^3; //18b20数据线引脚 uchar temper[2];//存放温度的数组 void wr_lcd(uchar dat_comm,uchar content); void delay(uint us); //void chk_busy(void); //void set_dot(uchar x,uchar y); void init_lcd(void) { rst=1; PSB=1; wr_lcd(comm,0x30);/**** ***30基本指令动作********/ wr_lcd(comm,0x31);/**** ***清屏,地址指针指向00H********/ wr_lcd(comm,0x06);/**** ***光标的移动方向********/ wr_lcd(comm,0x0c);/**** ***开显示,关游标********/ } void wr_lcd(uchar dat_comm,uchar content) { chk_busy(); if(dat_comm) { rs=1;//data rw=0;//write } else { rs=0;//command rw=0;//write } P0=content;//output dator comm e=1; e=0; } /**** ***************************读数据*******************/ read_lcd() { uchar content; chk_busy(); delay(3); P0=0xff; delay(3); rs=1;//data rw=1;//read e=1; content=P0;//位置可能不对头影响结果 delay(3); return(content); } void chk_busy(void) { P0=0xff; rs=0; rw=1; e=1; while(busy==1); e=0; } void delay(uint us)//delay time { while(us--); } delay1(uint ms) { uint i,j; wr_lcd(comm,0x30); //wr_lcd(comm,www); for(j=0;j<4;j++) for(i=0;i<16;i++); // wr_lcd(dat,chk[j*16+i]); } void set_dot(uchar x,uchar y)//连续打点成功 { uchar x_byt;uchar x_bit; uchar y_byt;uchar y_bit; uchar tmph,tmpl; //定义两个临时变量存放 x_byt=x/16; x_bit=x%16; y_byt=y/32; y_bit=y%32; wr_lcd(comm,0x34); wr_lcd(comm,0x80+y_bit); wr_lcd(comm,0x80+y_byt+8*y_byt); read_lcd(); tmph=read_lcd(); tmpl=read_lcd(); wr_lcd(comm,0x80+y_bit); wr_lcd(comm,0x80+y_byt+8*y_byt); if(x_bit<8) { wr_lcd(dat,tmph|(0x01<<(7-x_bit))); wr_lcd(dat,tmpl); } else { wr_lcd(dat,tmpl); wr_lcd(dat,tmpl|(0x01<<(15-x_bit))); } wr_lcd(comm,0x36); } void set_dot(uchar x,uchar y)//连续打点成功 { uchar x_byt;uchar x_bit; uchar y_byt;uchar y_bit; uchar tmph,tmpl; //定义两个临时变量存放 x_byt=x/16; x_bit=x%16; y_byt=y/32; y_bit=y%32; wr_lcd(comm,0x34); wr_lcd(comm,0x80+y_bit); wr_lcd(comm,0x80+y_byt+8*y_byt); read_lcd(); tmph=read_lcd(); tmpl=read_lcd(); wr_lcd(comm,0x80+y_bit); wr_lcd(comm,0x80+y_byt+8*y_byt); if(x_bit<8) { wr_lcd(dat,tmph&(~0x01<<(7-x_bit))); wr_lcd(dat,tmpl); } else { wr_lcd(dat,tmpl); wr_lcd(dat,tmpl&(~0x01<<(15-x_bit))); } wr_lcd(comm,0x36); } /**** ***************************清除整个gdram中的数据*******************/ void BMP_clear(void) { uchar i,k; unsigned char L[1]={0}; wr_lcd(comm,0x34);// 8bit扩充指令集,即使是36H也要写两次 wr_lcd(comm,0x34);// 绘图on,基本指令集里面36H不能开绘图 for(i=0;i<32;i++) //32行 { for(k=0;k<16;k++) //16列 { wr_lcd(comm,0x80|i);//行位置,垂直坐标Y wr_lcd(comm,0x80|k); //列位置,水平坐标X // wr_lcd(comm,0x30); wr_lcd(dat,L[0]); wr_lcd(dat,L[0]); } } wr_lcd(comm,0x34);//关绘图 //wr_lcd(comm,0x30); } /**** ***************************延时函数*******************/ void delay2(uint us) { while(us--); } void reset(void)//复位 { uchar x=0; DQ=1; delay2(8);//稍做延时 DQ=1;// 拉高总线 delay2(14); x=DQ; delay2(20); } /**** ***************************从ds18b20读一字节*******************/ uchar readbyte(uchar date)//读一字节 { uchar i=0; uchar date=0; for(i=8;i>0;i--) { DQ=0; date>>=1; DQ=1; if(DQ) { date|=0x80; delay2(4); } } return(date); } /**** ***************************从ds18b20读一字节*******************/ uchar readbyte(void)//读一字节 { uchar i=0; uchar date=0; for(i=8;i>0;i--) { DQ=0; date>>=1; DQ=1; if(DQ) { date|=0x80; delay2(4); } } } /**** ***************************向ds18b20写一字节*******************/ uchar writebyte(uchar date)//写一字节 { uchar i=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay2(5); DQ=1; date>>=1; } delay2(4); } /**** ***************************cpu获取温度值*******************/ void readtenp(void)//读取温度 { uchar a=0; uchar b=0; reset(); writebyte(0xcc);//跳过序列号 writebyte(0x44);//启动温度转换 reset(); writebyte(0xcc);// writebyte(0xbe);//读9个寄存器,前2个为温度 a=readbyte();//低温 b=readbyte();//高位 temper[0]=a&0x0f; a=a>>4; temper[1]=b<<4; temper[1]=temper[1]|a; } zuobiao_tu() { uchar i; for(i=0;i<64;i++)//da Y zhou { set_dot1(4,i); } for(i=0;i<128;i++)//da X zhou { set_dot1(i,57); } for(i=115;i<120;i++)// da T xing { set_dot1(i,59); } for(i=59;i<64;i++)// { set_dot1(117,i); } set_dot1(126,58);//da jian tou set_dot1(125,59); set_dot1(124,60); set_dot1(123,61); set_dot1(3,1); set_dot1(2,2); set_dot1(1,3); set_dot1(0,4); set_dot1(8,0);//da du set_dot1(9,0); set_dot1(8,1); set_dot1(9,1); for(i=11;i<14;i++)//da C xing zhuang { set_dot1(i,1); set_dot1(i,4); } for(i=1;i<5;i++)// { set_dot1(11,i); } for(i=94;i<128;i++)// da ying xing kuang { set_dot1(i,14); } for(i=6;i<9;i++)// { set_dot1(i,59); set_dot1(i,62); } for(i=1;i<5;i++)// { set_dot1(16,i); set_dot1(18,i); } } void main() { uchar xdata huanzuobiao[61]; uchar temp,tm1,tm2,tm3,tm4,m1,i=6,m2; float backbit; uchar dispbuf[]={0,1,2,3,4,5,6,7,8,9}; sp=0x5f; TCON=0x05; EX0=1; EX1=1; EA=1; init_lcd(); BMP_clear(); zuobiao_tu(); for(i=0;i<60;;i++) { huanzuobiao=20; } while(1) { readtemp(); backbit=temper[0]; backbit= backbit*6.25; temp=backbit; tm1=temp%10; temp=temp/10; tm2=temp%10; temp=temper[1]; tm3=temp%10; temp=temp/10; tm4=temp%10; if(flag==0) { for(i=120;i>=6;i--) { if((i%2)==0) { set_dot2(i,57-huanzuobiao[i/2-3]); } } for(i=1;i<60;i++) { huanzuobiao[i-1]=huanzuobiao; } huanzuobiao[60]=tm4&10+tm3; for(i=126;i>=6;i--) { if((i%2)==0) { set_dot1(i,57-huanzuobiao[i/2-3]); } } wr_lcd(comm,0x30); wr_lcd(comm,0x86); wr_lcd(dat,dispbuf[tm4]); wr_lcd(dat,dispbuf[tm3]); wr_lcd(dat,0x2e); wr_lcd(dat,dispbuf[tm2]); delay1(2500); wr_lcd(comm,0x01); } else { wr_lcd(dat,dispbuf[tm4]); wr_lcd(dat,dispbuf[tm3]); wr_lcd(dat,0x2e); wr_lcd(dat,dispbuf[tm2]); wr_lcd(dat,dispbuf[tm1]); } } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1839 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1453 浏览 0 评论
1651 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3665 浏览 3 评论
1562 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 17:08 , Processed in 0.585510 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号