51系列单片机波特率的计算方法(最终版本)

51系列单片机波特率的计算方法(最终版本)
51系列单片机波特率的计算方法(最终版本)

STC单片机串口1用定时器1模式2做波特率发生器的计算方法一、基本原理说明

定时器1工作在方式2是一种既省事又精确的产生串行口波特率的方法。原因是定时器T1工作方式2是一种8位自动重装方式,无需在中断服务程序中送数,没有由于中断引起的误差。

波特率的计算公式:

设定时器T1方式2的初值为X,则有:定时器T1的溢出率=计数速率/(256-X)=fosc/(256-X)*12;(注:12分频的单片机)

则方式2的波特率=2SMOD*fosc/(256-X)*12*32.

二、计算题

1.波特率的计算公式:

9600Hz(9600bps),4800Hz(4800bps),其他波特率都有误差。

图1此图中波特率是19200BPS、57600BPS时候,存在误差

2.溢出率:溢出率应该是每秒溢出的次数。

综合式:波特率=(2SMOD/32)*(T1的溢出率)=(2SMOD/32)*(fosc/(12*(256-TL1)))

=(2SMOD*fosc)/(394*(256-TL1))

12/fosc=每个机器周期时间(fosc单片机的晶振时钟的频率),8位定时器T1溢出一次所需的时间=(12/fosc)*(256-初值)=溢出一次所需的时间,最后用1除以该数就代表每秒溢出的次数,也称作溢出率。

计数速率=fosc/12(12分频的单片机)

溢出速率=1/一次溢出时间=1/((256-TL1初值)*(12/fosc))

=fosc/(12*(256-TL1初值))

3.计算例题

(1)若STC单片机的晶振频率fosc为11.0592MHz,串行口1工作在方式1,定时器T1作为波特率发生器,T1在工作模式2自动重装初值的8位定时方式,已知SMOD=0,要求串行口1的波特率为9600Hz(9600bps),请计算定时器T1的初始值TL1=?。

解答:

(a)因SMOD=0,波特率=(2SMOD/32)*(T1的溢出率)=(T1的溢出率)/32=9.6Kbps计算得,

T1的溢出率=9.6KHz*32=307.2KHz=0.3072MHz

(b)T1的溢出率=fosc/(12*(256-TL1))=11.0592MHz/(12*(256-TL1))=0.3072MHz计算得,

TL1=253=0x FDH

(c)STC-ISP软件计算结果如下图所示:

(d)C语言编写的串口1和定时器1初始化代码如下:

void UartInit(void)//9600bps@11.0592MHz

{

PCON&=0x7F;//波特率不倍速

SCON=0x50;//8位数据,可变波特率

AUXR&=0xBF;//定时器1时钟为Fosc/12,即12T

AUXR&=0xFE;//串口1选择定时器1为波特率发生器

TMOD&=0x0F;//清除定时器1模式位

TMOD|=0x20;//设定定时器1为8位自动重装方式

TL1=0xFD;//设定定时初值

TH1=0xFD;//设定定时器重装值

ET1=0;//禁止定时器1中断

TR1=1;//启动定时器1

}

电源控制寄存器PCON初值:0X7FH----01111111PCON&=0X7F;比特B7B6B5B4B3B2B1B0名字SMOD SMOD0LVDF POF GF1GF0PD IDL 值01111111 SMOD=0;表示串口1的波特率不加倍;

SMOD0、LVDF、POF、GF1、GF0、PD、IDL维持原状态位不变;串口1控制寄存器SC0N初值:0X50H-----01010000SC0N&=0X50;比特B7B6B5B4B3B2B1B0名字SM0/FE SM1SM2REN TB8RB8TI RI 值01010000 SMOD0=0,SM1=1;表示串口1工作在模式1方式;

SM2=0;表示串口1在方式1非多机通信方式;

REN=1;表示维持原状态位不变;

TB8、RB8、TI、RI各位分别置0;

辅助寄存器AUXR初值:0XBFH-----10111111AUXR&=0XBF;

