No.104899 作者:优游青春 邮件:ccjchen2005@126.com ID:71243 登陆:4次 文章数:29篇 最后登陆IP:202.127.24.94 最后登陆:2008/3/28 21:00:57 注册:2007/3/12 10:53:05 财富:228 发帖时间:2007/4/19 18:47:44 发贴者IP:202.127.24.94 标题:优游青春:恭请大虾帮指导一下其中原因,8251与adc0816的混合问题! 摘要:No.104899恭请大虾帮指导一下其中原因,8251与adc0816的混合问题! 现在的问题是我的8251单独调试时,用中断完全正确,但是当加上了adc0816时, 用中断就不行了,采集不到数值,ad[0]仍为原来赋的初值.但是不用中断,把原来 中断中的内容写入main()函数中却可以正确采集,为什么?百思不得其解,请大虾们指导! #define _TEST_C_ #include "reg52.h" #include "stdlib.h" #include "absacc.h" #include "intrins.h" #include "test.h" #include "math.h" #define uchar unsigned char #define uint unsigned int #define COM8251 XBYTE[0x8701] #define DAT8251 XBYTE[0x8700] #define IN0 XBYTE[0x8000] uchar data data_temp[6]={0x52,0x53,0x54,0x55,0x00,0x58}; uchar temp[6]={52,0x53,0x54,0x55,0x00,0x58}; uchar k; uchar data a; static uchar idata ad[16]={0x52,0x53,0x54,0x55,0x00,0x58,0x52,0x53,0x54,0x55,0x00,0x58,0x52,0x53,0x54,0x55}; void initmcu(void); void wait(uchar p,uchar q); void init8251(); void ad0816(uchar idata *x); void Trans8251(void) interrupt 1 using 1 { TH0 = 0XFF; TL0 = 0XFF; do { ad0816(ad);//采集信号 DAT8251=ad[0];//得到第0通道的转换值 }while((COM8251&0x01)==0); for(k=0;k <6;k++) { while((COM8251& ......
>>返回讨论的主题
|