搜索

  OFweek 2017“维科杯”中国锂电行业年度评选
  OFweek 2017(第二届)中国医疗科技大会
  OFweek2017中国高科技产业大会

查看: 3755|回复: 13

PIC单片机C语言编程实例   [复制链接]

Rank: 4

贡献值
172
金币
776
帖子
168
发表于 2012-3-21 09:59:32 |显示全部楼层
本帖最后由 Carey 于 2012-3-21 10:02 编辑

PIC单片机C语言编程实例


  第 1 章 PIC16 F 877的外围功能模块

  1  .1.2 简单应用实例 简单应用实例 简单应用实例 简单应用实例

  该例用于令与 PORTD 口相连的 8 个发光二极管前 4 个点亮,后 4 个熄灭。在调试程

  序前,应使与 PORTD 口相连的 8 位拔码开关拔向相应的位置。

  例 1.PORTD 输出

  #include

  main()

  {

  TRISD=0X00 ; /*TRISD 寄存器被赋值 , PORTD 每一位都为输出 */

  while(1) ; /* 循环执行点亮发光二极管的语句 */

  {

  PORTD=0XF0 ; /* 向 PORTD 送数据 , 点亮 LED (由实验模板 */

  /* 的设计决定相应位置低时 LED 点亮 ) 。 */

  }

  }

  1 1 1 1 .2.1 .2.1 .2.1 .2.1 MSSP MSSP MSSP MSSP 模块模块模块模块 SPI SPI SPI SPI 方式功能简介 方式功能简介 方式功能简介 方式功能简介

  下面是一段简单的 SPI 初始化例程,用于利用 SPI 工作方式输出数据的场合。

  例 1. 1. 1. 1. 2 2 2 2 SPI SPI SPI SPI 初始化程序

  /*spi 初始化子程序 */

  void SPIINIT()

  {

  PIR1=0 ; /* 清除 SPI 中断标志 */

  SSPCON=0x30 ; /* SSPEN=1 ; CKP=0 , FOSC/4 */

  SSPSTAT=0xC0 ;

  TRISC=0x00 ; /*SDO 引脚为输出 , SCK 引脚为输出 */

  }

  1 1 1 1 .2.3 .2.3 .2.3 .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)) /* 绝对寻址位操作指令 */

  89

  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 送低电平 , 为锁存做准备 */

  }

  /*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 ; /* 通过数组的转换获得待显示的段码 */

  SPILED(data) ; /* 发送显示段码显示 */

  }

  PORTA_5=1 ; /* 最后给锁存信号 , 代表显示任务完成 */

      }

PIC单片机C语言编程实例.pdf (170.54 KB, 下载次数: 50)

1

查看全部评分

举报

Rank: 1

贡献值
5
金币
15
帖子
3
发表于 2012-11-8 22:20:01 |显示全部楼层
好东西、、、、、、、、、、、、、、、、、

Rank: 1

贡献值
23
金币
1
帖子
23
发表于 2012-11-24 21:22:31 |显示全部楼层
好资料,学习了

Rank: 1

贡献值
3
金币
6
帖子
3
发表于 2012-12-15 02:35:34 |显示全部楼层
好东西、、、、、、、、、、、、、、、、、

Rank: 1

贡献值
3
金币
6
帖子
3
发表于 2012-12-15 02:36:01 |显示全部楼层
好东西、、、、、、、、、、、、、、、、、

Rank: 1

贡献值
3
金币
6
帖子
3
发表于 2012-12-15 02:36:49 |显示全部楼层
好东西、、、、、、、、、、、、、、、、、

Rank: 1

贡献值
8
金币
3
帖子
10
发表于 2013-2-17 20:55:40 |显示全部楼层
很好的东西 值得学习

Rank: 1

贡献值
23
金币
12
帖子
24
发表于 2013-4-18 14:17:08 |显示全部楼层
好资料,值得学习,谢谢

Rank: 1

贡献值
23
金币
12
帖子
24
发表于 2013-4-18 14:17:52 |显示全部楼层

Rank: 1

贡献值
23
金币
12
帖子
24
发表于 2013-4-18 14:18:48 |显示全部楼层
下载学习学习,谢谢
您需要登录后才可以回帖 登录 | 注册

免责声明|Archiver| OFweek论坛 ( 粤ICP备06087881号-1 )   

GMT+8, 2017-9-25 10:36 , Processed in 0.423619 second(s), 43 queries .

Powered by OFweek中国高科技行业门户