2020-02-06 09:56发布
xiongh 发表于 2013-6-15 10:18 MPLAB X + PICC 挺好用。 #include "pic.h" #include
xiongh 发表于 2013-6-15 15:28 看手册: 12.2 PORTA 寄存器
最多设置5个标签!
- #include<pic.h>
- __CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);
- __CONFIG(PLLEN_OFF&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,
- void init_fosc(void)
- {
- OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
- }
复制代码谢谢大家!终于找到个能用的了。。。不过暂时还不能理解。看手册:
12.2 PORTA 寄存器
PORTA 是一个6 位宽的双向端口。对应的数据方向寄存
器是TRISA(寄存器12-4)。将TRISA 某位置1(= 1)
时,会将PORTA 的相应引脚为输入(即,禁止输出
驱动器)。将TRISA 某位清零(= 0)时,会将PORTA
的相应引脚设为输出(即,使能输出驱动器并将输出锁
存器中的内容输出到选定的引脚)。RA3 是个例外,它仅
可作为输入引脚,其TRIS 位总是读为1。例12-1 显示
了如何初始化PORTA。
好。谢谢!我再摸索一下。
- #include<pic.h>
- __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & CLKOUTEN_OFF & IESO_ON & FCMEN_OFF);
- __CONFIG(WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF);//将FOSC<2:0>:振荡器选择位设置成 INTOSC,
- void init_fosc(void)
- {
- OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
- }
- void delay500ms(void) //误差 0us
- {
- unsigned char a,b,c;
- for(c=20;c>0;c--)
- for(b=152;b>0;b--)
- for(a=7;a>0;a--);
- }
- //---------------------------------------
- //名称: 主函数
- //-----------------------------------------
- void main()
- {
- init_fosc();
-
- TRISA=0B00000000; //RA设置为输出
- TRISC=0B00000000; //RC设置为输出
- PORTA=0B00000000; //初始化RA
- PORTC=0B00000000; //初始化RC
-
- while(1)
- {
- RC2=1;
- delay500ms();
- RC1=1;
- delay500ms();
- }
- }
复制代码又出状况了。按理接在RC1和RC2的两个LED,应该是常亮的,可是实际他是交替闪。RC1=1时,RC2会自动变为0,什么情况???一个IO置1,会让同一组的其它自动置0? 试了下一如 RC2=1; RA1=1;, 则不会互相影响。
一周热门 更多>