计算溢出时间根据晶振频率4Mhz,TMR0=6,PSA2~PSA0 = 1:4.

因为好像外部晶振在给PIC的时候多分了一次1:4。所以PSA2~PSA0取1:4刚好

数完250次的时间=(1/4Mhz/4)*4*250 = 1ms,每1ms触发一次T0IF中断。

  1. // FOSC=16MHz Fcy=4Mhz Tcy=1/Fcy
  2. #include <pic.h>
  3. __CONFIG(0XFF32);
  4. unsigned char data=0;//定义变数data并赋值为0
  5. main()
  6. {
  7. unsigned int i=0;    //定义i为无符号整形并赋值为0
  8. T0CS=0;             //定时模式
  9. PSA=0;             //设定为用TIMER0,而不是WDT
  10. PS2=0;                 //1:16 预除4倍,数完250次时间=(1/4Mhz)*250*16=1ms
  11. PS1=0;                //PS2,PS1,PS0为除频设置
  12. PS0=1;
  13. T0IF=0;                //设置溢位初始值为0
  14. TMR0=6;             //预设TMR0=6,运行250次会进位
  15. TRISD=0;            //初始化D0--D7设置为输出
  16. PORTD=0;             //输出低电频,8个LED全灭掉
  17. data=0b00000001;    //data赋值为1
  18. while(1)         //主回圈必须是闭环
  19. {
  20. if(T0IF==1)//如果溢位为1则执行if下语句
  21. {
  22. T0IF=0; //if成立将溢位再次置0
  23. i++; //i=i+1
  24. if(i==1000) //i=1000时执行下面语句
  25. {
  26. i=0; //i重新置0,进行下一轮计时
  27. data=data<<1; //data左移1位
  28. if(data==0) //如果data=0时执行下面语句
  29. data=0b00000001; //data重新置为1
  30. PORTD=data; //D埠输出资料为data
  31. TMR0=6;//使TMR0等于6
  32. }
  33. }
  34. }
  35. }

PIC16F877A的TIME0学习的更多相关文章

  1. opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)

    #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgu ...

  2. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  3. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  4. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  5. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  8. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  9. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

随机推荐

  1. 天池平台再升级,打造产业AI知识共享、技术共享平台

    在5月23日的云栖大会·武汉峰会上,天池发布“全球AI开发者计划”,打造一站式人工智能知识共享平台,计划2年内在平台上集聚30万AI工程师.同时,阿里云天池正式升级,成为从产业机会到实施交付一站式解决 ...

  2. loadRunner函数之web_add_header

    web_add_header 功能:用于添加指定的报文头到下一次HTTP请求 格式:web_add_header( const char *Header, const char *Content ), ...

  3. MVVM MVC

    在WPF的MVVM模式中,View和ViewModel之间数据和命令的关联都是通过绑定实现的,绑定后View和ViewModel并不产生直接的依赖.具体就是View中出现数据变化时会尝试修改绑定的目标 ...

  4. php addcslashes()函数 语法

    php addcslashes()函数 语法 作用:返回在指定字符前添加反斜杠的字符串 语法:addcslashes(string,characters) 参数: 参数 描述 string  必须,规 ...

  5. 手机上访问angular移动项目

    要实现手机访问本地开发的移动端项目,首先做到两点: 1.本地打开的项目可以使用本地ip访问 2.手机和电脑同时处于一个同一个局域网中(手机和电脑同时连上同一个wifi / 手机开热点给电脑 / 电脑开 ...

  6. 执行hbase zkcli命令报错

    执行hbase zkcli后报错信息如下: 15/10/02 15:17:55 INFO zookeeper.ZooKeeper: Client environment:java.library.pa ...

  7. linux从head.s到start_kernelstart_kernel之---内核重定位后分析

    参考: https://biscuitos.github.io/blog/ARM-BOOT/ zImage 重定位之后实践 zImage 重定位之后,ARM 将 pc 指针指向了重定位 zImage ...

  8. Intel CPUs

    http://en.wikipedia.org/wiki/Intel_cpus List of Intel Atom microprocessors List of Intel Xeon microp ...

  9. C#-Newtonsoft.Json生成复杂JSON

    官方文档:https://www.newtonsoft.com/json/help/html/SerializeObject.htm 一种方式就可以生成所有的 JSON Collection -> ...

  10. spring cloud stream集成rabbitmq

    pom添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g ...