PIC16F18444 LED闪烁程序例程 - 详细代码和解释
#include <xc.h>
// \u00a0\u00a0\u00a0\u00a0\u00a0配置位设置 #pragma config FEXTOSC = OFF // \u00a0\u00a0\u00a0\u00a0\u00a0外部振荡器关闭 #pragma config RSTOSC = HFINT32 // \u00a0\u00a0\u00a0\u00a0\u00a0复位时钟选择为32MHz #pragma config CLKOUTEN = OFF // \u00a0\u00a0\u00a0\u00a0\u00a0CLKOUT引脚禁用 #pragma config CSWEN = ON // \u00a0\u00a0\u00a0\u00a0\u00a0器件时钟切换使能 #pragma config FCMEN = OFF // \u00a0\u00a0\u00a0\u00a0\u00a0失能失效时钟监视 #pragma config MCLRE = EXTMCLR // \u00a0\u00a0\u00a0\u00a0\u00a0MCLR引脚功能为RE3
// \u00a0\u00a0\u00a0\u00a0\u00a0主函数 void main(void) { \u00a0\u00a0\u00a0// \u00a0\u00a0\u00a0I/O 配置 \u00a0\u00a0\u00a0TRISA = 0b00000000; // \u00a0\u00a0\u00a0\u00a0\u00a0将PORTA所有引脚配置为输出 \u00a0\u00a0\u00a0ANSELA = 0b00000000; // \u00a0\u00a0\u00a0\u00a0\u00a0将PORTA所有引脚配置为数字模式
\u00a0\u00a0\u00a0// \u00a0\u00a0\u00a0无限循环 \u00a0\u00a0\u00a0while (1) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LATAbits.LATA0 = 1; // \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0将RA0引脚设置为高电平 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0__delay_ms(1000); // \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0延时1秒
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LATAbits.LATA0 = 0; // \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0将RA0引脚设置为低电平 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0__delay_ms(1000); // \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0延时1秒 \u00a0\u00a0\u00a0} }
这个例程中,我们使用了PIC16F18444的RA0引脚来控制一个LED的闪烁。程序首先进行了一些配置位的设置,然后在主函数中设置了RA0引脚为输出模式,并在一个无限循环中不断地将RA0引脚的电平设置为高或低,从而实现LED的闪烁效果。在每次电平设置后,使用__delay_ms函数进行1秒的延时。
原文地址: https://www.cveoy.top/t/topic/qjbq 著作权归作者所有。请勿转载和采集!