PIC单片机串口通讯程序
- 格式:pdf
- 大小:68.87 KB
- 文档页数:9


第25卷第6期 2007年12月 河南科学 HENAN SCIENCE V01.25 No.6 Dec.20o7 文章编号:1004—3918(20o7)06—1006—04 PIC单片机在产品开发中程序设计的探讨
武书彦, 郝玉东 (郑州牧业工程高等专科学校,郑州450002) 摘要:对PIC单片机在产品开发中的程序设计进行了分析,并详细讨论了PIC单片机程序计数器(Pc)和串口中 断数据接收处理程序的设计,对后者给出了部分程序和流程图. 关键词:串口;PIC单片机;SPI串行通信;程序设计;中断 中图分类号:TP 368.1 文献标识码:A 目前流行的单片机比较多,根据笔者多年的开发经验,选择美国MICROCHIP公司的PIC系列单片机比 较好.因为该公司PIC系列单片机有3个不同层次系列、几十种型号的产品可以满足不同的产品设计需 求,这3个系列单片机的每一种型号的芯片都含有片内程序存储器,而且指令系统向上兼容…,其他特性不 再赘述.虽然PIC单片机的硬件性能比较好,但是要想充分发挥它的硬件功能,也必须在软件设计上下功 夫,这样才能充分发挥硬件的功能.在笔者多年设计PIC系列单片机程序的过程中,碰到了不少程序设计 和硬件设计的问题,如一个串口如何让两个通信设备共享、中断程序如何巧妙地设计等问题,最后通过不断 的摸索和实践圆满解决了这些问题.下面就谈一谈这些主要问题的解决方法与过程,以便能给从事PIC系 列或其他系列单片机程序设计的同行们提供一些启发和帮助. 1 PIC单片机程序计数器(PC)的编程 PIC单片机程序计数器(以后简称为PC)的编程非常重要,程序计数器是用来记录所要执行指令在程 序存储器中的地址,因此程序计数器中的内容代表了程序存储器中的某个地址,程序存储器内容的位宽和 可以寻址的地址宽度大小是相同的.例如,PIC16F73的PC为13位宽,因此可以寻址的程序存储器大小为 8 K.PC可分为两部分,较低的8个位(7:0)为PCL,较高的5个位(12:8)为PCH,PCH是看不到也无法存 取的,PCL则是可以直接使用与存取的.在某些特定的情况下,PCH的内容是可以通过PCLATH寄存器的 内容来加载的,根据指令的不同,PCH从PCLATH加载的范围不相同,对PC值的影响也不相同.在 PIC16F73单片机中,PC值的变化通常为后面3种情况之一:①PC值的自动递增.②GOTO与CALL指令 的的使用.③以PCL寄存器作为操作数与目标寄存器. 下面举例说明第2种情况.在第2种情况下如何设置PCLATH中的内容才能使程序转到或者返回正 确的地方. Start: bsf pclath,3 bcf pclath,4 Loop- call 0a00h clrf pclath bsf pclath,3 bcf pclath,4;以上2条指令不能注释掉 goto 0al0h;要想转到0A10H处,在此条指 tris 5 tris 6 ITIOV1W 55h movwf 5 movwf 6 ITIovlw 0aah movwf 5 收稿日期:2007—05—19 基金项目:河南省自然科学基金资助(061 1033500) 作者简介:武书彦(1975一),男,河南新乡人,讲师,硕士研究生,研究方向为电能电量远程检测计量、网络安全; 郝玉东(1962一),男,河南商丘人,副教授,主要从事电力系统载波、电力设备防盗以及计算机工业控制等 方面的研究工作.
单片机程序下载方式总结 一、 编程器下载(离线下载、脱机下载)
编程器也称为程序烧录器,将单片机从电路板下取下来,放
入烧录器的芯片座并固定好,然后进行程序下载。编程器与PC机
之间用USB、串口、并口等方式连接并传输数据,目前主流的产
品支持USB和串口连接,部分产品支持插装CF卡,即将程序提前
复制到CF卡中,烧写过程可不需要PC机。
程序烧录器成本较高,如图1所示的SmartPRO 5000U售价在
2400元左右。该方式不如在线编程方式灵活方便,现在个人和小
批量的编程已经很少使用了。该方式主要用于量产编程,对于批
量生产的产品,使用专门的编程器实现脱机编程,一次可烧写大
量的芯片。同时,公司指派专人负责程序下载,保密性强。有些
技术公司外接项目时,将烧定芯片次数与产品提成挂钩,烧一个
芯片表明生产了一台产品。
图1单片机程序烧录器
二、 在系统编程ISP(In System Programming)
不用将单片机从线路板上取下来,直接烧写,适用于样机研
发阶段或小批量的程序下载。根据PC机与单片机的通信方式不同
分为2种:
(1)SPI接口模式 SPI模式是ATMEL和PIC单片机常用的下载方式,该方式要
求单片机必须具备SPI接口,如AT89S51系列单片机的P1^5、
P1^6、P1^7分别为MOSI(主输出从输入),MISO(主输入从输出),SCK(同步时钟)引脚,下载程序时还要用到RST引脚。 SPI接口和电脑的现有通讯口都不兼容,因此需要通过转换
电路把PC机的端口转换成SPI方式,常见的包括并口、RS232串
口、USB口转SPI下载。并口和RS232串口转换到SPI比较简
单,可以网上查找资料自己制作。USB转SPI的电路做起来有点
难度,但是使用比较方便,一般网上都有成品销售。SPI下载的
优点是下载比较可靠和稳定,与单片机的接口简单。
图2 USB转SPI下载器
图3 SPI接口
(2)串口模式
单片机还可利用自身的串口来下载程序,典型的如STC单片
PICkit3专业解释:
PICkit 3 编程器/ 调试器是一款由在Windows® 平台上运行MPLAB IDE(v8.20 或更高版本)软件的PC 控制的简单低成本在线调试器。PICkit 3 编程器/ 调试器是开发工程师工具包的不可或缺的组成部分。可用于从软件开发到硬件集成等各种应用领域。
对于pickit3(以下简称kit3)下面我给出自己的一点解释:
对于我自己来说从来没有用过这样的下载器,以前学的单片机像51系列的都可以直接通过串口进行下载,只要和单片机连上用相应的下载软件进行下载就可以了。但是对于pic单片机不支持进行串口直接下载。必须要有自己对应的下载器进行下载,最常用的不过就是ICD2、kit2、kit3。在这三种下载工具中最强大的就kit3。对于ICD2主要是下载用,但是kit2与kit3不但能进行下载而且还能进行在线仿真,但是在这里不介绍仿真的实现可以自己去探究。但是kit3对于kit2来讲支持的IC更多,功能更加强大,所以在这里选用了kit3。
Kit3是要和mplab连接才能进行使用的,也就是像其他单片机的下载软件对于kit3不存在要下载只要在编译环境mplab中设置就可以进行下载了,这个很方便。
下面进行kit3使用的介绍,先说明一下在一下的介绍中采用的mplab8.5 kit3是网上购买的。
PICkit3与mplab连接使用教程
第一步 打开mplab软件默认out put界面如下图只有三个选
第二步 咱们要调出需要的kit3的选项 在工具栏中选择programmer>>select programmer>>pickit3 然后就会出现下面的界面
这样就把kit3 的选项掉出来了。
第三步 就要把kit3 连接到电脑上 用kit3的专用USB线连接到电脑上(一般第一次的时候要进行USB的驱动(一般是PL2303驱动) 在对应的给的kit3 的资料中找到相应的驱动就好了)。连接后就会出现下一个对话框
AVR单片机与PIC单片机程序烧录说明
1,AVR单片机程序烧录
我们使用的辅助工具是AVR Studio 4和AVR烧录器(JTAGICE
mkll),下面介绍一下AVR单片机程序烧录的步骤。
a, 将AVR 烧录器通过串口线将开发板连接至电脑,开发板需要
外接电源。
b,打开AVR Studio 4,关闭自动启动的提示窗口。
c,打开烧录器和外接电源
d,点击菜单栏中的“Tools”——点击下拉菜单里的“programmer
AVR——点击右边显示菜单里的”connect”。
e,如果正常连接,就会显示一个设置画面,点击main设置菜单
里设置单片机的型号,点击Fuses设置熔丝位,设置好后别忘了点击
右下角的read键下熔丝的位置,点击program装载编译好的文件,第
一行为.hex文件。
f,文件装载好以后点击相应后面的program键就可以将程序下载
到单片机里面了。
2,PIC单片机程序烧入
我们使用的辅助工具为MPLAB IDE v8.60和MPLAB ICD 2.下面
介绍一下PIC单片机程序烧入的步骤。
a, 现将MPLAB ICD 2通过串口线将开发板连接至电脑。开发板
不需要外接电源
b, 打开MPLAB IDE v8.60,关闭自动启动的窗口。
c, 在菜单栏中点击“Configure”菜单——“Select Device”——
在“Device”中选择我们所需要的单片机类型(例如我们选择:
PIC16F1829)——点击“OK”。
d,点击“Programmer”菜单——“Select Programmer”——选择
“MPLAB ICD 2”。
e,点击“File”菜单——“Import”——选择要烧入的程序文件
——点击菜单栏第三行最右边的“Resert and Connect to ICD”图标—
—点击菜单栏最左边的“Programmer target device”——待output窗