0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PIC18F单片机的入门

454398 来源:网络整理 作者:网络整理 2019-12-06 11:02 次阅读

在编写了很多关于PIC16F系列微控制器的实验教程之后,我想到了继续发展到PIC18F的增强范围的PIC系列微控制器系列PIC18F。尽管PIC16F系列是出色的通用单片机,但仍出现了某些限制,例如,程序和数据存储器有限,堆栈尺寸小以及所有中断源必须共享一个中断向量。其有限的指令集也无法直接支持USBCAN等更高级的外围设备接口。 PIC18F系列的基础是要解决限制PIC16F系列的问题。 PIC18F系列单片机具有更大的指令集,更多的内存,更大的堆栈,更多的外部中断,更高的速度,增强的I/O端口架构以及我们将在接下来的教程中探索的更多功能。我已经决定,我不会像在PIC16F上那样花很多时间在焊接和制作自己的PIC18F微控制器原型板上。我将使用mikroElektronika的PIC板的StartUSB编写这些教程。

mikroElektronika的PIC板的StartUSB

那么PIC的StartUSB是什么?

PIC的StartUSB 是一个小型开发板,具有具有快速USB 2.0支持的PIC18F2550单片机。它具有用于所有MCU引脚的连接垫以及两个用于放置附加组件的附加原型设计区域。该板的最大优点是,该微控制器已使用快速USB引导加载程序进行了预编程,因此无需任何外部编程器。您可以使用mikroBootloader将与应用程序相关的HEX文件从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单片机中的Bootloader程序进行通信。可以从以下链接下载用于PIC和mikrobootloader的StartUSB用户指南。

StartUSB板的用户手册提供了该板的电路图以及有关如何将其连接到PC以便使用mikroBootloader下载应用程序HEX文件的说明。在继续前进之前,请先阅读手册中的这些详细信息

用于USB的PIC板的StartUSB电路图,其中两个LED连接到RA1和RB1

使用“ Hello World”测试板

我们将通过一个简单的测试程序开始我们的旅程,该程序将确保一切设置正确且我们将准备使用PIC18F2550进行更高级的实验。该程序将以500 ms的持续时间交替闪烁两个板上LED(连接到RA1和RB1引脚)。在mikroC Pro for PIC中,以项目形式开发应用程序。如果您以前从未使用过mikroC Pro for PIC,那么mikroElektronika的文件“在mikroC Pro for PIC中创建第一个项目”将指导您创建第一个项目。遵循这些步骤时,选择单片机为PIC18F2550,将器件时钟选择为8.0 MHz。在主程序窗口中,键入以下程序。

/*

用于PIC板的StartUSB测试程序

说明:两个板上LED交替闪烁500 ms

MCU:PIC18F2550,外部晶振= 8.0 MHz,PLL的实际时钟= 48.0 MHz

版权@ Rajendra Bhatt

2011年3月29日

*/

//定义LED连接

sbit LED1 at RA1_bit;

sbit LED2 RB1_bit;

void main(){

CMCON = 0x07;//禁用比较器

ADCON1 = 0x0F;//禁用模拟功能

TRISA = 0x00;

TRISB = 0x00;

LED1 = 0;

LED2 = 1;

做{

LED1 =〜LED1;

LED2 =〜LED2;

Delay_ms(500);

} while(1);

}

下载mikroC项目文件

编译程序以获取HEX文件,然后使用mikroBootloader应用程序将其加载到PIC18F2550单片机中。请按照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预分频器值2从8.0 MHz的源中获得驱动PLL所需的4.0 MHz。然后,将PLL(96 MHz)的输出除以2,以获得USB操作所需的48 MHz时钟。微控制器内核和其他外设也可以使用此时钟速度,但不是必须的。还有其他选项可以满足USB模块的时钟要求,并且仍然为从主振荡器源为其余器件提供时钟提供了灵活性。这些详细信息可在PIC18F2550的数据手册中找到。但是,对于用于PIC板的StartUSB,由于需要USB自举程序,USB模块和微控制器内核,两者都使用源自PLL的48.0 MHz时钟。不幸的是,引导加载程序不允许用户更改时钟设置,因此,它始终为48.0 MHz,除非您先擦除引导加载程序,然后使用外部编程器修改时钟设置的配置寄存器。因此,板载PIC18F2550单片机实际上以48.0 MHz而不是8.0 MHz运行。这就是LED闪烁快得多的原因。为了解决这个问题,请从mikroC的“项目”菜单中打开“编辑项目”窗口,并确保时钟设置与下面显示的匹配。

正确的时钟下一步,保存项目,再次编译,然后将HEX文件重新加载到PIC18F2550中。现在,您将看到LED以正确的速率闪烁。因此,您已经准备好使用PIC18F微控制器。请继续关注有关PIC18F的更多高级实验教程。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    620948
  • PIC18F
    +关注

    关注

    0

    文章

    37

    浏览量

    17783
