写了一个最简单的端口翻转程序,结果端口没有翻转,用外部12M晶振 ,麻烦谁用过这个单片机的看一下。
#include
#include "..\Main\VAS6685.h"
//__CONFIG (WDTE_OFF&FOSC_INTRCIO &PWRTE_ON & MCLRE_ON &BOREN_ON &FCMEN_ON );//
__CONFIG(0x3FF2);//外部
#define _XTAL_FREQ 12000000 // 12M晶振数值
// __CONFIG(0x31b4);
//看门狗关;内部RC振荡,RA4/RA5做I/O,MCLR脚做复位
void IO_inti(void);
void IO_inti()
{
TRISC=0x00;//PORTC输出
RC4=0;
}
void main()
{
int t=0;
// OSCCON = 0x77;//8M内部时钟
IO_inti();
while(1)
{
RC4=1;
RC4=0;
}
}
PIC16F690单片机程序问题
答案:2 悬赏:10 手机版
解决时间 2021-02-18 21:12
- 提问者网友:暗中人
- 2021-02-18 15:43
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-02-18 17:17
1. 首先你所要控制的PORT要设为output。TRISC=0x00;//PORTC输出。你这个寄存器如果其效果就没有问题
2. while(1)
{
RC4=!RC4;
//delay(); 加个几百毫秒的延时才能看出效果
}
或者
while(1)
{
RC4=1;
//delay(); 加个几百毫秒的延时才能看出效果
RC4=0;
//delay(); 加个几百毫秒的延时才能看出效果
}
全部回答
- 1楼网友:纵马山川剑自提
- 2021-02-18 18:29
我试着写一下啦,但是我电脑没有装mplab软件,
没有编译,不过你可以拿回去试试,可以参考思路
程序其实很简单
#include //用的是picc编译器
__config (hs & protect & pwrten & boren & wdtdis);
//pic单片机都需要配置该位,hs是外部晶振模式
// 使能protect保护程序存储器
//boren使能掉电保护
//wdtdis关闭看门狗
void display(int pulse_amount);
void main(void)
{
int pulse_amount //定义变量,存储外部脉冲数
scs=0; //时钟源的选择。
tmr0=0; //清零计数器
option_reg=0x20; //定义计数模式,对单片机的tock1引脚的脉冲
//计数,每来一个脉冲,tmr0就会加1,设置好之后计数器就开始工作了
while(1) //这个循环就是不断读取计数值
{
pulse_amount=tmr0;
display(pulse_amount); //这个程序是我假设的,就是用来显示计数值
}
}
程序的局限性在于,因为定时器0是8位的,也就是对外部引脚脉冲计数的最大值
是256 当计数值达到这个值后,计数器的值会自动清零,这时候你可以设置一个中断
程序来计数。我这里不多讲了。
外部脉冲频率是由晶振决定的,定时器在计数模式下,计数初值和计数值跟那两个没有任何关系
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