20120801-51单片机定时器T1的使用2-查询法
来源:互联网 发布:恐怖经历知乎 编辑:程序博客网 时间:2024/05/27 14:13
注意:要知道,查询法是占用CPU时间的,帮不是一种好方法。
/**********************************************方法1:延时法硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1波特率:9600描述:T1用于定时,方式1,定时时间50ms,查询方式,定时时间到,TF1=1,利用模拟串口发送字符0x68**********************************************/#include "reg52.h"#define uchar unsigned charsbit P1_0 = 0x90;sbit P1_1 = 0x91;sbit P1_2 = 0x92;#define RXD P1_0#define TXD P1_1#define WRDYN 44 //写延时#define RDDYN 43 //读延时void Delay2cp(unsigned char i);//往串口写一个字节void WByte(uchar input){uchar i=8;TXD=(bit)0;//发送启始位Delay2cp(39);//发送8位数据位while(i--){TXD=(bit)(input&0x01); //先传低位Delay2cp(36);input=input>>1;}//发送校验位(无)TXD=(bit)1;//发送结束位Delay2cp(46);}//从串口读一个字节uchar RByte(void){uchar Output=0;uchar i=8;uchar temp=RDDYN;//发送8位数据位Delay2cp(RDDYN*1.5);//此处注意,等过起始位while(i--){Output >>=1;if(RXD) Output |=0x80;//先收低位Delay2cp(35);//(96-26)/2,循环共占用26个指令周}while(--temp)//在指定的时间内搜寻结束位。{Delay2cp(1);if(RXD)break;//收到结束位便退}return Output;}//延时程序*void Delay2cp(unsigned char i){ while(--i);//刚好两个指令周期。}void main(){TMOD=0x10; //T1 方式1TH1=0x9E; //50ms初始值TL1=0x58;//50ms初始值TR1=1;//启用定时器T1while(1){while(!TF1){;}TH1=0x9E;TL1=0x58;WByte(0x68);TF1=0;}}
- 20120801-51单片机定时器T1的使用2-查询法
- 20120801-51单片机的定时器T1的使用1-中断法
- 20120801-51单片机定时器T0的使用1-中断法
- 51单片机定时器的使用
- 基于proteus的51单片机仿真实例五十八、定时器/计数器T1的定时实例
- 单片机中定时器T1对串口的作用
- C51单片机定时器T0,T1的常用基本设置
- T1与T3定时器的使用
- 关于51单片机定时器的灵活使用
- 51单片机定时器的原理与使用
- 使用定时器T1的模式2 定时器T0的模式2 并且引入外部事件计数器
- 单片机中定时器的使用
- 51单片机定时器使用举例
- 51单片机STC89C52 定时器(查询方式)
- 使用定时器T1的模式2 定时器T0的模式2 每隔两秒左右切换指示灯
- 51单片机的定时器/计数器
- 51单片机的定时器扯淡
- STC89c51单片机的定时器2
- thinkpad Fn+F7 失效
- Java 将sytem.out 数据写入到文件中
- 全世界最全牛人博客
- 只有Android才能救诺基亚?
- 中文乱码问题
- 20120801-51单片机定时器T1的使用2-查询法
- struct 更改action后不响应问题
- Android Service开发的简略步骤
- 在Eclipse下搭建Android开发环境教程(1)
- springMVC笔记day01
- 各种诱惑:科技公司的福利
- 在Eclipse下搭建Android开发环境教程(2)
- windows多线程
- findTask,queryTask,indentifyTask 之间的区别