完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这个程序是已经做好了的ad数据采集。。(硬件已经做好了)
希望大神修改使数据通过串口显示到labview里面,然后labview发送字符在液晶第二行后面显示。顺便能控制P3口两个led灯 #include #include "lcd1602.c" #define uint unsigned int #define uchar unsigned char /* ST--P1.0 EOC--P1.6 OE--P1.5 CLK--P1.4 A--P1.3 B--P1.2 C--P1.1 */ ***it OE = P1^0; //位定义 ***it EOC = P1^1; ***it ST = P1^2; ***it CLK = P1^3; void DelayMS(uint ms) //延时函数 { uchar i; while(ms--) { for(i=0;i<120;i++); } } void Display_Result(int x) { x=(x*3.9); // 255与1000转换 GotoXY(0,1); LCD_Write(1,x/1000+'0'); LCD_Write(1,x%1000/100+'0'); LCD_Write(1,x%100/10+'0'); LCD_Write(1,'.'); LCD_Write(1,x%10+'0'); } void main() { LCD_Initial(); //液晶屏初始化 GotoXY(0,0); //指针定位 Print("temp"); TMOD = 0x02; //0000 0010 定时计数器 高四位T1 低四位T0 gate c/t' m1 m0 TH0 = 0x14; //0001 0100 16+4=20 高八位 TL0 = 0x00; //0000 0000 低八位 IE = 0x82; //1000 0010 开中断 TR0 = 1; // 开启定时计数 P1 = 0x3f; //0011 1111 0 c1 c2 c3 clk st eoc oe while(1) { ST = 0; ST = 1; //当ST上跳沿时,所有内部寄存器清零 ST = 0; //下跳沿时,开始进行A/D转换 ,在转换期间,ST应保持低电平 while(EOC == 0); //当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换 OE = 1; //OE=1,输出转换得到的数据; DelayMS(40); Display_Result(P2) ; OE = 0; // OE=0,输出数据线呈高阻状态 } } void Timer0_INT() interrupt 1 //定时计数器0 { CLK = !CLK; //通常使用频率为500KHZ } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1148 浏览 1 评论
Labview生成的exe程序,源程序找不到了,有什么办法可以对exe程序的界面和菜单等进行调整和编辑
1761 浏览 1 评论
想通过labview实现这个二维数组转成一维数组的功能,但是不知道怎么搞?新手求图(苍蝇戳手)
2021 浏览 3 评论
关于DAQExpress软件中电压的最大值最小值是根据什么来确定的?
2291 浏览 1 评论
基于LabVIEW的声发射定位:如何准确获取信号到达不同传感器的时差?
2030 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 13:23 , Processed in 0.377200 second(s), Total 42, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号