打印
[PIC®/AVR®/dsPIC®产品]

PIC10F202单片机无法运行程序(求助!!)

[复制链接]
6937|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 smallsummers 于 2024-11-17 17:54 编辑

如题,求助各位大佬,我新入行学习PIC10单片机,选用PIC10F202T型号,使用MPLAB X IDE V6.20开发,代码如下,但烧录成功后无法测到输出的电压。
代码如下:
#pragma config WDTE = OFF       // Watchdog Timer (WDT disabled)
#pragma config CP = OFF         // Code Protect (Code protection off)
#pragma config MCLRE = OFF      // Master Clear Enable (GP3/MCLR pin fuction is digital I/O, MCLR internally tied to VDD)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>
#include <stdio.h>
#include <stdlib.h>

/*
*
*/
int main(int argc, char** argv) {
    TRISGPIO = 0x00;
    GPIO = 0x0f;
    while(1)
    {
    }
    return (EXIT_SUCCESS);
}

使用特权

评论回复
沙发
smallsummers|  楼主 | 2024-11-16 17:08 | 只看该作者
这是我画的开发板的电路图,不清楚是不是电路的问题?其中GP0作为输入,GP1作为输出,感谢各位大佬帮助!

60797673860bf1fb79.png (46.7 KB )

60797673860bf1fb79.png

使用特权

评论回复
板凳
smallsummers|  楼主 | 2024-11-16 17:11 | 只看该作者
我使用的是Kit3 烧录的,但是很奇怪的是,Proteus仿真却可以实现程序功能。各位大佬注意,我说的是无法输出高电平或低电平,我觉得可能是程序没有正常执行。

234056738615b62baf.png (37.16 KB )

234056738615b62baf.png

使用特权

评论回复
地板
丙丁先生| | 2024-11-17 08:01 | 只看该作者
# PIC10F202T单片机基础程序注释

## 1. 配置指令
### 1.1 看门狗定时器禁用
#### 1.1.1 看门狗定时器配置
- `#pragma config WDTE = OFF` // 看门狗定时器(WDT)被禁用,防止程序运行时意外重置。

### 1.2 代码保护禁用
#### 1.2.1 代码保护设置
- `#pragma config CP = OFF` // 代码保护被关闭,允许读取和修改程序存储器中的内容。

### 1.3 主清除引脚功能禁用
#### 1.3.1 MCLR引脚配置
- `#pragma config MCLRE = OFF` // 主清除引脚(MCLR)功能被禁用,GP3/MCLR引脚作为数字I/O使用,MCLR内部连接到VDD。

## 2. 包含头文件
### 2.1 专用头文件包含
#### 2.1.1 XC头文件
- `#include <xc.h>` // 包含Microchip专用头文件,提供寄存器和位定义。

### 2.2 标准输入输出头文件包含
#### 2.2.1 STDIO头文件
- `#include <stdio.h>` // 包含标准输入输出库,用于输入输出操作。

### 2.3 标准库头文件包含
#### 2.3.1 STDLIB头文件
- `#include <stdlib.h>` // 包含标准库,提供通用工具函数。

## 3. 主函数实现
### 3.1 GPIO方向设置
#### 3.1.1 设置GPIO为输出
- `TRISGPIO = 0x00;` // 将所有GPIO引脚配置为输出模式。

### 3.2 GPIO初始状态设置
#### 3.2.1 设置GPIO输出低电平
- `GPIO = 0x00;` // 将所有GPIO引脚输出状态设置为低电平。

### 3.3 主循环
#### 3.3.1 空循环
- `while(1) {}` // 程序进入无限循环,没有执行任何操作。

### 3.4 程序结束
#### 3.4.1 返回状态
- `return (EXIT_SUCCESS);` // 程序返回成功状态并结束。

使用特权

评论回复
5
丙丁先生| | 2024-11-17 08:04 | 只看该作者
在PIC10F202T单片机的基础程序中,要实现一个简单的闪灯程序,我们可以在主循环中添加代码来控制GPIO引脚输出高低电平交替变化,从而实现LED灯的闪烁。以下是修改后的程序注释:

