| 
|  | 
18f4550 usb interfacing...
[复制链接] |  
 |  | 
 
 发表于 17-2-2009 08:42 AM
|
显示全部楼层 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 3-3-2009 03:33 PM
|
显示全部楼层 
| 版主大大,前阵子在忙其他功课。 现在可以继续做project了。
 上次说到那个lcd和lm35的部分。
 1.请问MPLAB是不是不可以用那个program的啊?
 2.那么如果我是用mplab的话,要怎么改啊?会很难吗?
 
 3.另外再问下,请问有没有软件可以在电脑上就可以测试到或看到我自己写的program烧进pic单片后的结果?
 4.我今天装了ccs demo version.当我把上面的code放进去compile之后,出现 error90, 说 LCD_INIT_STRING (Attempt to create a pointer to a constant)的错误。
 然后我把16f877a.h换成18f4550之后也有问题,不能compile,说unknown device..
 希望PIC 版主可以帮我。。
 
 [ 本帖最后由 冷血趙雲 于 4-3-2009 10:47 PM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 5-3-2009 09:35 AM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 3-3-2009 03:33 PM 发表  1.请问MPLAB是不是不可以用那个program的啊?
不可以。
 
 
 2.那么如果我是用mplab的话,要怎么改啊?会很难吗?MPlab只是界面, 不是Compiler, 除非你挂上C18, CCS C, ASM 之类的。
 
 
 参考:【讨论】Proteus VSM3.另外再问下,请问有没有软件可以在电脑上就可以测试到或看到我自己写的program烧进pic单片后的结果?
 
 4.我今天装了ccs demo version.当我把上面的code放进去compile之后,出现 error90, 说 LCD_INIT_STRING (Attempt to create a pointer to a constant)的错误。你修改过源码?
 
 
   然后我把16f877a.h换成18f4550之后也有问题,不能compile,说unknown device..建议你要求学校购买CCS C PCWH 完整版。
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 5-3-2009 06:49 PM
|
显示全部楼层 
| 原帖由 pic 于 5-3-2009 09:35 AM 发表  
 不可以。
 
 
 MPlab只是界面, 不是Compiler, 除非你挂上C18, CCS C, ASM 之类的。
 
 参考:【讨论】Proteus VSM
 
 
 你修改过源码?
 
 
 建议你要求学校购买CCS C PCWH 完整版。
 那个源码我没有改变过。
 MPLAB我有C18了。也有用microchip所给的example测试过我的电路。
 一切顺利。
 可是要我自己写一个ADC+LCD的program给18F4550我就真的不会了。。
 请问pic版主用的ccs是完整版的吗?
 不知道版主可以用你的code compile了hex file给我测试吗?
 
 [ 本帖最后由 冷血趙雲 于 5-3-2009 06:50 PM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 5-3-2009 09:57 PM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 5-3-2009 06:49 PM 发表  可是要我自己写一个ADC+LCD的program给18F4550我就真的不会了。。
只是把16F877A 改成 18F4550而已
 
 
 是。
 
 
 不知道版主可以用你的code compile了hex file给我测试吗?可以, 只是一次,下不为例。
 18F4550_ADC_LCD.zip
 复制代码#include <18F4520.h>
#device ADC=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
///////////////////////////////////////////////////////////////////////////////
// LCD Driver
///////////////////////////////////////////////////////////////////////////////
// As defined in the following structure the pin connection is as follows:
/*
LCD 16 X 2 line
PortD.0-> RS
PortD.1-> RW
PortD.2-> E
PortD.3
PortD.4-> D4
PortD.5-> D5
PortD.6-> D6
PortD.7-> D7
*/
/////////////////////////////////////////////////////////////////
// LCD Driver
struct lcd_pin_map {                 // This structure is overlayed
           boolean rs;               // on to an I/O port to gain
           boolean rw;               // access to the LCD pins.
           boolean enable;           // The bits are allocated from
           boolean unused;           // low order up.  ENABLE will
           int     data : 4;         // be pin B0.
        } lcd;
#byte lcd = 0x08                 // on to port D (at address 0x08)
byte CONST LCD_INIT_STRING[4] = {0x28, 0xc, 1, 6};
void lcd_send_nibble( byte n )
{
      lcd.data = n;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(2);
      lcd.enable = 0;
}
void lcd_send_byte( byte address, byte n )
{
      lcd.rs = 0;
      delay_ms(5);
      lcd.rs = address;
      delay_cycles(1);
      lcd.rw = 0;
      delay_cycles(1);
      lcd.enable = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}
void lcd_init()
{
    byte i;
    set_tris_d(0);
    lcd.rs = 0;
    lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
    {
      lcd_send_byte(0,LCD_INIT_STRING[i]);
    }
}
void lcd_gotoxy( byte x, byte y)
{
   byte address;
   if(y!=1)
     address=0x40;
   else
     address=0;
   address+=x-1;
   lcd_send_byte(0,0x80|address);
}
void lcd_putc( char c)
{
   switch (c) {
     case '\f'   : lcd_send_byte(0,1); //delay_ms(5);
                    break;
     case '\n'   : lcd_gotoxy(1,2);          break;
     default     : lcd_send_byte(1,c);       break;
   }
}
///////////////////////////////////////////////////////////////////////////////
void main()
{
   long value;
   lcd_init();
   delay_ms(6);
   lcd_putc("\fLight Measure");
   lcd_putc("\nBy : PIC @ cArI");
   delay_ms(1000);
   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );
   while(TRUE)
   {
      value = Read_ADC();
      printf(lcd_putc,"\fReading: %lu ",value);
      delay_ms(500);
   }
}
[ 本帖最后由 pic 于 6-3-2009 09:14 AM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 5-3-2009 10:36 PM
|
显示全部楼层 
| 原帖由 pic 于 5-3-2009 09:57 PM 发表  
 只是把16F877A 改成 18F4550而已
 
 
 是。
 
 
 可以, 只是一次,下不为例。
 18F4550_ADC_LCD.zip#include
 #device ADC=10
 #fuses HS,NOWDT,NOPROTECT,NOLVP
 #use delay(clock=20000000)
 
 /////////////// ...
 真的很感谢版主的帮助!
 我把这个做完了的话会整理一下资料给其他网友看,
 希望他们也可以得到想我现在得到的帮助!
 谢谢。
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 6-3-2009 09:27 AM
|
显示全部楼层 
| 4.我今天装了ccs demo version.当我把上面的code放进去compile之后,出现 error90, 说 LCD_INIT_STRING (Attempt to create a pointer to a constant)的错误。纠正: 我发现发源码时, 有些字符会消失, 所以, 处了 用 [ code ]     [ /code ] 代码, 还要 禁用 Smilies。
 还有, 当用copy paste 时, [ i ] 会被误认为是Italic 效果
 这是为什么你得到:  error90, LCD_INIT_STRING (Attempt to create a pointer to a constant)的错误。
 复制代码——--------------
不正确: 
没有禁用 Smilies
——--------------
  for(i=0;i<=3;++i)
    {
      lcd_send_byte(0,LCD_INIT_STRING);
    }
   lcd_putc("\fLight Measure";
   lcd_putc("\nBy : PIC @ cArI";
复制代码——-------------- 
正确:
禁用 Smilies
——--------------
  for(i=0;i<=3;++i)
    {
      lcd_send_byte(0,LCD_INIT_STRING[i]);
    }
   lcd_putc("\fLight Measure");
   lcd_putc("\nBy : PIC @ cArI");
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 6-3-2009 05:11 PM
|
显示全部楼层 
| 原来啊。。。 我就是发觉怎么一直compile就是还是不对- -
 真的谢谢版主啦。
 本来还想再问的。。又不好意思。。哈哈。
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 6-3-2009 05:54 PM
|
显示全部楼层 
| 报告版主。。 我的LCD和LM接上电路之后,再把那个hex file用bootloader烧进去。
 可是要烧进去之前,它说我的bootloader的config和hex file的config不同,如果照样烧进去的话,以后可能不能用bootloader.
 所以第一次我测试就不用hex file的config了。把program烧进去后测试。
 看到LCD只是出现上面那列全部都黑色。下方没有东西。
 失败了。
 
 那就再烧一次。这次烧进去时候,用hex file 的 config了。一烧完之后,测试一下看还可以用bootloader不。结果不能了。就继续测试刚才那个lcd看可以有什么结果。
 结果,和第1次的一样。。。LCD screen上面那行全部都亮,(就是都黑色的意思)。下面那行全部没有亮。。
 请问是什么原因呢?
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 6-3-2009 10:35 PM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 6-3-2009 05:54 PM 发表  看到LCD只是出现上面那列全部都黑色。下方没有东西。
RV1 有调整了吗?(调Contrast)
 注意检查不要接错线。
 
 还有不好意思, 源码有错误,在第33行左右 修正如下。
 ——复制代码//#byte lcd = 0x08                 // on to port D (at address 0x08)
#byte lcd = 0xf83                 // on to port D 18F MCU (at address 0xf83)
下载02
 
 
  | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 08:01 AM
|
显示全部楼层 
| 原帖由 pic 于 6-3-2009 10:35 PM 发表  
 RV1 有调整了吗?(调Contrast)
 注意检查不要接错线。
 
 还有不好意思, 源码有错误,在第33行左右 修正如下。//#byte lcd = 0x08                 // on to port D (at address 0x08)
 #byte lcd = 0xf83      ...
 版主。请问要如何检查自己的lcd有没有坏呢?
 正常的话不接program,他会是如何的?
 为什么我只出现上面那排是全部黑的。。
 下面的却是没有东西。。
 还有我接back light和没有接好像都没有分别。。
 你给的program我试了用proteus来测试,是可以走了的。
 证明program没有问题。。
 可是我的情况还是一样。lcd没有display.
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 09:09 AM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 7-3-2009 08:01 AM 发表  版主。请问要如何检查自己的lcd有没有坏呢?
 正常的话不接program,他会是如何的?
不接program, 上电后多数空一片,或乱码(很少)
 如果Contrast 不对, 上排会黑一片。
 
 
 为什么我只出现上面那排是全部黑的。。下面的却是没有东西。。
请问RV1 有调整了吗?(调Contrast)
 答案: 有  或 没有。
 
 要不然就是你接错线。。。
 
 
 还有我接back light和没有接好像都没有分别。。你的LCD 有多少pin?14pin? 16 pin?
 你能放清楚的照片看看吗?
 
 清楚: 定义就是让人看了明白, 一看就明白, 不会问你长, 问你短,照时请用Macro mode, 对焦(Focus)正确, 清晰的照片,不要那种蒙蒙的, 照片640x480 为佳, 从主要的和不同的角度拍下。
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 09:29 AM
|
显示全部楼层 
| 原帖由 pic 于 7-3-2009 09:09 AM 发表  
 不接program, 上电后多数空一片,或乱码(很少)
 如果Contrast 不对, 上排会黑一片。
 
 
 请问RV1 有调整了吗?(调Contrast)
 答案: 有  或 没有。
 
 要不然就是你接错线。。。
 
 
 你的LCD 有多少pin?1 ...
 
 版主,我拍了照片,只是拍那个lcd的而已。。
 本身手机拍照像素很差。。。不敢拍完全部。。不然一定“不清楚”的。。- -
 
 
  
 link:http://i282.photobucket.com/albums/kk253/game4ulov/20090307.jpg
 那么照你这么说。。这个情况是contrast问题??
 可是我有接了。。用variable resistor调它也只是那排黑色浅一些或者深一些而已。。
 
 这个是16个pin的。我把A和K分别接去gnd和vcc,没有看到背光。再把2者倒转,也是没有看到背光。。
 
 [ 本帖最后由 冷血趙雲 于 7-3-2009 09:31 AM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 10:06 AM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 7-3-2009 09:29 AM 发表  那么照你这么说。。这个情况是contrast问题??
 可是我有接了。。用variable resistor调它也只是那排黑色浅一些或者深一些而已。。
请调浅一些, 隐约见到就可以了。
 
 
 这个是16个pin的。我把A和K分别接去gnd和vcc,没有看到背光。再把2者倒转,也是没有看到背光。。 如没有看到背光, 请接5V,串连大概20ohm 的电阻, 去 A 和K, 如下图。
 要有电阻, 不然背光LED可能会烧。
 
  
 如果不可以,
 请试以下的闪灯测试, 量Port D, 应该看到 5V, 0V 交替, 2秒。
 如果不可以, 做到可以为止, 如你用Demo CCS C, 可能用18F4520 / 18F452, 或16F877A来compile,
 18F4520/ 452 的hex 可能可以在18F4550 上运行, 但不确定, 我没试过。
 复制代码// 看你是用什么MCU而定
#include <16F877A.h>
// #include <18F4550.h>
// #include <18F4520.h>
// #include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
void main()
{
   while(TRUE)
   {
      output_D(0b11110000)  ;
      delay_ms(2000)  ;
      output_D(0b00001111)  ;
      delay_ms(2000)  ;
   }
}
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 10:53 AM
|
显示全部楼层 
| 原帖由 pic 于 7-3-2009 10:06 AM 发表  
 请调浅一些, 隐约见到就可以了。
 
 
 如没有看到背光, 请接5V,串连大概20ohm 的电阻, 去 A 和K, 如下图。
 要有电阻, 不然背光LED可能会烧。
 
 
 如果不可以 ...
 版主,我测试了那个program,也compile了不同的版本。。没有一个成功= =
 我怀疑是program时候的setting..
 我是用bootloader来program的。
 所以当我把那个led闪烁的hex file放进去时候,就会prompt这个出来。
 
  如果我按no的话,就可以把程序烧进去。可是setting用回bootloader的。
 如果我按yes的话,烧到一半时候,device根本detect不到了。结果按bootload button也没有反应了。
 是不是因为这个问题呢?
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 12:21 PM
|
显示全部楼层 
| 我加多那几项setting之后,没有那个窗口跳出来了。可以直接用bootloader烧进去里面。复制代码// 看你是用什么MCU而定
//#include <16F877A.h>
#include <18F4550.h>
//#include <18F4520.h>
//#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOPBADEN,WRTB,VREGEN,PLL5,HSPLL
#use delay(clock=20000000)
void main()
{
   while(TRUE)
   {
      output_D(0b11110000)  ;
      delay_ms(200)  ;
      output_D(0b00001111)  ;
      delay_ms(200)  ;
   }
}
可是结果,portD还是不会闪烁。。。把code换去其他的port,还是不能闪烁。。。
 可是把program放进去proteus里面走,就一切很正常。
 
 我也有check过我的circuit。可是也没有问题,因为用microchip给的那些demo code放进去的话,也很正常。。。
 不知道什么原因。
 我做在pcb board的circuit是这样。
 
  
 
 
 我现在打算这样。
 我先不要用lcd接上mcu,
 而只是想接lm35进去mcu而已。
 然后写一个program,看看读到lm35还是不,
 不知道那个program要怎样写呢?
 最简单的就可以了。
 如果读到是ok的。那就应该证明mcu circuit没有问题吧。
 只是猜测。。
 
 [ 本帖最后由 冷血趙雲 于 7-3-2009 12:24 PM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 02:24 PM
|
显示全部楼层 
| 用这个, 你应该可以用Bootloader。 复制代码 
#include <18F4550.h>
#device adc=10  
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
我现在打算这样。我先不要用lcd接上mcu,
 而只是想接lm35进去mcu而已。
 然后写一个program,看看读到lm35还是不,
 不知道那个program要怎样写呢?
 最简单的就可以了。
 如果读到是ok的。那就应该证明mcu circuit没有问题吧。
 只是猜测。。
如果闪灯在PortD 这个最基本的都做不到的话, 其他的都不用试了。
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 02:43 PM
|
显示全部楼层 
| 原帖由 pic 于 7-3-2009 02:24 PM 发表  用这个, 你应该可以用Bootloader。
 #include
 #device adc=10
 #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
 #use delay(clock=48000000)
 如果闪灯在PortD 这个最基本的都做不到 ...
 有好转了!
 今早一直都在找关于这个的资料。
 结果找到这篇文章。http://www.ccsinfo.com/forum/viewtopic.php?t=31745&highlight=18f4550
 所以就试了加几行进去。变成这样
 当我加了这几行之后。复制代码#include <18F4550.h>
//#include <16F877A.h>
#device ADC=10
#fuses HS,NOWDT,NOPROTECT,NOLVP,XT
#use delay(clock=20000000)
#define LOADER_END 0x7FF 
#define LOADER_SIZE 0x6FF 
#build(reset=LOADER_END+1, interrupt=LOADER_END+9) 
#org 0, LOADER_END {} // nothing will replace the bootloader memory space 
///////////////////////////////////////////////////////////////////////////////
// LCD Driver
///////////////////////////////////////////////////////////////////////////////
// As defined in the following structure the pin connection is as follows:
/*
LCD 16 X 2 line
PortD.0-> RS
PortD.1-> RW
PortD.2-> E
PortD.3
PortD.4-> D4
PortD.5-> D5
PortD.6-> D6
PortD.7-> D7
*/
/////////////////////////////////////////////////////////////////
// LCD Driver
struct lcd_pin_map {                 // This structure is overlayed
           boolean rs;               // on to an I/O port to gain
           boolean rw;               // access to the LCD pins.
           boolean enable;           // The bits are allocated from
           boolean unused;           // low order up.  ENABLE will
           int     data : 4;         // be pin B0.
        } lcd;
//#byte lcd = 0x08                 // on to port D (at address 0x08)
#byte lcd = 0xf83                 // on to port D (at address 0x08)
byte CONST LCD_INIT_STRING[4] = {0x28, 0xc, 1, 6};
void lcd_send_nibble( byte n )
{
      lcd.data = n;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(2);
      lcd.enable = 0;
}
void lcd_send_byte( byte address, byte n )
{
      lcd.rs = 0;
      delay_ms(5);
      lcd.rs = address;
      delay_cycles(1);
      lcd.rw = 0;
      delay_cycles(1);
      lcd.enable = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}
void lcd_init()
{
    byte i;
    set_tris_d(0);
    lcd.rs = 0;
    lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
    {
      lcd_send_byte(0,LCD_INIT_STRING);
    }
}
void lcd_gotoxy( byte x, byte y)
{
   byte address;
   if(y!=1)
     address=0x40;
   else
     address=0;
   address+=x-1;
   lcd_send_byte(0,0x80|address);
}
void lcd_putc( char c)
{
   switch (c) {
     case '\f'   : lcd_send_byte(0,1); //delay_ms(5);
                    break;
     case '\n'   : lcd_gotoxy(1,2);          break;
     default     : lcd_send_byte(1,c);       break;
   }
}
///////////////////////////////////////////////////////////////////////////////
void main()
{
   long value;
   lcd_init();
   delay_ms(6);
   lcd_putc("\fADC on LCD");
   lcd_putc("\nBy : PIC @ cArI");
   delay_ms(1000);
   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );
   while(TRUE)
   {
      value = Read_ADC();
      printf(lcd_putc,"\fReading: %lu C",value);
      delay_ms(500);
   }
}
#define LOADER_END 0x7FF
 #define LOADER_SIZE 0x6FF
 #build(reset=LOADER_END+1, interrupt=LOADER_END+9)
 #org 0, LOADER_END {} // nothing will replace the bootloader memory space
 用bootloader烧在mcu之后,可以测试到portd有闪烁了!
 然后接好lcd之后,却出现了乱码。。
 然后按reset之后呢。
 就正常了!!!
 现在问题出现了。。
 出来的reading是 70多.....然后那个reading一直变动。
 
 
 1.那么请问版主,到底我加那几行是什么意思呢?
 2.我一supply 5v进去时候就是乱码。要按reset才可以看到,是不是因为address不对?
 3.reading正常吗?
 
 
 补上图片:
 
  上面是正常,下面是乱码:
 
 
  
 
 
 [ 本帖最后由 冷血趙雲 于 7-3-2009 02:53 PM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 03:14 PM
|
显示全部楼层 
| 原帖由 冷血趙雲 于 7-3-2009 02:43 PM 发表  1.那么请问版主,到底我加那几行是什么意思呢?
bootloader 是用了0-07ff的开始位置, 那几行是叫CCS compiler reserve 前面的memory。
 
 可以帮我看下面的code 能成功吗?
 复制代码#include <18F4550.h>
#build(reset=0x800, interrupt=0x808)
#org 0x000, 0x7ff { }
#fuses HSPLL,NOWDT, NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
 
2.我一supply 5v进去时候就是乱码。要按reset才可以看到,是不是因为address不对?你的18F4550开机时是running mode 吗?
 
 
 不知道, 你有接电到AN0 吗?
 | 
 |  |  |  |
 
|  |  |  
|  |  | 
 |  | 
 
 发表于 7-3-2009 06:07 PM
|
显示全部楼层 
| 原帖由 pic 于 7-3-2009 03:14 PM 发表  
 bootloader 是用了0-07ff的开始位置, 那几行是叫CCS compiler reserve 前面的memory。
 
 可以帮我看下面的code 能成功吗?#include
 #build(reset=0x800, interrupt=0x808)
 #org 0x000, 0x7ff { }
 #fuses HSP ...
 对不起版主,迟回复了。
 之前出门了。
 回到来刚刚就把你的code放进去了。
 可以用!
 而且没有乱码了!
 然后reading从之前的70左右现在变成17左右。。(目前家里面应该有30左右)
 而且reading没有那么容易飘了。
 AN0有接电,就是接lm35的方法。中间脚去an0.
 如果把那脚拆出来的话,reading去到110左右(之前那个program去到200多)
 
 1.为什么不要ADC=10了?
 2.fuses加了那几个是什么意思?
 
 [ 本帖最后由 冷血趙雲 于 7-3-2009 06:53 PM 编辑 ]
 | 
 |  |  |  |
 
|  |  |  
|  |  |  |  | 
            本周最热论坛帖子 |