比特B7B6B5B4B3B2B1B0名字T0X12T1X12UART_M0x6T2R T2_C/T T2x12EXTRAM S1ST2值10111111 T1X12=0;表示定时器1是12分频,其速度是传统8051的速度;

T0X12、UART_M0x6、T2R、T2_C/T、T2x12、EXTRAM、S1ST2维持原状态位值不变;

辅助寄存器AUXR初值:0XFEH------11111110AUXR&=0XFE;

比特B7B6B5B4B3B2B1B0名字T0X12T1X12UART_M0x6T2R T2_C/T T2x12EXTRAM S1ST2值11111110 S1ST2=0;表示定时器1作为串口1的波特率发生器;

T0X12、T1X12、UART_M0x6、T2R、T2_C/T、T2x12、EXTRAM

维持原状态位值不变;

辅助寄存器AUXR初值:0XBEH------10111110AUXR&=0XBE;

比特B7B6B5B4B3B2B1B0名字T0X12T1X12UART_M0x6T2R T2_C/T T2x12EXTRAM S1ST2值10111110 T1X12=0;表示定时器1是12分频,其速度是传统8051的速度;

S1ST2=0;表示定时器1作为串口1的波特率发生器;

T0X12、UART_M0x6、T2R、T2_C/T、T2x12、EXTRAM维持原状态位值不变;

定时器工作模式寄存器TMOD寄存器初值:0X0FH-----00001111

TMOD&=0X0F

比特B7B6B5B4B3B2B1B0名字GATE C/T M1M0GATE C/T M1M0值00001111

作用域与定时器1有关与定时器0有关GATE(B7)=0;表示不要求条件INT1引脚为高,并且TR1=1的条件定时,亦即定时不受任何条件限制;

C/T=0;该位为0时,表示定时器1工作在定时模式;

M1=0,M0=0;表示定时器1-16位自动重新加载模式;

B3、B2、B1、B0维持原状态位值不变;

定时器工作模式寄存器TMOD初值:0X20H------00100000

TMOD|=0X20;

比特B7B6B5B4B3B2B1B0名字GATE C/T M1M0GATE C/T M1M0值00100000

作用域与定时器1有关与定时器0有关

M1=1,M0=0;表示定时器1-8位自动重新加载模式;

B7、B6、B4、B3、B2、B1、B0维持原状态位值不变;

(2)若STC单片机的晶振频率fosc为11.0592MHz,串行口1工作在方式1,定时器T1作为波特率发生器,T1在工作模式2自动重装初值的8位定时方式,已知SMOD=1,要求串行口1的波特率为9600Hz(9600bps),请计算定时器T1的初始值TL1=?。

解答:

(a)因SMOD=0,波特率=(2SMOD/32)*(T1的溢出率)=(T1的溢出率)/32=9.6Kbps计算

得,T1的溢出率=9.6KHz*16=153.6KHz=0.1536MHz

(b)T1的溢出率=fosc/(12*(256-TL1))=11.0592MHz/(12*(256-TL1))=0.1536MHz计算得,TL1=250=0x FAH

(c)STC-ISP软件计算结果如下图所示:

(d)C语言编写的串口1和定时器1初始化代码如下:

void UartInit(void)//9600bps@11.0592MHz

{PCON|=0x80;//使能波特率倍速位SMOD

SCON=0x50;//8位数据,可变波特率

AUXR&=0xBF;//定时器1时钟为Fosc/12,即12T

AUXR&=0xFE;//串口1选择定时器1为波特率发生器

TMOD&=0x0F;//清除定时器1模式位

TMOD|=0x20;//设定定时器1为8位自动重装方式

TL1=0x FA;//设定定时初值

TH1=0x FA;//设定定时器重装值

ET1=0;//禁止定时器1中断

TR1=1;//启动定时器1

}

电源控制寄存器PCON初值:0X80H----10000000PCON&=0X80;比特B7B6B5B4B3B2B1B0名字SMOD SMOD0LVDF POF GF1GF0PD IDL 值10000000 SMOD=1;表示串口1的在工作方式1、2、3时候波特率加倍;SMOD0、LVDF、POF、GF1、GF0、PD、IDL全部置0;