```c
// PIC10F202T单片机基础程序注释

// 1. 配置指令
// 1.1 看门狗定时器禁用
// 1.1.1 看门狗定时器配置
#pragma config WDTE = OFF // 看门狗定时器(WDT)被禁用,防止程序运行时意外重置。

// 1.2 代码保护禁用
// 1.2.1 代码保护设置
#pragma config CP = OFF // 代码保护被关闭,允许读取和修改程序存储器中的内容。

// 1.3 主清除引脚功能禁用
// 1.3.1 MCLR引脚配置
#pragma config MCLRE = OFF // 主清除引脚(MCLR)功能被禁用,GP3/MCLR引脚作为数字I/O使用,MCLR内部连接到VDD。

// 2. 包含头文件
// 2.1 专用头文件包含
#include <xc.h> // 包含Microchip专用头文件,提供寄存器和位定义。

// 2.2 标准输入输出头文件包含
#include <stdio.h> // 包含标准输入输出库,用于输入输出操作。

// 2.3 标准库头文件包含
#include <stdlib.h> // 包含标准库,提供通用工具函数。

// 3. 主函数实现
void main() {
    // 3.1 GPIO方向设置
    TRISGPIO = 0x00; // 将所有GPIO引脚配置为输出模式。

    // 3.2 GPIO初始状态设置
    GPIO = 0x00; // 将所有GPIO引脚输出状态设置为低电平。

    // 3.3 主循环
    while(1) {
        // 在这里添加闪灯程序代码
        // 3.3.1 切换GPIO状态
        GPIO = 0xFF; // 将所有GPIO引脚输出状态设置为高电平。
        __delay_ms(500); // 延时500毫秒。
        GPIO = 0x00; // 将所有GPIO引脚输出状态设置为低电平。
        __delay_ms(500); // 延时500毫秒。
    }

    // 3.4 程序结束
    return (EXIT_SUCCESS); // 程序返回成功状态并结束。
}
```

在这个程序中,我们使用了`__delay_ms()`函数来实现延时,这个函数是Microchip提供的用于延时的宏,参数是延时的毫秒数。这里我们设置了500毫秒的延时,使得LED灯能够以可见的速度闪烁。需要注意的是,`__delay_ms()`函数的实现依赖于单片机的时钟频率,因此具体的延时时间可能会根据实际的时钟设置有所不同。

使用特权

评论回复
6
丙丁先生| | 2024-11-17 08:06 | 只看该作者
这样就可以了,原因是主函数While中没有端口输出高电平的程序段。

使用特权

评论回复
7
丙丁先生| | 2024-11-17 08:07 | 只看该作者
自学时用Kimi,翻译成中文逐行注释,然后仔细看,慢慢积累经验,

使用特权

评论回复
8
稳稳の幸福| | 2024-11-17 14:36 | 只看该作者
你这程序什么都没做啊。就是输出了个0啊。

使用特权

评论回复
9
稳稳の幸福| | 2024-11-17 14:37 | 只看该作者
测试的话,可以写一个Blink程序,让一个IO一秒内闪烁一下。高低交替0.5s.

使用特权

评论回复
10
smallsummers|  楼主 | 2024-11-17 17:53 | 只看该作者
我写过全部输出高电平的 也是测不到高电平 但是在仿真里就能用 是不是电路问题呀

使用特权

评论回复
11
xionghaoyun| | 2024-11-18 11:13 | 只看该作者
时钟初始化没 跑例程就可以了

使用特权

评论回复
12
smallsummers|  楼主 | 2024-11-18 16:04 | 只看该作者
xionghaoyun 发表于 2024-11-18 11:13
时钟初始化没 跑例程就可以了

我使用Kit 3.5供电 程序就能正常运行 使用其他电源直接供电 就不能运行

使用特权

评论回复
13
zhuotuzi| | 2024-11-28 20:07 | 只看该作者
这个型号挺老的了。以前都是汇编用它。

使用特权

评论回复
14
hahajing27| | 2024-12-7 16:53 | 只看该作者
新进的人用avr好点,学这类片子用pic16f71好点,然后main()是主函数,不带返回的

使用特权

评论回复
15
hahajing27| | 2024-12-7 17:02 | 只看该作者
而且这个片子有内部上下拉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