PIC单片机C语言编程实例五

PAGE

PAGE 163

第9章 PIC16F87X在CAN通信中的应用9.3 软件清单// ========CAN通信程序======= #include#include#include// MCP2510寄存器定义 // =========常数和变量定义========= #defineREAD0x03// 读MCP2510指令代码 #defineWRITE0x02// 写MCP2510指令代码 #defineRESET0xC0// 复位MCP2510指令代码 #defineRTS0x80// MCP2510请求发送指令代码 #defineSTA25100xA0// 读MCP2510状态指令代码 #defineBITMOD0x05// MCP2510位修改指令代码 inta[12];// SPI发送或接收数据寄存器intb[8];// 发送或接收的数据intc[8];// 发送或接收的数据inti;// 临时变量intcount;// 发送接收计数器intcount1=0;// for testintRecID_H=0;intRecID_L=0;intDLC=8;void SPIINT();void TMR1INT();void CCP1INT();void SPIEXCHANGE(int count);void WAIT_SPI();void RESET2510();int RD2510(int adress,int n);void WR2510(int adress,int n);void RTS2510(int RTSn);int GETS2510();void BM2510(int adress,int mask,int data);void SETNORMAL();void TXCOMPLETE(int adress);void TXMSG(int DLC);int RXMSG();void INIT2510();void INIT877();void INITSPI();void ACK();void wait();// ========主程序======= main(void){int l,detect=0;SSPIE=1;TMR1IE=1;CCP1IE=1;CCP2IE=1;PEIE=1;ei();// 开中断 INIT877();// 初始化PIC16F877芯片 INITSPI();// 初始化SPI接口 INIT2510();// 初始化MCP2510芯片 flag1=0;flag2=0;CCP1CON=0x05;CCP2CON=0x04;while(1){RXMSG();TXMSG(8);}}// ========中断服务程序======= // SPI中断服务子程序 void SPIINT(){SSPIF=0;a[i++]=SSPBUF;// 数据暂存a[]中 count-=1;if(count>0) SSPBUF=a[i];// 未发送完,继续 else RE2=1;// 否则,片选信号置高电平 return;}// TMR1中断服务子程序 void TMR1INT(){TMR1IF=0;T1CON=0;if(!flag1){TMR1H=0xfe;// 512 μs 脉冲宽度TMR1L=0x00;T1CON=0x01;PORTD=0xff;// 输出所有通道flag1=1;}else{flag1=0;PORTD=0;T1CON=0;}return;}// CCP1中断服务子程序 void CCP1INT(){CCP1IF=0;T1CON=0x01;return;}// CCP2中断服务子程序 void CCP2INT(){CCP2IF=0;T1CON=0x01;return;}// 中断入口,保护现场,判中断类型 void interrupt INTS(){di();if(TMR1IF) TMR1INT();// 定时器TMR1中断 e

pic单片机tmr1计数c语言,PIC单片机C语言编程实例五.doc相关推荐

  1. 如何打开电脑c语言窗口,C语言控制台窗口图形界面编程(五). -电脑资料

    控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动, BOOL ScrollConsoleScreenBuffer(      //文本移动函数 HANDLE h ...

  2. C语言控制台窗口图形界面编程(五).

    控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动.下面我们介绍一个控制文本移动的函数,如下: BOOL ScrollConsoleScreenBuffer(   ...

  3. 《我和PIC单片机:基于PIC18》——第2章 PIC的开发环境 2.1 PIC开发的硬件资源...

    第2章 PIC的开发环境 前面我们学习了PIC的内部资源配置和I/O口的基本结构,这一章我们重点要实现对I/O口的控制.单片机是软硬件结合的统一体,因此本章先介绍如何用简单的材料搭建起供学习使用的最小 ...

  4. pic12f1823单片机入门_单片机入门案例:使用PIC单片机制作声控拍手开关

    拍手开关对于初学者来说是一个很有趣的单片机方案.它以拍手的声音打开和关闭电器.在本文中,英锐恩单片机开发工程师们将使用PIC单片机制作一个简单的拍手开关,当它连续检测到两个拍手声音时,该开关便会运行. ...

  5. 单片机c语言数字计数程序,如何使用单片机制作一个手动计数器

    1.实验任务 利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个 ...

  6. c语言使单片机输出低电平,单片机开发中的一些实用技巧

    很多朋友正在学习单片机开发技术,但开发中免不了要碰到这样.那样的问题,有些问题可能无碍大局,但有一些问题却直接影响到产品的成本.体积.性能.这里介绍笔者的几个技巧,希望对大家的工作有帮助. 一.C语言 ...

  7. 51单片机4位数乘法C语言,51单片机实现4位数以内的加减法

    中南民族大学,电子信息工程学院,开设了一门课程,叫<嵌入式电路设计>,由舒老师带头,旨在引导低年级的学生入门嵌入式,其内容比较多,包括模电.数电.C语言.单片机.EDA技术等.最近有位师弟 ...

  8. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  9. 00 59秒计时器仿真c语言源程序,单片机0059_秒计时器.doc

    单片机0059_秒计时器 目 录 摘 要1 引言2 第一章 概述 3 第二章 电路设计4 2.1 单片机核心模块4 2.2 时钟模块5 2.3 复位电路模块5 2.4 显示模块6 第三章 软件程序及调 ...

  10. stc51单片机入门 c语言,STC51单片机入门 (C语言)

    51单片机发展主要历程:AT89C51系列--STC89C52系列--STC90系列--STC11系列--STC12系列--STC15F系列--STC15W系列(最新主流),由于STC12系列功能已经 ...

最新文章

  1. 【故障修复】SharePoint Designer 无法登陆网站
  2. 猎魂觉醒显示无法连接战斗服务器,猎魂觉醒安装失败怎么办_猎魂觉醒安装失败解决方法_游戏吧...
  3. linux 测试vim编译器_软件测试工程师必须要掌握的linux命令
  4. 因VPU预留内存太小造成的视频播放太卡
  5. javaweb实现教师和教室管理系统 java jsp sqlserver
  6. 数字孪生网络(DTN)架构
  7. 基于SpringBoot在线电影订票系统
  8. ANSYS Maxwell 2D永磁体建模
  9. java星星闪烁代码_css3实现星星闪烁效果
  10. 关闭自动降频 linux,Deepin Linux CPU无法进行自动降频的一个解决方法
  11. 跨国项目要注意时区问题
  12. C++面向对象总结——数据抽象与数据封装
  13. 【C语言】BC62统计数据正负数个数(DAY 4)
  14. PostgreSQL数据库统计信息——examine_attribute单列预分析
  15. STM32细节逻辑,relay的自适应
  16. 求100以内的素数并输出(详细讲解)
  17. tcping常用方法
  18. 阿里云服务器升级node版本
  19. T1042/T2080 vxWorks7开发笔记(二)
  20. SAP MM数据源介绍

热门文章

  1. [C#] 汉字转拼音,支持多音字
  2. Python官方文档入门小教程
  3. Java编程练习题(涉及循环,函数等)
  4. 【入门必备】Java数据结构详解
  5. Linux系统镜像源替换
  6. java并发包(JUC)
  7. hex2bin附源代码
  8. 科学计算器 c语言源代码,科学计算器C语言代码
  9. 项目管理工具project软件学习(四) - 日历保存为模板、日历重命名、删除
  10. 产品开发的生命周期管理