计算溢出时间根据晶振频率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. UML-六大关系

    六大关系 依赖关系:(只要是在类中使用到了对方就存在依赖关系) 泛化关系:就是继承关系,即依赖关系的特例 实现关系:依赖关系的特例 关联关系:类于类之间的关系,即依赖关系的特例(具有导航性:双向关系或 ...

  2. Buuctf | BUU LFI COURSE 1

    跟着赵师傅学CTF,这里是我的学习记录 ?file=/flag ?file=/var/log/nginx/access.log :包含ngnix的日志记录 在user-agent里面插入 :bbbbb ...

  3. Junit简单使用

    上篇文章也说到了,接口测试我使用的是Junit框架.因为我还是刚刚接触,也还没有深入了解,主要学会了断言的使用.断言是对测试运行结果的判断,如果结果符合要求,程序就会继续执行下去.反之,如果结果和预计 ...

  4. C++ 关于const引用的测试

    C++ 关于const引用的测试 今天学习了<C++ primer>第五版中的const相关内容,书中关于const的部分内容如下: 由书中内容(P55~P56)可知,const引用有如下 ...

  5. [题解]Magic Line-计算几何(2019牛客多校第三场H题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...

  6. git使用记录九:开发中临时加塞了紧急任务怎么处理

    开发中临时加塞了紧急任务怎么处理 隐藏工作区域 git stash git status 查询隐藏的列表 git stash list 处理完bug,提交之后,再恢复隐藏的工作区域 git stash ...

  7. 解决本地工具无法连接服务器上的mysql的问题

    当本地工具尝试连接服务器的时候,如果出现无法连接的情况,可能是权限没有开. 首先: mysql> show  databases: 发现有mysql数据库 进入该数据库,找到user表 mysq ...

  8. Apache Shiro 会话+缓存+记住我(三)

    1.会话管理SessionDao和SessionManager 1)安装Redis 2)依赖 <dependency> <groupId>redis.clients</g ...

  9. HDU 5159 Card( 计数 期望 )

    Card Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. POJ 3020:Antenna Placement(无向二分图的最小路径覆盖)

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6334   Accepted: 3125 ...