pic报告

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计的内容

1、单片机小系统的制作:万能板上制作,初始化程序设计。

2、在单片机小系统上开发应用系统。

二、课程设计的要求与数据

实验前认真阅读实验指导书,复习与课程设计相关的理论知识,明确实验目的。在两周内完成指定的任务,完成电路设计并编程实现相应的功能由老师验收,完成实验报告的撰写,报告要求实验现象的描述。

三、课程设计应完成的工作

1、完成最小系统的制作,写程序,完成最小系统跑马灯功能。

2、在单片机最小系统上做功能扩展,并编程实现相应的功能。

四、课程设计进程安排

五、应收集的资料及主要参考文献

1、李荣正等,PIC单片机原理及应用(第4版),北京航空航天大学出版社,北京,2010.11

2、汪正谋,朱力恒,Protel99SE电路设计与仿真技术,福建科学技术出版社,福建,2004

发出任务书日期:年月日指导教师签名:

计划完成日期:年月日基层教学单位责任人签章:

主管院长签章:

目录

1 设计任务目的及要求 (4)

1.1课程设计的目的 (4)

1.2课程设计的要求 (4)

2 原理及步骤 (4)

2.1PIC16F877A工作原理 (4)

2.2最小系统设计 (5)

2.3跑马灯程序设计 (6)

2.4扩展设计 (6)

3 实验结果 (11)

4 总结 (11)

参考文献 (11)

1 设计任务目的及要求

1.1 课程设计的目的

利用PIC单片机最小系统,熟悉PIC16F877的工作原理并学习硬件的设计方法及软件编程技巧。

1.2 课程设计的要求

1、完成最小系统的制作,编写程序,实现跑马灯功能。

2、在完成的最小系统电路板上做任意功能扩展。

2 原理及步骤

2.1 PIC16F877A工作原理

1、PIC16F877A的40根接脚图,如图所示,每根接脚都有其特定功能:

图1. PDIP40引脚PIC16F877接脚说明

2、PIC16F877A简介:

该芯片是由Microchip公司所生产开发的新产品,属于PICmicro系列单片微机,具有Flash program程序内存功能,可以重复烧录程序,适合教学、开发新产品等用途;而其内建ICD(In Circuit Debug)功能,可以让使用者直接在单片

机电路或产品上,进行如暂停微处理器执行、观看缓存器内容等,让使用者能快速地进行程序除错与开发。

2.2 最小系统设计

1、根据以下原理图制作最小系统电路板:

2、利用Protel软件画出该原理图的PCB图如下

2.3 跑马灯程序设计

1、设计思路:根据原理图的连接方法,设计程序,实现跑马灯功能。本设计利用移位的思想,将led灯循环点亮。部分程序如下:

while (1)

{

temp=0xfe;

for(num=0;num<8;num++) //循环八次

{

PORTD=temp; //第一盏灯亮

delay_1602(8000);

temp=(temp<<1)|0x01; //通过移位思想逐一点亮led

}

}

}

2.4 扩展设计

本设计在最小系统的基础上进行扩展,扩展功能为1602液晶显示,显示内容第一行:YU QIU YI第二行为:DIAN ZI 2。

1、1602液晶显示屏接口介绍

(1)接口图:

(2)接口信号说明:

2、基本操作时序

(1)读状态:输入:RS=L,RW=H,E=H 输出:D0~D7=状态字

(2)写指令:输入:RS=L,RW=L,D0~d7=指令码,E=高脉冲输出:无(3)读数据:输入:RS=H, RW=H, E=H 输出:D0~D7=数据

(4)写数据:输入:RS=H, RW=L, D0~D7=数据,E=高脉冲输出:无

3 状态字说明

STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 D7 D6 D5 D4 D3 D2 D1 D0

4、RAM地址映射图

控制器内部带有80X8位(80字节)的RAM缓冲区,对应关系如下图:

5、程序如下:

/*************************************************************** // description:驱动1602液晶的驱动程序

***************************************************************/ #include

//-------------------------------------------------------------

// port associated with hardware , we may have to change when transplant

#define RS RC4

#define RW RC5

#define E RC6

#define LCDPORT PORTB

//-------------------------------------------------------------

// user define

#define COMMAND 0

#define DATA 1

#define uint8 unsigned char

//-------------------------------------------------------------

// data used for test

const uint8 table[]="YU QIU YI"; //定义显示内容

const uint8 table1[]="DIAN ZI 2";

相关文档
最新文档