51单片机用定时器0实现流水灯
来源:互联网 发布:安卓 源码加密 混淆 编辑:程序博客网 时间:2024/05/22 06:50
51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值。原先写的都是用查表来移位的,个人感觉不怎么好,麻烦。直接用位运算的比较好。 n初始值为0,然后n每次循环都加1,P1口赋值语句为: P1=~(0x01<< n) ; 此处注意和P1=~(0xfe<< n) ; 的区别。
/*********调用头文件*****************/ #include<reg51.h> #include<intrins.h> /***********宏定义*******************/ #define uint unsigned int #define uchar unsigned char #define long_time0 10 //定时器0定时时间,每次50ms /************定义全局变量************/ uint n=0; //循环移位变量 /************子函数声明**************/ void init_time0(void); //定时器0初始化子函数 /*************主函数*****************/ void main(void) { init_time0(); } /*********定时器0初始化函数**********/ void init_time0(void) { EA=1; //开总中断 ET0=1; //开定时器0中断 TMOD=0X01; //选择方式1 TH0=(65536-50000)/256; //每次定时50秒 TL0=(65526-50000)%256; TR0=1; //开启定时器 while(1); //等待定时器0中断 } /************定时器中断函数**********/ void time0(void) interrupt 1 using 0 { static uint i=0; i++; if(long_time0==i) { P1=~(0x01<<n); //P1=~(0xfe<<n); if(++n==8)n=0; i=0; //定时时间到清零 } TH0=(65536-50000)/256; //重新装入初值 TL0=(65526-50000)%256; }
0 0
- 51单片机用定时器0实现流水灯
- 用单片机定时器操作流水灯
- 用定时器实现流水灯
- 51单片机的流水灯--逻辑实现
- 51单片机流水灯
- 51单片机STC89C52 流水灯
- 51单片机流水灯制作
- 51单片机闪烁流水灯
- 51单片机流水灯程序
- 51单片机流水灯的三种实现方法
- 51单片机的流水灯--循环指令实现
- 如何用多种代码实现51单片机流水灯
- 51单片机初学(一)流水灯,中断定时器,显像管初步显示
- 单片机学习之流水灯的实现
- 定时器---实现流水灯循环移位点亮
- 用定时器中断实现流水灯一秒走两格
- 51单片机——流水灯源代码
- 51单片机第一弹---流水灯
- sql语句多表查询大集合
- loadrunn 测试json body接口
- Android中ListView添加头部
- [Java视频笔记]day25
- meshlab源代码编译(一)_vs2013
- 51单片机用定时器0实现流水灯
- javaweb 实现分页
- jdk环境变量配置
- C语言常用库函数及其实现
- Sublime Text3注册码(可用)
- Problem3-1003
- 利用JOSN取出JOSN字符串中的数据
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛 农场阳光(编程大题)
- <<web>>div嵌套就是矩形的递归