冰楓論壇
標題:
MCU NXP P87LPC768FN 87LPC768 DIP-20
[打印本頁]
作者:
洪嵐峰
時間:
2023-4-9 16:25
標題:
MCU NXP P87LPC768FN 87LPC768 DIP-20
NXP P87LPC768FN 是一款低成本 8 位微控制器,具有 8 KB 的 Flash 程序存儲器和 768 字節的 RAM。它使用的是 RISC 架構,具有 16 位指令字長和 8 位資料字長,最大運行頻率可達 20 MHz。
P87LPC768FN 的 DIP-20 封裝是一種雙列插針封裝,具有 20 個腳位,易於在原型開發和樣機製作中使用。
以下是 P87LPC768FN 的一個簡單範例,使用計時器和外部中斷來實現 LED 燈閃爍和按鈕檢測:
#include <p87lpc768fn.h>
#define LED_PIN P0_0
#define BUTTON_PIN P1_0
volatile unsigned int timer_count = 0;
volatile unsigned char button_state = 0;
void init_timer()
{
// 設置計時器 0 的時鐘和計數器值,以產生 500ms 的中斷
TMOD = 0x01;
TH0 = 0xC2;
TL0 = 0xAF;
TR0 = 1;
// 啟用計時器 0 中斷
ET0 = 1;
EA = 1;
}
void init_button()
{
// 設置按鈕引腳為輸入狀態,並啟用外部中斷 1
BUTTON_PIN = 1;
EX1 = 1;
EA = 1;
}
void main()
{
// 設置 LED 引腳為輸出狀態
LED_PIN = 0;
// 初始化計時器和按鈕
init_timer();
init_button();
while (1) {
// 判斷按鈕狀態並控制 LED 燈的閃爍
if (button_state) {
LED_PIN = !LED_PIN;
} else {
LED_PIN = 0;
}
}
}
void timer_isr() interrupt 1
{
// 計時器中斷服務程序,用於更新計時器計數值
timer_count++;
if (timer_count == 1000) {
timer_count = 0;
}
}
void button_isr() interrupt 2
{
// 外部中斷服務程序,用於檢測按鈕狀態
button_state = !button_state;
}
建議使用 NXP 官方提供的開發工具和資源來進行開發。
歡迎光臨 冰楓論壇 (https://bingfong.com/)
Powered by 冰楓