PIC单片机学习指南.pdf
文本预览下载声明
单片机学习指南 资料提供:上海齐济电子有限公司
第1章 PIC16F877 的外围功能模块
1.1.2 简单应用实例
该例用于令与PORTD 口相连的8 个发光二极管前4 个点亮,后4 个熄灭。在调试程序
前,应使与PORTD 口相连的8 位拔码开关拔向相应的位置。
例1.1 PORTD 输出
#include pic.h
main()
{
TRISD=0X00 ; /*TRISD 寄存器被赋值,PORTD 每一位都为输出*/
while(1) ; /*循环执行点亮发光二极管的语句*/
{
PORTD=0XF0 ; /* 向PORTD 送数据,点亮LED (由实验模板*/
/* 的设计决定相应位置低时LED 点亮)。*/
}
}
1.2.1 MSSP 模块SPI 方式功能简介
下面是一段简单的SPI 初始化例程,用于利用SPI 工作方式输出数据的场合。
例1.2 SPI 初始化程序
/*spi 初始化子程序*/
void SPIINIT()
{
PIR1=0 ; /*清除SPI 中断标志*/
SSPCON=0x30 ; /* SSPEN=1 ;CKP=0 , FOSC/4 */
SSPSTAT=0xC0 ;
TRISC=0x00 ; /*SDO 引脚为输出,SCK 引脚为输出*/
}
1.2.3 程序清单
下面给出已经在实验板上调试通过的一个程序,可作为用户编制其它程序的参考。
#include pic1687x.h
/*该程序用于在8 个LED 上依次显示1~8 等8 个字符*/
static volatile int table[20]={0xc0,0xf9,0xa4 ,0xb0,0x99 ,0x92,0x82 ,0XD8 ,0x80 ,0x90 ,
0x88 ,0x83 ,0xc6 ,0xa1 ,0x86 ,0x8e ,0x7f,0xbf,0x89 ,0xff} ;
volatile unsigned char data ;
#define PORTAIT(adr ,bit) ((unsigned)(adr)*8+(bit)) /*绝对寻址位操作指令*/
static bit PORTA_5 @ PORTAIT(PORTA,5);
/*spi 初始化子程序*/
void SPIINIT()
{
PIR1=0 ;
SSPCON=0x30 ; /* SSPEN=1 ;CKP=0 , FOSC/4 */
SSPSTAT=0xC0 ;
TRISC=0x00 ; /*SDO 引脚为输出,SCK 引脚为输出*/
}
/*系统各输入输出口初始化子程序*/
void initial()
{
TRISA=0x00 ; /*A 口设置为输出*/
INTCON=0x00 ; /*关闭所有中断*/
PORTA_5=0 ; /*LACK 送低电平,为锁存做准备*/
.1.
单片机学习指南 资料提供:上海齐济电子有限公司
}
/*SPI 发送子程序*/
void SPILED(int data)
{
SSPBUF=data ; /*启动发送*/
do
{
;
}while(SSPIF==0) ; /*等待发送完毕*/
SSPIF=0; /*清除SSPIF 标志*/
}
/*主程序*/
main()
{
unsig
显示全部