PIC18F单片机的入门 pic单片机教程


PIC18F单片机的入门 pic单片机教程

文章插图
Pic单片机教程(PIC18F单片机介绍)
MikroElektronika的PIC板启动USB
那么PIC的StartUSB是什么呢?
PIC的StartUSB是一款小型开发板,采用PIC18F2550 MCU,支持快速USB 2.0 。它有用于所有MCU引脚的连接焊盘和两个用于放置额外元件的额外原型设计区域 。该板的最大优点是微控制器已经用快速USB引导加载程序进行了预编程,因此不需要任何外部编程器 。您可以使用mikroBootloader将与应用程序相关的十六进制文件从PC传输到PIC的程序存储器 。MikroBootloader是mikroElektronika为其USB HID Bootloader开发的PC应用程序 。板载miniUSB连接器、振荡器(8.0 MHz晶体)、复位电路、电源指示灯LED和另外两个LED提供了快速启动所需的一切 。另外两个led通过跳线连接到PIC18F2550的RA1和RB1引脚 。图中显示了带有所有元件和其它原型制作区域的StartUSB for PIC板 。
今天的教程很重要,因为我们将讨论PIC板StartUSB的完整设置,让你开始探索PIC18F系列单片机的世界 。首先需要安装的是mikroC Pro for PIC,这是mikroElektronika为PIC12、PIC16、PIC18系列微控制器开发的c编译器 。你可以下载这个软件的演示版,它将允许你编译程序,最多可以有2 K个程序字 。安装好编译器后,下载mikroBootloader,这是一个PC的应用程序,可以和StartUSB板上存储在PIC18F2550 MCU中的Bootloader程序进行通信 。您可以从以下链接下载PIC和mikrobootloader的StartUSB用户指南 。
StartUSB板的用户手册提供了板的电路图以及如何将其连接到PC以使用mikroBootloader下载应用十六进制文件的说明 。继续之前,请阅读手册中的这些细节 。

USB PIC板的StartUSB电路图,其中两个led连接到RA1和RB1
使用“Hello World”测试板
我们将通过一个简单的测试程序开始我们的旅程,这将确保一切设置正确,我们将准备使用PIC18F2550进行更高级的实验 。该程序将交替闪烁两个板载led(连接到RA1和RB1引脚)持续500毫秒 。在mikroC Pro for PIC中,将应用程序作为项目开发 。如果你之前从未使用过mikroC Pro for PIC,那么mikroElektronika的文件“在mikroC Pro for PIC中创建第一个项目”将指导你创建第一个项目 。按照这些步骤操作时,选择PIC18F2550作为单片机,8.0 MHz作为器件时钟 。在主程序窗口中,键入以下程序 。
/*
启动PIC板的USB测试程序
注:两块板上的指示灯交替闪烁500毫秒 。
MCU:PIC18F2550,外部晶振= 8.0 MHz,PLL实际时钟= 48.0mhz 。
版权所有@ Rajendra Bhatt
2011年3月29日
*/
//定义LED连接
Sbi信息资源网t LED1 at RA1 _ bit
Sbled2r信息资源网B1 _ bit
void main(){
CMCON = 0x07//禁用比较器
ADCON1 = 0x0F//禁用模拟功能
TRISA = 0x00
TRISB = 0x00
le D1 = 0;
led 2 = 1;
做{
led 1 =?led1;
led 2 =?led2;
delay _ ms(500);
} while(1);
}
下载mikroC项目文件
编译程序得到十六进制文件,然后用mikroBootloader应用程序加载到PIC18F2信息资源网550单片机中 。请遵循StartUSB板用户手册中提到的说明 。加载程序后,请重置电路板并等待5秒钟,直到微控制器退出引导加载模式并开始执行新加载的应用程序 。您将看到两个板载led交替闪烁 。等一下,它们被编程为持续闪烁0.5秒,但你会看到它们跑得快得多 。微控制器时钟似乎比所应用的外部振荡器(8.0 MHz)快得多 。因为内置PLL电路,所以在PIC18F2550中是可以的 。

PIC板StartUSB上的LED闪烁 。
PIC18F2550板上的USB模块需要48.0 MHz的时钟才能全速运行 。该时钟通过内置96 MHz PLL模块将其输出除以2获得 。PLL本身由主时钟源的4 MHz输入信号驱动,在本例中,主时钟源是一个8.0 MHz晶振 。因此,驱动PLL所需的4.0 MHz频率可以通过使用PLL预分频器值2从8.0 MHz频率源获得 。然后,将PLL(96 MHz)的输出除以2,获得USB操作所需的48 MHz时钟 。微控制器内核和其它外设也可以使用这个时钟速度,但这不是必须的 。还有其他选项可以满足USB模块的时钟要求,并且仍然可以灵活地从主振荡器源为其他器件提供时钟 。这些细节可以在PIC18F2550的数据手册中找到 。然而,对于PIC板的StartUSB,需要USB自举程序、USB模块和微控制器内核,它们都使用PLL的48.0 MHz时钟 。遗憾的是,引导加载程序不允许用户更改时钟设置,因此它始终是48.0 MHz,除非您首先擦除引导加载程序,然后使用外部编程器来修改时钟设置的配置寄存器 。所以板载PIC18F2550 MCU实际运行频率是48.0 MHz,而不是8.0 MHz 。这也是LED闪烁速度快很多的原因 。要解决这个问题,请从mikroC的“项目”菜单中打开“编辑项目”窗口,并确保时钟设置与下面显示的一致 。


推荐阅读