收藏 人收藏

    评论

    相关推荐

    PIC18F与AD2S210控制三相无刷电机,激励频率为什么不能更新?

    专家好,最近在用PIC18F与AD2S210控制三相无刷电机,但是在需要对激励频率进行更新时,却无法更新,并且LOT和DOS两个地方一直为低,用示波器观察波形时,单片机的SDO输出正常,具体硬件配置
    发表于 12-28 08:24

    PIC单片机的BootLoad文件在哪里存放着?

    PIC单片机的BootLoad文件在哪里存放着,查找到实在C18中,但是没有在安装文件找到,请问有知道的吗
    发表于 11-02 06:07

    PIC单片机与C8051F020单片机的串行通讯

    电子发烧友网站提供《PIC单片机与C8051F020单片机的串行通讯.pdf》资料免费下载
    发表于 10-25 10:10 2次下载
    <b class='flag-5'>PIC</b><b class='flag-5'>单片机</b>与C8051F020<b class='flag-5'>单片机</b>的串行通讯

    请问arduino能用来开发PIC18K50单片机吗?

    arduino能用来开发PIC18K50单片机吗?
    发表于 10-19 07:01

    请问PIC18单片机怎么通过串口下载程序?

    PIC18单片机怎么通过串口下载程序?
    发表于 10-19 06:13

    请问单片机IO如何输出模拟信号?

    单片机IO如何输出模拟信号,看到过一款设计用PIC18F26K20直接IO输出信号到PAM8302A功放,接上喇叭就可以输出人声音的设计,单片机直接模拟人声的原理是什么?
    发表于 10-08 07:15

    PIC18FPIC24F的移植和性能增强指南

    电子发烧友网站提供《PIC18FPIC24F的移植和性能增强指南.pdf》资料免费下载
    发表于 09-25 09:23 0次下载
    <b class='flag-5'>PIC18F</b>到<b class='flag-5'>PIC</b>24F的移植和性能增强指南

    从8位PIC18F到32位SAM D21 MCU的应用程序移植

    电子发烧友网站提供《从8位PIC18F到32位SAM D21 MCU的应用程序移植.pdf》资料免费下载
    发表于 09-20 11:22 0次下载
    从8位<b class='flag-5'>PIC18F</b>到32位SAM D21 MCU的应用程序移植

    仿真PIC18PIC24单片机及dsPIC数字信号控制器的数据EEPROM

    电子发烧友网站提供《仿真PIC18PIC24单片机及dsPIC数字信号控制器的数据EEPROM.pdf》资料免费下载
    发表于 09-19 15:17 0次下载
    仿真<b class='flag-5'>PIC18</b>和<b class='flag-5'>PIC</b>24<b class='flag-5'>单片机</b>及dsPIC数字信号控制器的数据EEPROM

    PIC18F452内部结构(2)#单片机

    led单片机ADC
    未来加油dz
    发布于 :2023年08月01日 18:18:23

    PIC18F452内部结构(1)#单片机

    led单片机ADC
    未来加油dz
    发布于 :2023年08月01日 18:17:39

    Microchip PIC系列8位单片机入门教程(2):点亮LED灯

    配置字的含义:PIC系列的单片机都有配置字,这是从宏观设置单片机功能的寄存器,我们不需要手动配置。
    发表于 07-14 14:32 1395次阅读
    Microchip <b class='flag-5'>PIC</b>系列8位<b class='flag-5'>单片机</b><b class='flag-5'>入门</b>教程(2):点亮LED灯

    芯圣电子AD型8位单片机—HC18P110A0/B0

    HC18P110A0/B0是芯圣电子推出的AD型8位单片机,内置兼容RISC指令集的PIC内核
    的头像 发表于 07-12 10:01 903次阅读
    芯圣电子AD型8位<b class='flag-5'>单片机</b>—HC<b class='flag-5'>18</b>P110A0/B0

    如何将16×2 LCD显示屏连接到PIC18F4550单片机

    在本案例中,本文将介绍如何将16×2 LCD显示屏连接到PIC18F系列的PIC18F4550单片机
    的头像 发表于 07-06 11:39 779次阅读
    如何将16×2 LCD显示屏连接到<b class='flag-5'>PIC18</b>F4550<b class='flag-5'>单片机</b>?

    基于PIC18系列单片机的DHT11温湿度采集系统设计

    基于PIC18系列(PIC18F4520)单片机+DHT11的温湿度采集系统的设计与制作(Proteus仿真部分)
    的头像 发表于 06-16 16:36 695次阅读
    基于<b class='flag-5'>PIC18</b>系列<b class='flag-5'>单片机</b>的DHT11温湿度采集系统设计