开发工具:
文件大小: 48kb
下载次数: 0
上传时间: 2009-04-20
详细说明:
PIC16F877 的外围功能模块 1.1.2 简单应用实例 该例用于令与PORTD 口相连的8 个发光二极管前4 个点亮,后4 个熄灭。在调试程序 前,应使与PORTD 口相连的8 位拔码开关拔向相应的位置。 例1.1 PORTD 输出 #include 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 /*该程序用于在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送低电平,为锁存做准备*/ 单片机学习指南 资料提供:上海齐济电子有限公司 .2. } /*SPI 发送子程序*/ void SPILED(int data) { SSPBUF=data; /*启动发送*/ do { ; }while(SSPIF==0); /*等待发送完毕*/ SSPIF=0; /*清除SSPIF 标志*/ } /*主程序*/ main() { unsigned I; initial(); /*系统初始化*/ SPIINIT() ; /*SPI初始化*/ for(i=8;i>0;i--) /*连续发送8 个数据*/ { data=table[i]; /*通过数组的转换获得待显示的段码*/ SPILED(data); /*发送显示段码显示*/ } PORTA_5=1; /*最后给锁存信号,代表显示任务完成*/ } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.