定时器的初值是0XFAH、0XFDH在波特率加倍、不加倍实现方法比较图

定时器的初值是0XFAH

SMOD=0(波特率不加倍),波特率是4800bps SMOD=1(波特率加倍),波特率是9600bps

定时器的初值是0XFDH

SMOD=0(波特率不加倍),波特率是9600bps SMOD=1(波特率加倍),波特率是19200bps

思考题

1.若STC单片机的晶振频率fosc为11.0592MHz,串行口1工作在方式1,定时器T1作为波特率发生器,T1在工作模式2自动重装初值的8位定时方式,已知SMOD=1,要求串行口1的波特率为4800Hz(4800bps),请计算T1定时器TL1的值,并用C语言编写程序实现串行口1的初始化。

2.若STC单片机的晶振频率fosc为11.0592MHz,串行口1工作在方式1,定时器T1作为波特率发生器,T1在工作模式2自动重装初值的8位定时方式,要求串行口1的波特率为9600Hz(9600bps),请设置SMOD、T1定时器TL1的值,并用C语言编写程序实现串行口1的初始化。

基于51单片机的简易计算器制作

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

51单片机串口通信及波特率设置

51单片机串口通信及波特率设置 MCS-51单片机具有一个全双工的串行通信接口,能同时进行发送和接收。它可以作为UART(通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。 1. 数据缓冲寄存器SBUF SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。接收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问题。 2. 状态控制寄存器SCON SCON是一个逐位定义的8位寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。它的各个位定义如下: MSB LSB SM0 SM1 SM2 REN TB8 RB8 TI RI SM0和SM1是串口的工作方式选择位,2个选择位对应4种工作方式,如下表,其中Fosc是振荡器的频率。 SM0 SM1 工作方式功能波特率 0 0 0 8位同步移位寄存器Fosc/12 0 1 1 10位UART 可变 1 0 2 11位UART Fosc/64或Fosc/32 1 1 3 11位UART 可变 SM2在工作方式2和3中是多机通信的使能位。在工作方式0中,SM2必须为0。在工作方式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。在工作方式2和3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。此功能可用于多处理机通信。 REN为允许串行接收位,由软件置位或清除。置位时允许串行接收,清除时禁止串行接收。 TB8是工作方式2和3要发送的第9位数据。在许多通信协议中该位是奇偶位,可以按需要由软件置位或清除。在多处理机通信中,该位用于表示是地址帧还是数据帧。 RB8是工作方式2和3中接收到的第9位数据(例如是奇偶位或者地址/数据标识位),在工作方式1中若SM2=0,则RB8是已接收的停止位。在工作方式0中RB8不使用。 TI 为发送中断标志位,由硬件置位,软件清除。工作方式0中在发送第8位末尾由硬件置位;在其他工作方式时,在发送停止位开始时由硬件置位。TI=1时,申请中断。CPU 响应中断后,发送下一帧数据。在任何工作方式中都必须由软件清除TI。 RI为接收中断标志位,由硬件置位,软件清除。工作方式0中在接收第8位末尾由硬件置位;在其他工作方式时,在接收停止位的中间由硬件置位。RI=1时,申请中断,要求CPU取走数据。但在工作方式1中,SM2=1且未接收到有效的停止位时,不会对RI置位。在任何工作方式中都必须由软件清除RI。 系统复位时,SCON的所有位都被清除。 控制寄存器PCON也是一个逐位定义的8位寄存器,目前仅仅有几位有定义,如下所示:MSB LSB

基于51单片机的室内空气检测文献综述

福州大学至诚学院本科生毕业设计(论文)文献综述 题目:基于单片机的室内空气 质量监测系统设计 姓名:陈志勇 学号:211114112 系别:电气工程及其自动化 专业:自动化 年级:2011级 指导教师:(签名) 年月日 1、研究背景与意义

全球经济的快速发展和工业水平的提高,人类所面临的大气污染问题日益严峻,空气质量的好坏受到越来越多的关注。随着生活水平的提高、居住条件的改善,人们对生活环境质量的要求也越来越高,拥有一个健康无污染的室内环境就成为很多人的共同愿望。特别是近几年,国内各大城市对PM2.5持续居高不下,这引起了广泛的关注。而对于室内环境来说,工业排放的可吸附颗粒物、装修房间排放的甲醛、及厨房排放的油烟等是其污染的主要来源。这些烟尘、甲醛等有害物质的含量远远超出了正常的标准,严重影响了人们的身体健康。 信息技术的发展改变了人们日常办公的方式和环境,更多的人可以选择在室内完成一天的工作。尤其是生活在城市中的群体,有一半以上的时间都是在室内环境中度过。在这种环境下,即使空气中的污染物的浓度不太高,长期处在室内并呼吸受到污染过的空气,健康也势必会受到影响,污染空气带来的伤害也是无法估量的。有时,室内污染比室外污染更加严重,因此对室内空气污染的预防与治理具有重大意义,它直接影响到人们的生活环境和身体健康。 事实上,人类超过一半的疾病都是由于空气污染造成的,全世界每年死于空气污染的人数以数百万计。因此,近年来,人们越来越意识到改善空气质量的重要性。一方面,控制污染源,减少污染物的产生;另一方面,采取措施,减少已存在的污染物。解决室内环境的污染问题,有很多种方法可以选择。因此,本文采用静电式来净化室内空气,一定程度上可以改善室内空气质量。该设计系统能够检测空气环境质量,比如温度、湿度,更重要的是能检测空气中掺杂的一定浓度粉尘、烟雾、甲醛等杂质气体,当浓度超过设定值时进行报警,并启动高压静电模块,将这些杂质颗粒吸附在高压静电的极板上。 2 研究动态 气体传感器测定甲醛成为近年来甲醛检测研究的新热点。早在1983年,压电类甲醛传感器就已问世。这种传感器可以不需要对样品进行任何处理就可以测定,但易受水分子的影响而使晶体震动频率发生漂移,故基本无实用性。为适应室内空气甲醛现场快速检测的要求,目前已开发出不少甲醛快速测定仪,这些仪器可直接在现场测定甲醛浓度,操作方便,适用于室内和公共场所空气中甲醛浓度的现场测定,也适用于环境测试舱法测定木质板材中的甲醛释放量。但这些仪器的工作原理、响应性能、适应范围等都不同。 在测试甲醛、苯等害气体方面,国外比较出名的有:美国ESC公司生产的Z 一300甲醛检测仪、英国PPM公司生产的PPM-400甲醛检测仪;国内的有:江苏安普电子工程有限公司生产的400型甲醛分析仪、北京宾达绿创科技有限公司生产的甲醛测定仪抑一308等。

基于51单片机的计算器设计

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

51单片机课设 串口计算器

[二0一三年]

1作品简介 本作品为带有串口通信功能的计算器,PC可通过串口助手软件将算式发送至单片机,单片机立即将计算结果发送回PC,并且在液晶上显示结果。串口通信波特率为两档可调,分别为9600bps和4800bps,可通过两个按键调整,同时在液晶上会显示当前的波特率。 计算器可自动识别输入的字符串,并自动判断输入的算式是否正确;可自动识别算式中包含错误字符、除数为零、浮点数做取余运算等错误。当计算结果超出设定范围时在液晶上出现“超出范围”提示,同时向PC发送“The result is out of range! ”。 2作品整体方案 2.1 串行通信功能: 实验板和PC电脑通过USB线相连,使MCU和PC软件“串口助手”能够进行串行通信。 (1)当实验板上电时默认波特率为9600bps,并发送欢迎词和提示词,例如“Welcome to Calculator V1.0”,"You can press key1 and key2 to change baud rate.".... (2)当实验板上按键1按下时波特率变更为4800bps,按键2按下时波特率变更为9600bps,并用两个LED灯指示相应的波特率。 2.2 计算器功能 通过串口助手发送框发送需要计算的公式,例如20*4=,MCU收到后解析公式并计算结果,将结果返回给串口,例如“The result is 80”,同时将计算结果显示在数码管上,具体细节如下: (1)可以进行加(+)、减(-)、乘(*)、除(\)、取余(%)运算; (2)整形、浮点型运算; (3)当计算结果为整形数时,有效的运算结果范围是-999~9999,超过此结果,返回相应的提示符,例如“The result is out of range.”,液晶上显示“超出范围”; (4)当计算结果为浮点数时,有效的运算结果范围是-99.9~999.9,液晶上保

基于51单片机的温度控制系统的设计

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

8051的串口波特率的计算(笔记版)

8051的串口波特率的计算 1、方式0的波特率,固定为晶振频率的十二分之一。 2、方式2的波特率,取决于PCON寄存器的SMOD位。PCON是一个特殊的寄 存器,吹了最高位SMOD位,其他位都是虚设的。计算方法如下: SMOD=0,波特率为晶振的1/64; SMOD=1,波特率为晶振的1/32. 3、方式1与方式3的波特率都是由定时器的溢出率决定的。 公式为: BR=(2SOMD/32)*(定时器TI的溢出率) 通常情况下,我们使用定时器的方式2,即比率发生器,自动重载计数常数。 溢出的周期为: T=(256-X)*12/fosc 溢出率为溢出周期的倒数,即 T1=1/T 所以: 式中:SMOD是所选的方式,fosc是晶振频率。X是初始值。 51单片机模拟串口波特率计算方法 1.计算波特率位间隔时间(即定时时间,其实就是波特率的倒数) 位间隔时间(us)=10(6)(us)/波特率(bps)

2.计算机单片机指令周期: 指令周期(us)=12/晶振频率(Mhz) 补充问题:做串口通信时,为什么要把晶振频率设为11.0592,为什么要把波特率设为9600? 先说波特率。波特率从300到115200都可以,甚至更高或更低。一般规范的波特率都是3的倍数,比如9600、19200、38400;但是并不是一定的,波特率也可以是10000或者10001、10002,只要你的设备能产生符合这个要求的频率,尤其是自己用时,波特率都是很随意的,没有限制。只是多数时候为了和电脑配合,波特率才规范为固定的几个值,且为了传输稳定,用9600。 用11.0592晶振的原因是51单片机的定时器导致的。通常用11.0592M晶振是为了得到标准的无误差的波特率。举例说来,如我们要得到的9600的波特率,晶振为11.0592M和12M,定制器1为2SMOD设为1,分别看看那所求的TH1为何值。代入公式: 11.0592M 9600=(2/32)*((11.0592M/12)(256-TH1)) TH 1=250 12M 9600=(2/32)*((12M/12)(256-TH1)) TH1=249.49

基于51单片机的室内甲醛测试系统

基于51单片机的室内甲醛测试系统 甲醛是一种具有刺激气味的无色气体,也是一种潜在的致癌物质,对人体健康有较大的危害,许多疾病的诱发都与甲醛有关,如哮喘,白血病等。甲醛浓度在每立方米空气中达到0.06-0.07mg/m3时,儿童就会发生轻微气喘。当室内空气中甲醛含量为0.1mg/m3时,就有异味和不适感。达到0.5mg/m3时,可刺激眼睛,引起流泪,它对人体健康的危害不容忽视。单片机具有通用性强、体积小、价格低、稳定可靠等突出优点,在智能产品、测控系统等领域得到广泛的应用。本文设计的测试仪可现场可直接显示甲醛浓度值。当其浓度值小于国家规定的标准值(可按键修改)时绿灯亮,可以入住,当超过规定的室内居住标准值时红灯亮开始报警提醒人们暂时不要入住。 1 硬件介绍 基于单片机的室内甲醛测试仪由单片机系统,显示电路,功能键盘,甲醛传感器,测量电路及3位半双积分A/D转换器,报警输出电路构成。系统结构: 1.1测量电路 测量电路由CH20/S-10甲醛传感器,I/U(电流/电压)变换器RCV420芯片,5G14433A/D 转换器等组成。 甲醛传感器由甲醛探头,CH20传感器组成。当空气被内部的采样系统吸收后,将产生的电流信号与相连产生一个与甲醛浓度成正比的电流,该电流经过4~20MA甲醛模块的信号调理,与I/U变换器RCV420芯片转换成0~5V的电压,该电压经过5G14433A/D转换器,与8051单片机相连,在显示器上显示出甲醛的浓度值,当超过国家规定的标准时进行报警。CH20/S-10的相关参数如下:电化学工作原理;量程:0-10PPM;最大过载浓度:50PPM;最小分辨率:±0.05PPM;工作寿命:3年;灵敏度:1200±300nA/ppm,4~20MA甲醛模块;工作温度:-20~45,响应时间(T90):<50s。 Burr-Brown公司生产的RCV420精密I/U变换器能将4~20mA的环路电流变换成0~5V的电压输出。作为一种单片集成电路具有可靠的性能和很低的成本。除具有精密运放和电阻网络外,还集成有10V基准电压源。在不需要外调整的情况下,可以获得86dB的共模抑制比和40V的共模电压输入。在全量程范围内输入阻抗仅有1.5V的压降,对于环路电流具有很好的变换能力。其芯片引脚分布及内部结构图。 在使用中10、11和12脚相连,2、5和13脚相连接地,14和15脚相连接,作为0~5V 电压信号的输出端,当需要调整增益时14和15脚之间接入电位器来调整增益,但这样会减小共模抑制比,减少量是增益增加1%,共模抑制比将减少6dB,因此我们在使用时一般直接将14和15脚短接,7和8脚悬空,4和16脚分别接一个1μF的电容接地,IN+或IN-端接输入的电流信号,一般情况下,只使用一端,具体使用那端取决于输入信号的极性和所需输出电压的极性,我们在使用过程中,使用的是IN+端。 1.2 5G14433A/D转换器 5G14433A/D转换器是国产的广为流行的最典型的双积分3位半A/D转换器它具有抗干扰性能好,转换精度高(相当于11位二进制数),自动校零,自动极性输出,自动量程控制信号输出,动态字位扫描BCD码输出,单基准电压,外接元件少,价格低廉等特点。但其转换速度慢,约1~10次/秒在不要求高速转换的场合。5G14433芯片引脚参数及其与单片机的连接如下: VAG:被测电压VX和基准电压VR的接地端(模拟地)。 VR:外接输入基准电压(+2V或+200mv)

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告 专业:通信工程 班级:09312班 姓名:某某某 学号:09031069 指导教师: 二0一二年六月十八日

目录 1设计目的 (1) 2 设计题目描述与要求 (1) 3 设计过程 (2) 4硬件总体方案及说明 (6) 5 软件总体方案及设计流程 (9) 6 调试与仿真 (13) 7 心得体会 (14) 8 指导老师意见 (15) 9 参考文献 (16) 附录一 (16) 附录二 (21)

基于51单片机的数字计算器的设计 1设计目的 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。 本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件进行编程,并用proteus仿真。 2 设计题目描述与要求 基于AT89C51数字计算器设计的基本要求与基本思路: (1)扩展4*4键盘,其中10个数字,5个功能键,1个清零 (2)使用五位数码管接口电路

基于51单片机控制的智能窗的设计

基于单片机控制的智能窗的设计 摘要 我们现在使用的窗户大部分采用人工关闭方式,不具有自动防盗、防雨、防煤气中毒等人性化的功能;平时我们外出时经常忘记关闭窗户,遇上下雨时,雨水会进入室内,对室内的电器、摆设等物品造成不必要的损害。晚上睡觉时我们通常把窗户关死,一旦燃气发生泄漏,由于室内不透气造成窒息中毒致残、致死的事件时有发生。为了防盗,我们一般在窗户外面安装防护栏,但如今很多城市为了美化市容通常不允许安装防盗窗。再者,现在使用的窗户大多数是单纯推拉式或平移式的,这给在楼层高的住户擦拭玻璃带来很大困难。本文借助单片机、电子电路及传感器的知识设计了可以实现清晨自动开窗、防雨、智能防盗和可燃性气体泄漏时报警并开窗,从而可解决现实生活中存在的很多问题。本智能窗的设计本着安全、方便、节能、人性化的原则进行,可使现代生活显著提高。 关键词:防风雨防盗 51单片机智能 目录 第1章总体方案的设计 (3) 1.1 本设计的主要任务和内容 (3) 1.2 控制系统架构图 (6) 第2章机械结构的设计 (4) 2.1 自动开关窗机械传动形式设计 (4) 2.1.1自动开关窗任务分析 (4) 2.1.2齿轮齿条参数选择 (4) 第3章自动控制系统主要硬件的设计 (5) 3.1 单片机选型 (5) 3.1.1单片机发展过程 (5) 3.1.2单片机发展趋势 (5) 3.1.3AT89S51单片机简介 (6) 3.2 数据检测传感器的选择 (6) 3.2.1数据检测传感模块组成 (6) 3.2.2传感器选型及电路 (10) 3.3 A/D转换电路的设计.................................................... 11

基于51单片机的简易计算器设计

河南##############学校 毕业设计(论文) 基于51单片机的简易计算器 系部: 自动控制系 专业: 电气自动化 班级: 自083 姓名: 崔 # # 学号: 091415302 指导老师: 许 # 二零一二年五月八日

基于51单片机的简易计算器 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

单片机波特率的计算方法

51单片机波特率计算的公式和方法 51单片机芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。它的各个位的具体定义如下: SM0SM1SM2REN TB8RB8TI RI SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷10=960字节。 51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD为1,波特率为focs/32。 模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率,就是说定时器1每溢出一次,串口发送一次数据。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。

上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2下定时器1溢出速率的计算公式如下: 溢出速率=(计数速率)/(256-TH1初值) 溢出速率=fosc/[12*(256-TH1初值)] 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600的波特率,晶振为11.0592M和12M,定时器1为模式2,SMOD 设为1,分别看看那所要求的TH1为何值。代入公式: 11.0592M 9600=(2÷32)×((11.0592M/12)/(256-TH1)) TH1=250

基于51单片机的空气智能加湿器设计毕业设计论文

三门峡职业技术学院 信息工程系 毕 业 设 计 论 文 毕业设计题目:基于51单片机的空气智能加湿器设计专业:计算机应用技术(嵌入式方向)

在日常生活中加湿器得到了广泛的应用,但是现有的加湿器都需要手工控制开启和关闭并且不具备对室内空气温湿度的监测,人们在使用过程中存在过度加湿和干烧的问题,不仅给室内空气舒适度造成负面影响并且还存在安全隐患。因此开发设计一种价格低廉、功耗低、具有自动控制功能的加湿器显得尤为必要。本设计采用智能控制,以AT89C51单片机为核心,外接辅助电路,通过实现加湿器的防干烧、声光报警、智能开启和关闭以及室内温湿度的显示功能基本实现加湿器的智能化。 关键词:单片机、智能、加湿器、相对湿度、传感器

摘要-------------------------------------------------------------- 1目录-------------------------------------------------------------- 2第一章任务来源意义及目的------------------------------------------- 3第二章设计方案---------------------------------------------------- 4 2.1 总体设计---------------------------------------------------- 4 2.2 实现方式---------------------------------------------------- 4 2.3 理论基础---------------------------------------------------- 5 2.3.1 单片机---------------------------------------------------- 5 2.3.2 DS18B20传感器--------------------------------------------- 5 2.3.3 1602LCD液晶显示屏----------------------------------------- 6第三章硬件设计---------------------------------------------------- 8 3.1 设计方案---------------------------------------------------- 8 3.2 电路图------------------------------------------------------ 8 3.3 信号分析---------------------------------------------------- 9 3.4 功能描述---------------------------------------------------- 9 3.5 复位电路---------------------------------------------------- 9 3.6液位定位及光电开关------------------------------------------ 10 3.7 1602显示屏------------------------------------------------- 10 3.8 DS18B20温度传感器------------------------------------------ 11 第四章软件设计--------------------------------------------------- 11 4.1整体设计及说明---------------------------------------------- 11 4.2 DS18B20流程设计-------------------------------------------- 13 4.3 1602字符型LCD流程设计------------------------------------- 15 第五章系统调试--------------------------------------------------- 17 第六章总结------------------------------------------------------- 18 参考文献----------------------------------------------------------- 19 致谢------------------------------------------------------------- 20 附录一 LCD控制及显示子程序--------------------------------------- 21

MCS-51单片机串行口工作方式与波特率计算举例

MCS-51单片机串行口工作方式与波特率计算举例 1)方式0 方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD 输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。 实际应用在串行I/O口与并行I/O口之间的转换。 2)方式1 方式1是点对点的通信方式。8位异步串行通信口,TXD为发送端,RXD为 接收端。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。 在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。 (1)发送:CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入 输出移位寄存器的第9位。发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND 和DATA无效,发送停止位,一帧结束,置TI=1。 (2)接收:REN=1后,允许接收。接收器以所选波特率的16倍速率采样RXD 端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。此后: A、若RI=0、SM2=0,则8位数据装入SBUF,停止位入RB8,置RI=1。

