pic报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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";