基于51单片机的温度监控器的设计内容摘要:
降沿时,寄存器的值加 1,在这种工作方式下,每个 机器周期的 5SP2 期间,对外部输入进行采样。 若在第一个机器周期中采到的值为 1,而在下一个机器周期中采到的值为 0, 则在紧跟着的下一个周期的 S3P1 期间寄存器加 1。 由于识别 1 至 0 的跳变需要 2 个机器周期( 24 个振荡周期),因此,最 高计数速率为振荡频率的 1/24。 为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输 入信号至少被采样一次。 捕获方式: 在捕获方式下,通过 T2CON 控制位 EXEN2 来选择两种方式。 如果 EXEN2=0,定时器 2 是一个 16 位定时器或计数器, 计数溢出时,对 T2CON 的溢出 标志 TF2 置位,同时激活中断。 如果 EXEN2=1,定时器 2 完成相同的操作,而当 T2EX 引 脚外部输入信号发生 1 至 0 负跳变时,也出现 TH2 和TL2 中的值分别被捕获到 RCAP2H 和 RCAP2L 中。 另外, T2EX 引 脚信号的跳变使得 T2CON 中的 EXF2 置位,与 TF2 相仿, EXF2 也会激活中断。 捕获方式如图 4 所示。 自动重装载(向上或向下计数器)方式: 当定时器 2工作于 16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器 T2CON (见表 5)的 DCEN 位(允许向下计数)来选择的。 复位时, DCEN 位置 “0”,定时器 2 默认设置为向上计数。 当 DCEN 置位时,定时器 2 既可向上计数也可向下计数,这取决于 T2EX 引脚的值,参见图 5,当 DCEN=0 时,定时器 2 自动设置 为向上计数,在这种方式下,T2CON 中的 EXEN2 控制位有两种选择,若 EXEN2=0,定时器 2 为向上计数至 0FFFFH 溢 出,置位 TF2 激活中断,同时把 16 位计数寄存器 RCAP2H 和 RCAP2L 重装载,RCAP2H 和 RCAP2L 的值可由软件预置。 若 EXEN2=1,定时器 2 的 16 位重装载由溢出或外部输入端 T2EX 从 1 至 0 的下降沿触发。 这个脉冲使 EXF2 置位,如果 中断允许,同样产生中断。 定时器 2 的中断入口地址是: 002BH ——0032H。 当DCEN=1 时,允许定时器 2 向上或向下计数,如图 6 所示。 这种方式下, T2EX 引脚控制计数器方向。 T2EX 引脚为逻 辑 “1”时,定时器向上计数,当计数 0FFFFH 向上溢出时,置位 TF2,同时把 16 位计数寄存器 RCAP2H 和 RCAP2L 重装 载到 TH2 和 TL2 中。 T2EX 引脚为逻辑 “0”时,定时器 2 向下计数,当 TH2 和 TL2 中的数值等于 RCAP2H 和RCAP2L 中的值时,计数溢出,置位 TF2,同时将 0FFFFH 数值重新装入定时寄存器中。 当定时 /计数器 2 向上溢出或向下溢出时,置位 EXF2 位。 波特率发生器: 当T2CON(表 3)中的 TCLK 和 RCLK 置位时,定时 /计数器 2 作为 波特 率发生器使用。 如果定时 /计数器 2 作 表 3 为发送器或 接收器,其发送和接收的波特率可以是不同的,定时器 1 用于其它功能,如图 7 所示。 若 RCLK 和 TCLK 置位,则定时器 2 工作于 波特率发生器 方式。 波特率发生器的方式与自动重装载方式相仿 ,在此方式下, TH2 翻转使定时器 2 的寄存器用RCAP2H 和 RCAP2L 中的 16 位数值重新装载,该数值由软件设置。 在方式 1 和方式 3 中,波特率由定时器 2 的溢出速率根据下式确定: 方式 1和 3的波特率 =定时器的溢出率 /16 定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式( C/T2=0)。 定时器 2 作为波 特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期( 1/12 振荡频率)寄存器的值加 1, 而作为波特率发生器使用时,在每个状态时 间( 1/2 振荡频率)寄存器的值加 1。 波特率的计算公式如下: 方式 1和 3的波特率 =振荡频率 /{32*[65536(RCP2H,RCP2L)]} 式中( RCAP2H, RCAP2L)是 RCAP2H 和 RCAP2L 中的 16 位无符号数。 定时器 2 作为波特率发生器使用的电路如图 7 所示。 T2CON 中的 RCLK 或 TCLK=1 时,波特率工作方式才有效。 在 波特率发生器工作方式中, TH2 翻转不能使 TF2 置位,故而不产生中断。 但若 EXEN2 置位,且 T2EX 端产生由 1 至 0 的 负跳变,则会使 EXF2 置位,此时并不能将( RCAP2H, RCAP2L)的内容重新装入 TH2 和 TL2 中。 所以,当定时器 2 作 为波特率发生器使用时, T2EX 可作为附加的外部中断源来使用。 需要注意的是,当定时器 2 工作于波特率器时,作为定 时器运行( TR2=1)时,并不能访问 TH2 和 TL2。 因为此时每个状态 时间定时器 都会加 1,对其读写将得到一个不确定的 数值。 然而,对RCAP2 则可读而不可写,因为写入 操作将是重新装载,写入操作可能令写和 /或重装载出错。 在访问定时器 2 或 RCAP2 寄存器之前,应将定时器关闭(清除 TR2)。 可编程时钟输出: 定时器 2 可通过编程从 输出一个占空比为 50%的 时钟信号 ,如图 8 所示。 引脚除了是一个标准的 I/O 口外, 还可以通过编程使其作为定时 /计数器 2 的外部时钟输入和输出占空比 50%的 时钟脉冲。 当时钟振荡频率为 16MHz 时,输 出时钟频率范围为 61Hz—4MHz。 当设置定时 /计数器 2 为时钟发生器时, C/T2( T2CON .1)=0, T2OE ( ) =1,必须由 TR2( )启 动或停止定时器。 时钟输出频率取决于振荡频率和定时器 2 捕获寄存器( RCAP2H, RCAP2L)的重新装载值,公式如下: 输出时钟频率 =振荡器频率 /{4*[65536(RCP2H,RCP2L)]} 在时钟输出方式下,定时器 2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。 定时器 2 作为波特率 发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用 RCAP2L 和 RCAP2L。 UART 串口 AT89C52的 UART 工作方式与 AT89C51 工作方式相同。 时钟振荡器 AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振 荡器,振荡电路参见图 10。 外接石英晶体(或陶瓷谐振器)及电容 C C2 接在放大器的反馈回路中构成并联振荡电路。 对外接电容 C C2 虽 然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳 定性,如果使用石英晶体,我们推荐电容使用 30pF177。 10pF,而如使用陶瓷谐振器建议选择 40pF177。 10pF。 用户也可以采用外部时钟。 采用外部时钟的电路如图 10 右图所示。 这种情况下,外部时钟脉冲接到 XTAL1 端,即内部 时钟发生器的输入端, XTAL2 则悬空。 由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但 最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 中断 AT89C52 共有 6 个中断向量:两个外中断( INT0 和 INT1), 3 个定时器中断(定时器 0、 2)和串行口中断。 所有 这些中断源如图 9 所示。 这些中断源可通过分别设置专用寄存器 IE 的置位或清 0 来控制每一个中断的允许或禁止。 IE 也有一个总禁止位EA, 它能控制所有中断的允许或禁止。 注意表 5 中的 为保留位,在 AT89C51 中 也是保留位。 程序员不应将 “1”写入这些位,它们是将来 AT89 系 列产品作为扩展用的。 定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,当转向 中断服务程序 时,这些标志位不能被硬件清除, 事实上,服务程序需确定是 TF2 或 EXF2 产生中断,而由软件清除中断标志位。 定时器 0 和定时器 1 的标志位 TF0 和 TF1 在定时器溢出那个机器周期的 S5P2 状态置位,而会在下一个机器周期才查 询到该中断标志。 然而,定时器 2 的标志位 TF2 在定时器溢出的那个机器周期的 S2P2 状态置位,并在同一个机器周期内 查询到该标志。 空闲节电模式 在空闲工作模式状态, CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。 此时,同 时将片内 RAM 和所有特殊功能寄存器的内容冻结。 空闲模式可由任何允许的中断请求或硬件复位终止。 由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部 RAM,但可以访问端 口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对 端口或外部存储器的写入指令。 掉电模式 在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的。基于51单片机的温度监控器的设计
相关推荐
dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa,bb,cc,dd,ee,ff)。 } if(mode==3) { num=500000/num1。 aa=num/100000。 bb=num/10000%10。 cc=num/1000%10。 dd=num/100%10。 ee=num/10%10。 ff=num%10。 display(aa
宁科技大学本科生毕业设计 第 14 页 第四章 系统软件设计 软件分 为两部分,主程序和中断服务程序,如图 41 所示。 主程序完成初始化工作、超声波发射和接收, 距离计算、结果的输出。 外部中断服务子程序主要完成时间值的读取。 NO YES 图 41 主程序流 程图 外部中断子程序 计算距离 结果输出 定时器及中断初始化 发射超声波 开外部中断 指示灯闪烁 单片机初始化 DS18B20 初始化
表 单片机 管脚含义 ALE/PROG 地址锁存控制信号: 在访问片外程序存储器的时候,每机器周期这个信号出现两次,它的下降沿用来控制锁存 P0口输出的低 8位地址。 就算不在访问片外程序存储器的时候,这个信号也以振荡频率的 1/6 出现,因此可以用来作为对外输出的时钟脉冲。 但是在访问片外数据存储器的时候, ALE 脉冲会跳空一个,那此时作为时钟输出就不合适了。 /PSEN
图 ISD1760外形 贵州大学科技学院本科毕业论文(设计) 第 6 页 显示模块的选型 方案一: 采用 LED 数码管,如图 所示,它是设备常用简易显示电子元器件之一。 LED 数码管的主要优点如下: (1)能在低电压、小电流条件下驱动发光,能与 CMOS、 ITL电路兼容。 (2)发光响应时间极短,高频特性好,单色性好,亮度高。 (3)体 积小,重量轻,抗冲击性能好。 (4)寿命长
if(h2==4amp。 amp。 h1==2) { h2=0。 h1=0。 } write_(0x80+0x40+0x01)。 write_date(table2[h1])。 write_date(table2[h2])。 write_ds(0x84,h1*16+h2)。 //向 ds1302中写入时 } } else if(temp==0x0b) { delay(5)。
即通信信道。 发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射信号。 接收端将接收到的信号装成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制信号后输出。 常用的有通过脉冲宽度来实现信号调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制( PPM)两种方法。 简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输