PIC16F1824有什么C编译器能用?

2020-02-06 09:56发布

本帖最后由 1125526801 于 2013-6-15 09:24 编辑

PIC16F1824有什么C编译器能用?之前学习板上的单片机不一样是18F4520,用的MCC18。PIC16F1824是用PICC吗?



360截图20130615092316974.jpg (177.04 KB, 下载次数: 0) 下载附件 2013-6-15 09:23 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
63条回答
1125526801
1楼-- · 2020-02-09 01:13
本帖最后由 1125526801 于 2013-6-15 14:08 编辑
xiongh 发表于 2013-6-15 10:18
MPLAB X  + PICC  挺好用。
#include "pic.h"
#include
  1. #include<pic.h>
  2. __CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);
  3. __CONFIG(PLLEN_OFF&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,
  4. void init_fosc(void)
  5. {
  6. OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
  7. }
复制代码谢谢大家!终于找到个能用的了。。。不过暂时还不能理解。
1125526801
2楼-- · 2020-02-09 06:41
 精彩回答 2  元偷偷看……
xiongh
3楼-- · 2020-02-09 09:10
本帖最后由 xiongh 于 2013-6-15 15:31 编辑

看手册:

12.2 PORTA 寄存器
PORTA 是一个6 位宽的双向端口。对应的数据方向寄存
器是TRISA(寄存器12-4)。将TRISA 某位置1(= 1)
时,会将PORTA 的相应引脚为输入(即,禁止输出
驱动器)。将TRISA 某位清零(= 0)时,会将PORTA
的相应引脚设为输出(即,使能输出驱动器并将输出锁
存器中的内容输出到选定的引脚)。RA3 是个例外,它仅
可作为输入引脚,其TRIS 位总是读为1。例12-1 显示
了如何初始化PORTA。
n0831
4楼-- · 2020-02-09 13:56
楼上正解
1125526801
5楼-- · 2020-02-09 16:03
xiongh 发表于 2013-6-15 15:28
看手册:

12.2 PORTA 寄存器

好。谢谢!我再摸索一下。
1125526801
6楼-- · 2020-02-09 19:50
本帖最后由 1125526801 于 2013-6-20 18:52 编辑
  1. #include<pic.h>

  2. __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & CLKOUTEN_OFF & IESO_ON & FCMEN_OFF);
  3. __CONFIG(WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF);//将FOSC<2:0>:振荡器选择位设置成 INTOSC,


  4. void init_fosc(void)
  5. {
  6. OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
  7. }


  8. void delay500ms(void)   //误差 0us
  9. {
  10.     unsigned char a,b,c;
  11.     for(c=20;c>0;c--)
  12.         for(b=152;b>0;b--)
  13.             for(a=7;a>0;a--);
  14. }
  15. //---------------------------------------
  16. //名称: 主函数                 
  17. //-----------------------------------------
  18. void main()
  19. {       
  20.         init_fosc();
  21.        
  22.         TRISA=0B00000000;       //RA设置为输出
  23.         TRISC=0B00000000;           //RC设置为输出

  24.         PORTA=0B00000000;        //初始化RA
  25.         PORTC=0B00000000;        //初始化RC


  26.         while(1)
  27.         {
  28.                  RC2=1;
  29.                 delay500ms();
  30.                 RC1=1;
  31.                 delay500ms();       
  32.         }
  33. }
复制代码又出状况了。按理接在RC1和RC2的两个LED,应该是常亮的,可是实际他是交替闪。RC1=1时,RC2会自动变为0,什么情况???

一个IO置1,会让同一组的其它自动置0?  试了下一如 RC2=1; RA1=1;,  则不会互相影响。

一周热门 更多>