[PIC®/AVR®/dsPIC®产品] PIC18F452点灯

[复制链接]
 楼主| 玛尼玛尼哄 发表于 2023-4-13 20:56 | 显示全部楼层 |阅读模式
  1. #pragma config FOSC = HS    // 设置时钟源为高速晶振
  2. #pragma config PWRT = ON    // 开启上电复位定时器
  3. #pragma config BOREN = OFF  // 关闭低电压复位
  4. #pragma config WDT = OFF    // 关闭看门狗定时器
  5. #pragma config LVP = OFF    // 禁止低压编程模式

  6. #include <xc.h>

  7. #define LED PORTAbits.RA0  // 定义LED控制口

  8. void main()
  9. {
  10.     TRISAbits.TRISA0 = 0;  // 设置RA0为输出

  11.     while(1)
  12.     {
  13.         LED = 1;           // 点亮LED
  14.         __delay_ms(500);   // 延时500ms
  15.         LED = 0;           // 熄灭LED
  16.         __delay_ms(500);   // 延时500ms
  17.     }
  18. }


 楼主| 玛尼玛尼哄 发表于 2023-4-13 20:56 | 显示全部楼层
以上代码使用了预处理指令设置配置字,并在main函数中定义了LED控制口,并使用一个无限循环实现了LED的闪烁效果。

需要注意的是,此代码中使用了XC8编译器提供的__delay_ms函数,需要在代码中加入#include <xc.h>来包含相关的头文件。此外,也需要在代码中设置相应的端口方向寄存器(TRIS)来控制IO口的输入输出状态。

通过以上代码,可以在PIC18F452单片机上实现一个简单的点灯功能,并通过配置字设置单片机的时钟源和外设工作状态,提高系统的稳定性和可靠性。
pzsh 发表于 2023-4-18 14:50 | 显示全部楼层
我觉得代码风格非常棒!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

3258

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部