基于单片机的简易计算器设计

2013 - 2014 学年_一_学期 山东科技大学电工电子实验教学中心 创新性实验研究报告 实验项目名称__基于51单片机的简易计算器设计_ 2013 年12 月27 日

四、实验内容

2、实验内容 (一)、总体硬件设计 本设计选用AT89C52单片机为主控单元。显示部分:采用六位LED动态数码管显示。按键部分:采用2*8键盘;利用2*8的键盘扫描子程序,读取输入的键值。 (二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用两条I/O 线作为行线,八条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为2×8个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口和另一个P口的两个管脚实现16个按键功能,这种形式在单片机系统中也最常用。 矩阵键盘布局图: 矩阵键盘内部电路图如下图所示:

(三)、LED显示模块 本设计采用LED数码显示来显示输出数据。通过D0-D7引脚向LED写指令字或写数据以使LED实现不同的功能或显示相应数据。 (四)运算模块(单片机控制) MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。

基于51单片机的室内空气质量检测系统设计毕业论文

基于单片机的气体质量检测系统的设计 摘要 本论文研究设计了一种用于公共场所及室内具有检测及超限报警功能的室内空气质量检测系统。其设计方案基于89C51单片机,选择瑞士蒙巴波公司的CH20/S-10甲醛传感器和MQ-5气体传感器。系统将传感器输出的4~20mA的标准信号通过以AD0832为核心的A/D转换电路调理后,经由单片机进行数据处理,最后由LCD显示甲醛浓度值。文中详细介绍了数据采集子系统、数据处理过程以及数据显示子系统和报警电路的设计方法和过程。系统对于采样地点超出规定的甲醛容许浓度和天然气规定浓度时采用三极管驱动的单音频报警电路提醒监测人员。同时,操作人员对于具体报警点的上限值可以通过单片机编程进行设置。 另外,该系统对浓度信号进行了信号补偿等处理,减少了测量误差,因此,具有较高的测量精度,而且结构简单,性能优良。本系统的量程为0-10ppm,精度为0.039ppm 。 关键词: 甲醛检测/天然气检测/AT89C52单片机

ABSTRACT This thesis design of a paper for public places and indoor testing and over-limit alarm functions with indoor air quality testing system. Its design is based on 89C51 single chip, with the choice of MQ-5 gas sensors and CH20/S-10 formaldehyde sensor from Switzerland mengbabo company. Sensor system will output 4 ~ 20mA standard signal through the core ADC0832 for A / D conversion circuit after conditioning, by the single-chip microcomputer for data processing, at last display the formaldehyde concentration on the LCD . The article detailed the data acquisition subsystem, data processing and data display and alarm system circuit design method and process. When the sampling sites when the formaldehyde and Natural gas concentration exceeded,To the single-transistor drive circuit audio alarm will sound the alarm,Testing staff to remind. At the same time,The concentration of formaldehyde, Can be set through the single-chip programming. In addition, the system signals a concentration compensation signal processing, a reduction of measurement error, therefore, have a high measurement accuracy, and simple structure, excellent performance. The range of the system for 0-10ppm, accuracy 0.039ppm. Keywords: Formaldehyde detection,Natural gas detection, AT89C52 single-chip

相关文档
最新文档