为什么显示这个求大神ps!!

出问题,重新启动试试!
您的举报已经提交成功,我们将尽快处理,谢谢!
变形金刚?
大家还关注
这是什么回事
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'后使用快捷导航没有帐号?
查看: 1855|回复: 19
AD没有转换 LCD上一直显示3.29v.求大神耐心看看,小弟毕设需过此关!!!
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
#include &msp430x24x.h&
#define uint unsigned int& && && && && && && && && && && && && && && && && && && && && && &//定义数据类型替代码
#define uchar unsigned char
#define dat P1OUT& && && && && && && && && && && && && && && && && && && && && && && && & //定义lcd1602的数据口为P1
#define CLR_RS P2OUT&=~BIT0& && && && && && && && && && && && && && && && && &//置零P2.0位,即置零RS
#define SET_RS P2OUT|=BIT0& && && && && && && && && && && && && && && && && && &//置一P2.0位,即置一RS
#define CLR_RW P2OUT&=~BIT1
#define SET_RW P2OUT|=BIT1
#define CLR_EN P2OUT&=~BIT2
#define SET_EN P2OUT|=BIT2
& && && && && && && && && && && && && && && && && && && && && && && && && && && & //1602判忙标志
void delay_lms(int x);& && && && && && && && && && && && && && && && && && && && && &&&//延时程序,短延时
void delay_ls(int x);& && && && && && && && && && && && && && && && && && && && && && & //延时程序,长延时
void display(void);& && && && && && && && && && && && && && && && && && && && && && &&&//显示程序
void busy_1602(void);& && && && && && && && && && && && && && && && && && && & //液晶查忙程序
void init_1602(void);& && && && && && && && && && && && && && && && && && && && &//液晶初始化
void shj_1602(uchar a);& && && && && && && && && && && && && && && && && & //液晶写数据程序
void zhl_1602(uchar a);& && && && && && && && && && && && && && && && && &//液晶写指令程序
#define Num_of_Results 32
uchar table0[16]={&The Volt is&};&&//定义lcd1602显示两行的字符
uchar table1[16]={&.v&};
static uint results[Num_of_Results]; //保存ADC转换结果的数组
void main(void)
&&WDTCTL=WDTPW+WDTHOLD;&&//关闭看门狗
&&//下面六行程序关闭所有的IO口
&&P1DIR=0XFF;P1OUT=0XFF;
&&P2DIR=0XFF;P2OUT=0XFF;
&&P3DIR=0XFF;P3OUT=0XFF;
&&P4DIR=0XFF;P4OUT=0XFF;
&&P5DIR=0XFF;P5OUT=0XFF;
&&P6DIR=0XFF;P6OUT=0XFF;
&&init_1602();& && && && & //复位1602液晶
& &P6SEL|=BIT0;& && && && &//使能ADC通道
&&ADC12CTL0=ADC12ON+SHT0_8+MSC;//打开ADC,设置采样时间
&&//上面的配置中并没有打开内部的参考电压,ADC12MCTLx用来选择通道和参考电压,这里面没有对此寄存器进行配置为默认值,默认值是参考电压选择AVCC(3.3v),通道时A0,所以测量范围是0-3.3V
&&ADC12CTL1=SHP+CONSEQ_2;//使用采样定时器,转换模式为单路重复转换
&&ADC12MCTL0=INCH_0;
&&ADC12IE=BIT0;//使能ADC中断
&&ADC12CTL0|=ENC; //使能转换
&&ADC12CTL0|=ADC12SC; //开始转换
_BIS_SR(GIE);& && && &&&//开启全局中断
/****************************
函数名称:Trans_val
功能:将16禁止ADC转换数据变换成三位10进制真是的模拟电压数据,并在液晶上显示
参数:Hex_val&&16进制数据
& && &n& && &&&变换时的分母等于2的n次方
返回值:无
*****************************/
void Trans_val(uint Hex_Val_1)
&&uint Curr_V
&&uchar t1,i;
&&uchar ptr[5];
&&uint Hex_V
&&Hex_Val=Hex_Val_1;
&&caltmp=Hex_V
&&caltmp=(caltmp&&5)+Hex_V&&//caltmp=Hex_Val*33
&&caltmp=(caltmp&&3)+(caltmp&&1);&&//caltmp=caltmp*10
&&Curr_Volt=caltmp&&12;& && &&&//Curr_Volt=caltmp/2^n
&&//参考电压为3.3V,所以计算公式应该是Hex_Val*3.3/2^n
&&//乘除计算通过移位来进行可以有效的提高程序运行效率
&&ptr[0]=Curr_Volt/100;& & //Hex-&Dec变换
&&t1=Curr_Volt-(ptr[0]*100);
&&ptr[2]=t1/10;
&&ptr[3]=t1-(ptr[2]*10);
&&ptr[1]=10;& && &//shuzi表中第10位对应的符号“.”
&&ptr[4]=11;
&&init_1602();& && && && &//初始化1602
&&zhl_);& && &&&//关闭显示
&&zhl_);& && &&&//显示清屏
&&for(i=0;i&16;i++)& && &//发送数据第二行
& & shj_1602(table0[i]);
&&zhl_+0x40+4);& & //显示换行
&&for(i=0;i&5;i++)& && & //发送数据第一行
& & shj_1602(table1[ptr[i]]);
&&zhl_c);& && &&&//显示开及光标设置
&&//在液晶上显示变换后的结果
/****************************
函数名称:ADC12ISR
功能:ADC中断服务函数,在这里用多次平均计算P6.0的模拟电压数值
返回值:无
***************************/
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
&&static uint index=0;
&&results[index++]=ADC12MEM0; //将转换的结果存入数组
&&if(index==Num_of_Results)& &//如果数组存满
& & unsigned long sum=0;
& & index=0;& && && && && &&&//再从头开始存,会覆盖原来的数据
& & for(i=0;i&Num_of_Ri++)
& && &sum+=results[i];
& & sum&&=5;& && && && &//除以32
& & Trans_val(sum);
void busy_1602(void)& & //查询忙碌标志信号程序
& & CLR_EN;& && && && & //EN置零
& & SET_RW;& && && && &//RW置一 读信号线
& & CLR_RS;& && && && &//RS置零 读取指令
& & SET_EN;& && && && &//EN置一 读信息
& & CLR_EN;& && && && &//EN置零
& & delay_lms(10);
&&while(busy&&0x10==1);
void zhl_1602(uchar a)&&//写指令到lcm程序
&&busy_1602();
&&CLR_EN;& && && && &&&//EN置零
&&CLR_RW;& && && && &&&//RW置零 写信号线
&&CLR_RS;& && && && &&&//RS置一 读取指令
&&SET_EN;& && && && &&&//EN置一 读信息
&&dat=a;& && &&&
&&CLR_EN;& && && && &&&//EN置零
void shj_1602(uchar a)&&//写数据到lcm程序
&&busy_1602();
&&CLR_EN;& && && && && &//EN置零
&&CLR_RW;& && && && && &//RW置零 写信号线
&&SET_RS;& && && && && &//RS置一 读取数据
&&SET_EN;& && && && && &//EN置一 读信息
&&CLR_EN;& && && && && &//EN置零
void init_1602(void)& & //启动lcm程序
&&zhl_);& && & //写指令
&&zhl_c);& && & //显示开及光标设置
&&zhl_);& && & //光标移动设置
void delay_lms(int x)& &&&//延时程序,短延时
&&while(x--)
& & for(int i=0;i&25;i++);
void delay_ls(int x)
&&for(int i=0;i&8;i++)
& & while(x--)
& && &for(int i=0;i&150;i++);
AD功能没什么影响,仿真的话你的端口电压怎么设置啊,如果仿真库里面默认是端口输出高电平那就是3.3 没错了
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
AD功能没什么影响,仿真的话你的端口电压怎么设置啊,如果仿真库里面默认是端口输出高电平那就是3.3 没错了
249的默认的AD参考电压就是3.3V。我在仿真的时候在P6.0口加上一个电位器了,想通过改变电位器的值实时观察LCD的显示,假如这之前的程序都正确的话,我是不是能观察到我想要的实时改变P6.0口的模拟电压,然后在lcd上&
在线时间865 小时
威望13159 分
芯币28950 枚
E金币22 枚
TA的帖子TA的资源
裸片初长成(初级), 积分 13159, 距离下一级还需 6841 积分
裸片初长成(初级), 积分 13159, 距离下一级还需 6841 积分
#include&&&msp430x24x.h&
#define& &Num_of_Results& &8
volatile unsigned int results[Num_of_Results];&&// Needs to be global in this
& && && && && && && && && && && && && && && & // example. Otherwise, the
& && && && && && && && && && && && && && && & // compiler removes it because it
& && && && && && && && && && && && && && && & // is not used for anything.
void main(void)
{
&&WDTCTL = WDTPW+WDTHOLD;& && && && && && & // Stop watchdog timer
&&P6SEL |= 0x01;& && && && && && && && && & // Enable A/D channel A0
&&ADC12CTL0 = ADC12ON+SHT0_8+MSC;& && && &&&// Turn on ADC12, set sampling time
&&ADC12CTL1 = SHP+CONSEQ_2;& && && && && &&&// Use sampling timer, set mode
&&ADC12IE = 0x01;& && && && && && && && && &// Enable ADC12IFG.0
&&ADC12CTL0 |= ENC;& && && && && && && && & // Enable conversions
&&ADC12CTL0 |= ADC12SC;& && && && && && && &// Start conversion
&&_BIS_SR(LPM0_bits + GIE);& && && && && &&&// Enter LPM0,Enable interrupts
}
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
&&static unsigned int index = 0;
&&results[index] = ADC12MEM0;& && && && && &// Move results
&&index = (index+1)%Num_of_R& && && &// Increment results index, Set Breakpoint1 here
&&if (index == 0)
& & _NOP();& && && && && && && && && && && &// Set Breakpoint2 here
&&
}复制代码
《MCU工程师炼成记》作者之一
在线时间865 小时
威望13159 分
芯币28950 枚
E金币22 枚
TA的帖子TA的资源
裸片初长成(初级), 积分 13159, 距离下一级还需 6841 积分
裸片初长成(初级), 积分 13159, 距离下一级还需 6841 积分
请参考以上AD代码
ADC12MEM0寄存器中的值能从中断中调用出来吗?我需要这个寄存器中的值&
《MCU工程师炼成记》作者之一
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
请参考以上AD代码
ADC12MEM0寄存器中的值能从中断中调用出来吗?我需要这个寄存器中的值
可以的,完成一次转换之后即可读取&
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
ADC12MEM0寄存器中的值能从中断中调用出来吗?我需要这个寄存器中的值
可以的,完成一次转换之后即可读取
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
本帖最后由 tianshuihu 于
09:28 编辑
建议在ADC中断函数的最后做如下尝试
&&sum&&=5;& && && && &//除以32
sum=512;& & //修改此数值看看最终的显示是否正确,如正确显示则可删除此行
& & Trans_val(sum);
另外LCD初始化一次即可,显示的长度一样的话,每次会自动覆盖之前的显示内容,所以每次只需更新显示的数值即可
刚才试了试,加sum=512这行后 调用函数Tran_val(sum);是工作的,但是扯下sum=512;这行之后,lcd上一直显示参考电压3.3V。应该是寄存器中的值没取出来,或者AD没有工作。大神能帮忙看看嘛&
我先试试哈,不管怎么样,先谢谢你!&
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
建议在ADC中断函数的最后做如下尝试
&&sum&&=5;& && && && &//除以32
我先试试哈,不管怎么样,先谢谢你!
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
建议在ADC中断函数的最后做如下尝试
&&sum&&=5;& && && && &//除以32
刚才试了试,加sum=512这行后 调用函数Tran_val(sum);是工作的,但是扯下sum=512;这行之后,lcd上一直显示参考电压3.3V。应该是寄存器中的值没取出来,或者AD没有工作。大神能帮忙看看嘛
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
&&static uint index=0;
&&results[index]=ADC12MEM0; //将转换的结果存入数组
&&Trans_val(results[index]);//在此行设置断点观察一下 results[index] 是否正确
另外用万用表看一下你的引脚电压是否异常
现在用Proteus仿真来着,用里面的249代替149弄的,会有影响吗&
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
现在用Proteus仿真来着,用里面的249代替149弄的,会有影响吗
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
AD功能没什么影响,仿真的话你的端口电压怎么设置啊,如果仿真库里面默认是端口输出高电平那就是3.3 没错了 ...
249的默认的AD参考电压就是3.3V。我在仿真的时候在P6.0口加上一个电位器了,想通过改变电位器的值实时观察LCD的显示,假如这之前的程序都正确的话,我是不是能观察到我想要的实时改变P6.0口的模拟电压,然后在lcd上能显示出来呢?
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
你试试,直接把P6.0 接地,看看有没有变化吧
没有变化,还是显示3.3V。应该是AD没能工作了。现在都只能呵呵了&
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
你试试,直接把P6.0 接地,看看有没有变化吧
没有变化,还是显示3.3V。应该是AD没能工作了。现在都只能呵呵了
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
既然可以显示就说明成功完成了AD转换并且进入了中断处理函数,至于为什么一直是3.3我也感觉很奇怪
如果可能的话单步运行一下看看寄存器变化,进入中断后看看 ADC12MEM0 是否变化过
你也可以把仿真电路图截个屏让大家分析一下,或许有高人能发现问题
电路图很简单,没什么连线都。求大神!&
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
既然可以显示就说明成功完成了AD转换并且进入了中断处理函数,至于为什么一直是3.3我也感觉很奇怪
电路图很简单,没什么连线都。求大神!
本帖子中包含更多资源
才可以下载或查看,没有帐号?
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
孤陋寡闻了,电路图居然可以如此简单....
在线时间829 小时
威望1081 分
芯币3649 枚
E金币152 枚
TA的帖子TA的资源
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
纯净的硅(中级), 积分 1081, 距离下一级还需 119 积分
LCD 和 芯片 都不用供电的吗
Proteus对单片机和液晶显示的外围电路有自动供电的功能吧&
在线时间30 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
一粒金砂(中级), 积分 18, 距离下一级还需 182 积分
LCD 和 芯片 都不用供电的吗
Proteus对单片机和液晶显示的外围电路有自动供电的功能吧
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
都是大神,可以好好学习了
月度明星人物:帮助发帖者解决问题,根据回帖质量&数量确定
论坛测评队员
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?看完就疯了!挑战逻辑极限!!太神了……本以为是简单的视频倒着播,但发现不是啊!求大神解答这到底是怎么拍出来的?!_土豆_高清视频在线观看&&问题详情
我的CSOL这怎么了?进入游戏后在准备跳出登录画面后,出现这个。求大神,
您的回答过短,请将答案描述得更清楚一些
从装,不行在重装系统,最后不行,去叫曹年宝来,修修,还不行骂死他
摇号也得看申请的项目什么时候交房!
便宜实惠的装修我推荐千祥装潢,真心不错
不需要担保,直接可来电免费咨询
这样子的话用法律来维护自己的权益好点,或者是自行协商,协商不成在通过法律.
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
Copyright &
Shang Hai Jing Rong Xin Xi Ke Ji You Xian Gong Si
上海旌荣信息科技有限公司 版权所有
客服电话: 400-850-8888 违法和不良信息举报电话: 010- 举报邮箱:小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
求助numeca大神,为什么老是出现下边的提示,求帮助!!!!
跟着算例一步一步做的怎么老是出现这样的提示,是什么意思,该怎么解决,拜求大神指点:cry:
360截图55888.jpg
/s/1eQCO7iM
非常感谢,还有一个算例rotor37的算例也出错,拜托大神给看看,感谢大神!!!!
/s/1sjHRLbn
把整个文件都上传上来
生成完的网格&&计算iec文件都上传上来。
你只上传了一个几何文件,geomturbo。
帮助文档不用上传。
就是在生成三维网格的时候就会有这个,我是跟着算例做的,是不是软件的问题没有破解好?
你把.trb和.geomturbo文件上传上来
/s/1i3CI1yl
这是算例和模型文件,.trb是什么文件没找到:shuai:
你没保存吗?
那我明天再做一遍,发给你,你看看是哪里出问题了可以吗?
研究生必备与500万研究生在线互动!
扫描下载送金币

我要回帖

更多关于 求ps大神p出的囧图 的文章

 

随机推荐