摘要: 通过前面的定时器理论了解到,使用一个定时器,要经过下面四步:1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);3、如果工作在中断方式,则需要开定时器/计数器的中断TCON中的标志位:TF0/TF1=0/1;4、启动定时器/计数器:TR0/TR1=1;//1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);//2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);//3、如果工作在中断方式, 阅读全文
posted @ 2014-03-11 22:59 彩蛋 阅读(7449) 评论(0) 推荐(0) 编辑
摘要: 定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件,晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒;12MHZ晶振内部的工作频率(时钟脉冲频率)是12MHZ/12=1MHZ=1000000次/秒=1000000条指令/秒=1000000次/1000000微秒=1次/微秒=1条指令/微秒;也就是说,晶振振荡一次,就会给单片机提供一个时钟脉冲,花费的时间是1微秒,此时,CPU会执行一条指令,经历一个机器周期;即:1个时钟脉冲=1个机器周期=1微秒 阅读全文
posted @ 2014-03-11 22:05 彩蛋 阅读(986) 评论(0) 推荐(0) 编辑
摘要: #includesbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsigned char TempData[10]; //存储显示值的数组void Delay(unsigned int t); // 阅读全文
posted @ 2014-03-11 21:51 彩蛋 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 数码管闪烁,利用一个布尔变量控制各数码管的显示值,为真(True)是赋对应的数值,为假(False)时熄灭,还是利用一定的时间间隔,在人眼的视觉暂留时间段内,快速的切换熄灭和点亮,可用下面的代码测试。#includesbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef 阅读全文
posted @ 2014-03-11 21:40 彩蛋 阅读(582) 评论(0) 推荐(0) 编辑