广单片机PMS150C快速入门指南
一、资料
应该单片机的资料(IED、仿真器、烧录器、数据手册、开发手册等)都可以通过官网获取:应广科技 (padauk.com.tw)
1、数据手册
2、IDE
二、开发环境配置
1、下载好,直接解压
2、双击打开直接运行
3、点击OK
非常棒,到此你已经超越自我了
三、新建工程——点灯之路,梦开始的地方
档案——开新项目——工程名字 ———保存位置 ———选择芯片——OK
自此你已经完成了一个工程建立,very good
四、点灯——以为PA0引脚为例
先介绍三个寄存器PAC、PA、PAPH
pac.x:配置引脚是输出还是输入,1——输出、0——输入
pa.x:配置输出高低电平,0——低电平、1——高电平
paph.x:配置是否上拉,0——不上拉、1——上拉
好的,那么我们需要点亮一个LED,程序需要怎么写呢?
毫无疑问,先开时钟、配置引脚输出信号。
从电路可以知道,单我们给P1引脚高电平时,三极管导通,电流经过LED、电阻、三极管形成回路,从而使LED亮起来。
好,那我们只用单片机输出高电平即可。
pac.0=1;//IO口配置为输出模式
pa.0=1;//IO输出高电平
//当然,正常情况下,我们需要先打开时钟,再配置IO口,才可以正常输出,
//但是,不要忘记了,我们在新建工程的时候,有一步是现在系统时钟的,系统已经帮我们配置好时钟
点击编译,再点击OK。
到这一步,就马上可以见证你的LED被点亮了。
五、效果
然后把程序下载到芯片呢?OTP芯片不可以反复烧录,完蛋,我的LED点不亮了;哈哈,慢着还没有完,都到这里了,怎么能不亮呢?
应广他们有专用的仿真器,看图。想办法搞这个过来,这个灯就必点亮了,
点击仿真,OK,LED已经点亮
附上完整程序,
#include "extern.h"
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/4 // SYSCLK=IHRC/4
// Insert Initial Code
pac.0=1;
pa.0=1;
while (1)
{
// ...
// wdreset;
}
}
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
}
popaf;
}
再给看到这里的小伙伴发一个我之前写的流水灯,要个赞不过分吧(* ̄︶ ̄)
#include "extern.h"
bit LED1 : pa.4;
bit LED2 : pa.7;
bit LED3 : pa.6;
bit LED4 : pa.3;
bit LED_blue : pa.5;
bit led_input : pa.0;
#define LED_IO_ON 0
#define LED_IO_OFF 1
//0b1111_1000 配置LED为输出 0b1111_1000弱上拉
#define LED_init PAC=PAC|0xf8;PAPH=PAPH|0xf8
//1111_1110 配置LED为输入 0b0000_0001弱上拉
#define LED_input_init PAC=PAC&0xfe;PAPH=PAPH|0x00
#define LED_OFF LED1=LED_IO_OFF;LED2=LED_IO_OFF;LED3=LED_IO_OFF;LED4=LED_IO_OFF
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/4 // SYSCLK=IHRC/4
// Insert Initial Code
LED_init;
LED_input_init;
while (1)
{
if(led_input)
{
LED_OFF;
LED_blue=LED_IO_OFF;
.delay(200000);//50ms
LED1=LED_IO_ON;
.delay(400000);//100ms
LED1=LED_IO_ON;LED2=LED_IO_ON;
.delay(400000);//200ms
LED1=LED_IO_ON;LED2=LED_IO_ON;LED3=LED_IO_ON;
.delay(400000);//300ms
LED1=LED_IO_ON;LED2=LED_IO_ON;LED3=LED_IO_ON;LED4=LED_IO_ON;
.delay(400000);//400ms
}
else
{
LED_OFF;
LED_blue=LED_IO_ON;
}
}
}
欢迎大家评论区留言吼吼吼
作者:XYG_GYH