您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > K60各模块入门培训教程
北京理工大学智能车俱乐部内部资料1北京理工大学智能车俱乐部程序培训K60各模块入门北京理工大学智能车俱乐部内部资料2前言这个小文档是对k60单片机的各模块进行了初步的介绍,以便大家在之后车队的k60实际培训演示中能更好地理解,能更快的上手单片机,另外说一下车队用的K60单片机型号是MK60DN512ZVLL10,不同型号的k60单片机各模块基本操作有些小区别。本文档是基于给大家实际演示的各模块功能来撰写的,里面讲的各个模块在以后的做车过程中基本上都会用到。实际上一个智能车上所实现的功能都是由这些最基本的小模块组合而成的,把这些小模块各个击破了,都理解了,以后看智能车的整体程序也就容易得多了~另外注意:在我没实际操作讲解之前,大家看这些模块的时候可以不用纠结一些细节的问题,大致有个概念即可~在我讲的时候好好听我讲各个模块的例程,做好笔记,然后看实验现象,进行进一步的理解。之后自己再回去仔细看例程、笔记和这个文档,并且自己可以对程序进行一些改动,然后烧写程序看现象仔细研究。PS:我们第十届包括之前的学长们都没有进行这样专门的比较系统的单片机各模块的培训,也没有学长们亲自给我们写这些入门的学习文档,基本都是自己去查资料学习,所以你们这一届算是很走运的了!不要错失良机不好好学习哦~话说回来,毕竟车队是一年比一年进步嘛,培训会慢慢地变得更加有条理!还有你们明年培训下一届的时候也是哦学完了单片机各个模块后,以后你们要是想对车进行哪个模块的调试不会出现不知道程序在哪、不知道怎样去调试这些最基本、较北京理工大学智能车俱乐部内部资料3Low的问题~你们对各个模块理解透了,智能车整体的程序架构你们会轻而易举的掌握。以后想调那个模块调哪个,整个程序也不会乱,以后要在车上增加新模块新功能也会容易得多!所以......仓鼠们打起精神~好好学吧!!!第十届摄像头游清北京理工大学智能车俱乐部内部资料4目录一、GPIO模块....................................................................................................................51、GPIO概述.......................................................................................................................52、I/O口的使用方法.........................................................................................................6二、FTM占空比(PWM)模块................................................................................91、PWM概述......................................................................................................................92、PWM程序讲解...........................................................................................................10三、中断模块....................................................................................................................131、中断概述......................................................................................................................132、GPIO(I/O)口外部中断................................................................................................132.1I/O口外部中断概述.......................................................................................................132.2I/O口外部中断程序讲解...............................................................................................143、PIT定时器中断...........................................................................................................163.1PIT定时器中断概述......................................................................................................163.2PIT定时器中断程序讲解..............................................................................................16四、A/D(模数)转换模块.......................................................................................181、A/D模块概述..............................................................................................................182、A/D模块程序讲解.....................................................................................................19五、串口通信(UART)模块....................................................................................211、串口(UART)模块概述...........................................................................................211、串口(UART)模块程序讲解..................................................................................22后记........................................................................................................................................25北京理工大学智能车俱乐部内部资料5一、GPIO模块车队用的K60单片机有100个引脚,如下图:其中大部分引脚有GPIO模块的功能,GPIO模块可以输出指定的高低电平,或读入输入电平,在实际智能车上可以用于调试用的小灯、蜂鸣器、拨码开关和摄像头信号数据采集及外部中断等。1、GPIO概述通用I/O:GPIO(GeneralPurposeI/O),是I/O的最基本形式,它是一组输入或输出引脚,有时也称为并行I/O(parallelI/O)。作为普通输入引脚,单片机(MCU)内部程序可以读取该引脚,知道该引脚是“1”(高电平)或“0”(低电平),即开关量输入。作为普通输出引脚,单片机(MCU)内部程序由该引脚输出“1”(高电平)或“0”(低电平),即开关量输出。大多数通用I/O引脚可以通过编程来设定工作方式为输入或输出,称之为双向通用I/O。北京理工大学智能车俱乐部内部资料62、I/O口的使用方法车队用的k60单片机是100个引脚的,这些引脚中有5组I/O(PORTA,PORTB,PORTC,PORTD,PORTE),每一组I/O对应若干个引脚,每个引脚可以单独配置。我们可以控制这些I/O引脚是否输入输出高低电平,或者是否通过输入该引脚的外部信号进行外部中断控制,这一节只讲输入输出,外部中断放在后面中断模块再讲。I/O口输出高低电平信号的目的是用来控制LED小灯亮灭,蜂鸣器响灭;而I/O口输入高低电平信号的目的是用来读取拨码开关是否拨下,这些都是在智能车实际调试时会用到的一些东西。在实现这些功能前,我们首先得对我们要用到的引脚进行初始化配置。例如我们要将单片机上PTB9这个引脚设置为输出引脚,输出高低电平信号来控制蜂鸣器的响灭,初始化为输出0,我们调用下面这个I/O口初始化函数。关于这个函数的说明如下图所示:至于这个初始化函数内部的操作是啥,大家暂时可不用去花太多时间去研究,因为这是库函数,里面的操作都是关于GPIO模块的一些寄存器的操作,要去慢慢查阅K60的芯片手册才能配置出来,过程比较繁杂,需要花比较多的时间。大家刚开始做车时可以先只学会怎样调用这些库函数即可,后期的话如果必须要改底层代码或者换芯片可以再去学习怎样写库函数,编底层。接下来将PTC5这个引脚设置为输入引脚,通过输入信号来检测拨码开关是否拨下,初始化为输入0,函数如下:北京理工大学智能车俱乐部内部资料7我用一个自己写的函数IO_init()来把上述两个初始化函数放进去:初始化完了后,我们要是想改变输出引脚的电平需用到下面这个函数gpio_ctrl():我们要是想获取输入引脚输入进来的电平需要用到下面这个函数gpio_get():接下来我们来看下主函数:北京理工大学智能车俱乐部内部资料8主函数并不复杂,就是通过判断拨码开关是否拨下来决定蜂鸣器的响灭,注释较详细,大家可自行看懂。注意里面有一个系统频率初始化的函数pllinit180M(),由于单片机工作是需要时钟的,时钟频率越高,单片机运行速度越快,这里将单片机时钟频率设置为180MHZ。通过最基本模块GPIO的讲解,相信现在大家对于k60单片机的编程流程基本有了大致的了解。后面还会继续讲解类似的模块,有些要稍微复杂些,仓鼠们再接再厉!把之后的模块都好好掌握哦~话说学长编写这个也不容易啊。。写到这儿手都敲累了。。。北京理工大学智能车俱乐部内部资料9二、FTM占空比(PWM)模块1、PWM概述PWM主要用于智能车电机和舵机的控制,即电机转动速度和舵机旋转角度的控制。脉宽调制器(PulseWidthModulator,PWM)是嵌入式应用系统常用功能之一。PWM产生一个在高电平和低电平之间重复交替的输出信号,这个信号被称为PWM信号,也叫脉宽调制波。通过指定所需的时钟周期和占空比来控制高电平和低电平的持续时间。通常定义占空比为信号处于高电平的时间(或时钟周期数)占整个信号周期的百分比,方波的占空比是50%。脉冲宽度是指脉冲处于高电平的时间。图2-1给出了几个不同占空比的示意图。图2-1给出PWM信号的周期是8个时钟周期TPWM=8TCLK,图2-1(a)中,PWM的高电平为2TCLK,所以占空比=2/8=25%,图2-1(b)、2-1(c)可以类似计算。图2-1
本文标题:K60各模块入门培训教程
链接地址:https://www.777doc.com/doc-4005722 .html