pic单片机c语言编程实例一

pic单片机c语言编程实例一

ID:3702365

大小:75.50 KB

页数:12页

时间:2017-11-23

pic单片机c语言编程实例一_第1页
pic单片机c语言编程实例一_第2页
pic单片机c语言编程实例一_第3页
pic单片机c语言编程实例一_第4页
pic单片机c语言编程实例一_第5页
资源描述:

《pic单片机c语言编程实例一》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、5.1.2简单应用实例该例用于令与PORTD口相连的8个发光二极管前4个点亮,后4个熄灭。在调试程序前,应使与PORTD口相连的8位拔码开关拔向相应的位置。例5.1PORTD输出#includemain(){TRISD=0X00;/*TRISD寄存器被赋值,PORTD每一位都为输出*/while(1);/*循环执行点亮发光二极管的语句*/{PORTD=0XF0;/*向PORTD送数据,点亮LED(由实验模板*//*的设计决定相应位置低时LED点亮)。*/}}5.2.1MSSP模块SPI方式功能简介下面是一段简单的SPI初始化例程,用于利用SPI工作方式输

2、出数据的场合。例5.2SPI初始化程序/*spi初始化子程序*/voidSPIINIT(){PIR1=0;/*清除SPI中断标志*/SSPCON=0x30;/*SSPEN=1;CKP=0,FOSC/4*/SSPSTAT=0xC0;TRISC=0x00;/*SDO引脚为输出,SCK引脚为输出*/}5.2.3程序清单下面给出已经在实验板上调试通过的一个程序,可作为用户编制其它程序的参考。#include/*该程序用于在8个LED上依次显示1~8等8个字符*/staticvolatileinttable[20]={0xc0,0xf9,0xa4,0xb

3、0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};volatileunsignedchardata;#definePORTAIT(adr,bit)((unsigned)(&adr)*8+(bit))/*绝对寻址位操作指令*/staticbitPORTA_5@PORTAIT(PORTA,5);/*spi初始化子程序*/99voidSPIINIT(){PIR1=0;SSPCON=0x30;/*SSPEN=1;CKP=0,FOSC/4*/SSPSTAT=0xC

4、0;TRISC=0x00;/*SDO引脚为输出,SCK引脚为输出*/}/*系统各输入输出口初始化子程序*/voidinitial(){TRISA=0x00;/*A口设置为输出*/INTCON=0x00;/*关闭所有中断*/PORTA_5=0;/*LACK送低电平,为锁存做准备*/}/*SPI发送子程序*/voidSPILED(intdata){SSPBUF=data;/*启动发送*/do{;}while(SSPIF==0);/*等待发送完毕*/SSPIF=0;/*清除SSPIF标志*/}/*主程序*/main(){unsignedI;initial();/*系统初始化

5、*/SPIINIT();/*SPI初始化*/for(i=8;i>0;i--)/*连续发送8个数据*/{data=table[i];/*通过数组的转换获得待显示的段码*/SPILED(data);/*发送显示段码显示*/}PORTA_5=1;/*最后给锁存信号,代表显示任务完成*/}995.3.3程序清单下面给出已经在实验板上调试通过的程序,可作为用户编制其它程序的参考。有关显示部分的SPI初始化,请读者参考5.2节。#include/*该程序用于按下相应的键时,在第一个8段LED上显示相应的1~4的字符*/#definePORTAIT(adr,bit)(

6、(unsigned)(&adr)*8+(bit))/*绝对寻址位操作指令*/staticbitPORTA_5@PORTAIT(PORTA,5);#definePORTBIT(adr,bit)((unsigned)(&adr)*8+(bit))/*绝对寻址位操作指令*/staticbitPORTB_5@PORTBIT(PORTB,5);staticbitPORTB_4@PORTBIT(PORTB,4);staticbitPORTB_1@PORTBIT(PORTB,1);staticbitPORTB_2@PORTBIT(PORTB,2);unsignedintI;unsi

7、gnedcharj;intdata;/*spi初始化子程序*/voidSPIINIT(){PIR1=0;SSPCON=0x30;SSPSTAT=0xC0;TRISC=0xD7;/*SDO引脚为输出,SCK引脚为输出*/}/*系统各输入输出口初始化子程序*/voidinitial(){TRISA=0xDF;TRISB=0XF0;/*设置与键盘有关的各口的数据方向*/INTCON=0x00;/*关闭所有中断*/data=0X00;/*待显示的寄存器赋初值*/PORTB=0X00;/*RB1RB2先送低电平*/j=0;}/*软件延时子程序*/voidDEL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。