基于mcu的遥控田径计时秒表设计内容摘要:
8 位UART 可变 1 0 2 9 位UART fosc/32 或 fosc/64 1 1 3 9 位UART 可变 在这里只说明最常用的模式 1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。 表中的 fosc 代表振荡器的频率,也就是晶振的频率。 UART 为 (Universal Asynchronous Receiver)的英文缩写。 SM2 在模式 模式 3 中为多处理机通信使能位。 在模式 0 中要求该位为 0。 REM 为允许接收位, REM 置 1 时串口允许接收,置 0 时禁止接收。 REM 是武汉科技学院 2020 届毕业设计论文 12 由软 件置位或清零。 如果在一个电路中接收和发送引脚 , 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入 REM=0 来禁止接收,在子程序结束处加入 REM=1 再次打开串口接收。 大家也可以用上面的实际源码加入 REM=0 来进行实验。 TB8 发送数据位 8,在模式 2 和 3 是要发送的第 9 位。 该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。 RB8 接收数据位 8,在模式 2 和 3 是已接收数据的第 9 位。 该位可能是奇偶位,地址 /数据标识位。 在模式 0 中, RB8 为保留位没有被使用。 在模式 1 中,当 SM2=0, RB8 是已接收数据的停止位。 TI 发送中断标识位。 在模式 0,发送完第 8 位数据时,由硬件置位。 其它模式中则是在发送停止位之初,由硬件置位。 TI 置位后,申请中断, CPU 响应中断后,发送下一帧数据。 在任何模式下, TI 都必须由软件来清除,也就是说在数据写入到 SBUF 后,硬件发送数据,中断响应(如中断打开),这时 TI=1,表明发送已完成, TI 不会由硬件清除,所以这时必须用软件对其清零。 RI 接收中断标识位。 在模式 0,接收第 8 位结束时,由硬件置位。 其它模式中则是在接收停止位的半中间,由硬件置位。 RI=1,申请中断,要求 CPU 取走数据。 但在模式 1 中, SM2=1 时,当未收到有效的停止位,则不会对 RI 置位。 同样 RI 也必须要靠软件清除。 常用的串口模式 1 是传输 10 个位的, 1 位起始位为 0,8 位数据位,低位在先, 1 位停止位为 1。 它的波特率是可变的,其速率是取决于定时器 1 或定时器 2 的定时值(溢出速率)。 AT89C51 和 AT89C2051 等51 系列芯片只有两个定时器,定时器 0 和定时器 1,而定时器 2 是 89C52 系列芯片才有的。 波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。 波特率是指串行端口每秒内可以传输的波特位数。 有一些初学的朋友认为波特率是指每秒传输的字节数,如标准 9600 会被误认为每秒种可以传送 9600个字节,而实际上它是指每秒可以传送 9600 个二进位,而一个字节要 8 个二进位,如用串口模式 1 来传输那么加上起始位和武汉科技学院 2020 届毕业设计论文 13 停止位,每个 数据字节就要占用 10 个二进位, 9600 波特率用模式 1 传输时,每秒传输的字节数是 9600247。 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 芯片)的溢出速率。 那么我 们怎么去计算这两个模 式的波特率设置时相关的寄存器的值呢。 可以用以下的公式去计算。 波特率=( 2SMOD247。 32 ) 定时器 1 溢出速率 上式中如设置了 PCON 寄存器中的 SMOD 位为 1 时就可以把波特率提升 2 倍。 通常会使用定时器 1 工作在定时器工作模式 2 下,这时定时值中的 TL1 做为计数, TH1 做为自动重装值 ,这个定时模式下,定时器溢出后, TH1 的值会自动装载到 TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。 在这个定时模式 2 下定时器 1 溢出速率的计算 公式如下: 溢出速率=(计数速率) /(256- TH1) 上式中的 “ 计数速率 ” 与所使用的晶体振荡器频率有关,在 51 芯片中定时器启动后会在每一个机器周期使定时寄存器 TH 的值增加一,一个机器周期等于十二个振荡周期,所以可以得知 51 芯片的计数速率为晶体振荡器频率的1/12,一个 12M 的晶振用在 51 芯片上,那么 51 的计数速率就为 1M。 通常用 晶体是为了得到标准的无误差的波特率,那么为何呢。 计算一下就知道了。 如我们要得到 9600 的波特率,晶振为 和 12M,定时器 1 为模式 2, SMOD 设为 1,分别看看那所要求的 TH1 为何值。 代入公式: 9600= (2247。 32)(()/(256 TH1)) TH1= 250 12M 9600= (2247。 32)((12M/12)/(256 TH1)) TH1≈ 上面的计算可以看出使 用 12M 晶体的时候计算出来的 TH1 不为整数,而武汉科技学院 2020 届毕业设计论文 14 TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的 9600 波特率。 当然一定的误差是可以在使用中被接受的,就算使用 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。 2. 2. 4 LCD 显 示 模 块 本系统仅需要显示两个跑道的计时时间信息 ,因此选用字符型显示模块SMC1602A。 它是用 5*7 的点阵图形显示字符,根据显示的容量可以分为 1 行 16个字、 2 行 16 个字、 2 行 20 个字等等,本系统使用常用的 2 行 16 个字的 1602液晶显示模块。 SMC1602A 采用标准的 16 脚接口。 其中:第 3 脚 VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”、使用时可以通过一个 10K 的点位器调整对比度。 第 5 脚 RW为读写信号线,高电平时进行读操作,低电平时进行写操作。 当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW 为高电平时可以读忙信号,当 RS 为高电平RW为低电平时可以写入数据。 SMC1602A 液晶模块内部的字符发生存储 器( CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“ A”的代码是 01000001( 41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“ A”。 其内部的控制器有 11 条控制指令来控制字符的显示。 : : 武汉科技学院 2020 届毕业设计论文 15 1)基本操作时序: 读状态 :输入: RS=L, RW=H, E=H 输出: D0~D7=状态字; 写指令 :输入: RS=L, RW=L, D0~D7=指令码, E=高脉冲 输出:无; 读数据:输入: RS=L, RW=L, E=H 输出: D0~D7=数据 写数据:输入: RS=H, RW=L,D0~D7=数据, E=高脉冲 输出:无 2)状态字说明 注:对控制器每次进行读写操作之前,都必须进行读写检测,确保 STA7 为 0 3) RAM 地址映射图 4)指令说明 武汉科技学院 2020 届毕业设计论文 16 初始化设置 显示模式设置 显示开 /关及光标设置 数据 控制 控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部 80字节的 RAM. 读数据:输入: RS=L, RW=L, E=H 输出: D0~D7=数据 写数据:输入: RS=H, RW=L,D0~D7=数据, E=高脉冲 输出:无 其他设置 5)初始化过程(复位过程) 延时 15ms 武汉科技学院 2020 届毕业设计论文 17 写指令 38H(不检测忙信号 ) 延时 5ms 写指令 38H(不检测忙信号 ) 延时 5ms 写指 令 38H(不检测忙信号 ) (以后每次写指令、读 /写数据操作之前均需检测忙信号) 写指令 08H:显示模式设置 写指令 01H:显示关闭 写指令 01H:显示清屏 写指令 06H:显示光标移动设置 写指令 0cH:显示开及光标设置 1) 读操作时序 2)写操作时序 武汉科技学院 2020 届毕业设计论文 18 3)时序参数 3. 模块功能的实现 一个复杂的问题分解成若干个简单的问题,然后逐个解决。 3. 1 无线传输模块 无线传输模块由无线发送和无线接收两部分组成。 无线模块是新世纪电子 研究所有限公司的 推出的特小体积、极低功耗超无线收发模块,采用独特的电路结构, SMT 生产工艺、树脂环氧封装,内含放大整形电路,输出为数字信号可直接与单片机串口连接无需设计传输驱动,是性价比较好的无线收发模块。 无线发送模块上有一个按键,也有一个测试灯,按下按键若有信号发出,灯就会亮。 内部具有一级调制电路及限流电阻,适合短距离无线遥控报警及单片机短距离无线数据传输。 电路如图 31 所示: 武汉科技学院 2020 届毕业设计论文 19 图 31无线发射模块 无线接收模块 采用独特的电路结构 ,内含放大整形电路 当无信号输入时电路输出为低电平,有信号时会输出一个 正脉冲,幅值大概在 左右。 由于单片机的外中断口是负跳变有效 ,所以刚好可以利用下降沿作为中断触发。 用以实现与单片机的 ( 0INT )的直接相连。 电路原理如图 32所示: 图 32无线接收模块 武汉科技学院 2020 届毕业设计论文 20 3. 2 光电检测模块 单光束直射取样式光电传感器 :ST181 ST181 采用高输出的红外光电二极管与高灵敏度光敏晶体管组成 ,其特点 :性能可靠。 体积小 ,结构简单 ,广泛应用于多费率电能表 ,IC卡电度表等各种需测量计数的场合 ,配套有各种遮光盘供选用 ,可用于判别被测 物体的。 特点:。 (分辨率)。 极限参数: 光电特性 : 武汉科技学院 2020 届毕业设计论文 21 由上面对 ST181 的分析可知:在接硬件电路是只要将 ST181 的 1 脚接地, 2脚接正电源, 4 脚接正电源。 在正常情况下, 3 脚输出的是高电平,但是当有物体遮住红外光线时, 3 脚就会变为低电平。 所以该管脚可直接接单片机的第二外中断口 ( 1INT )。 由于我们有实现的是八个跑 道的计时,所以在检测的光电检测管给的信号后,还应该把该信号同时再给单片机的一个数据口(第一路;第二路 依次往后 ...),用以辨别是哪一路发出的信号。 电路原理图33 所示: 武汉科技学院 2020 届毕业设计论文 22 图 33光电检测原理图 3. 3 89C51 中断及计时模块功能的实现 本设计 的中断计时系统采用 C51内核的单片机 AT89C51, MCS51单片机的内部资源主要有并行 I/O 口、定时器 /计数器、串行接口以及中断系统, MCS51单片机的大部分功能就是通过对这些资源的利用来实现的。 下面来介绍下用 C语言实现其功能。 3. 3. 1 微 控 制 器 定时 /计 数器 的主要 特性 1. MCS51 系列中 51子系列有两个 16 位的可编程定时 /计数器:定时 /计数器 T0和定时 /计数器 T1, 52子系列有三个,还有一个定时 /计数器 T2。 2.每个定时 /计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。 3.每个定时 /计数器都有多种工作方式,其中 T0有四种工作方式; T1 有三种工作方式, T2 有三种工作方式。 通过编程可设定工作于某种方式。 4。基于mcu的遥控田径计时秒表设计
相关推荐
................. 14 Chapter 4 System Design ..................................................................... 15 Design ideology .................................................................
了问题,怎么解决。 笔者认为 这是一位信息老师 必备 的基本技能。 第 8 页共 22 页 8 软件环境方面主要是要在多媒体网络教室里安装多媒体 教学 软件 ,教师能 从屏幕上监控到每个学生 学习和练习的情况, 从而及时调控课堂。 同时, 教师 还要做到能随时控制学生上因特网,教室里可用代理软件上网并在代理服务器上做一些设置,如禁一些网络协议,控 制学生上 、网络游戏,合理
/4 节拍的时间设定 各调 1/4 节拍的时间设定 表 12 节拍与节拍码对照 节 拍 码 节 拍 数 节 拍 码 节 拍 数 1 1/4拍 1 1/8拍 2 2/4拍 2 1/4拍 3 3/4拍 3 3/8拍 4 1拍 4 1/2拍 5 1又 1/4拍 5 5/8拍 6 1又 1/2拍 6 3/4拍 8 2拍 8 1 A 2又 1/2拍 A 1又 1/4拍 C 3拍 C 1又 1/2拍 F
温度传感器SV图21 温度控制系统第三节 温度控制的算法和程序框图 温度控制算法 通常,电阻炉炉温控制都采用偏差控制法。 偏差控制的原理是先求出实测炉温对所需炉温的偏差值,然后对偏差值处理获得控制信号去调节电阻炉的加热功率,以实现对炉温的控制。 在工业上,偏差控制又称PID控制,即偏差的比例P,积分I和微分D。 这是工业控制过程中应用最广泛的一种控制形式,一般都能收到令人满意的效果。 PID算法
.................................................................................. 13 图 35 程序流程图 ......................................................................................................
网络功能。 ADAM6000模块除支持 TCP/IP(用于数据连通性的协议)中的通用工业 Modbus/TCP 协议外,还支持以太网 UDP 协议。 通过使用 UDP/IP 协议,ADAM6000 I/O模块能够同时将一个 I/O 数据流发送到 8 个以太网节点。 另外研华还提供用于 Modebus/TCP的 OPC Server,用于连接 ADAM6000 I/O 数据和 OPC