当前位置:首页 > 出租车计费系统的设计 毕业设计论文
3.1.2车轮光电开关检测电路
由于要测出出租车的运行速度,每1千米产生1000个脉冲信号并计算出单位时间里的脉冲个数,转换成车轮所转的圈数,即产生脉冲数的多少。在该设计中采用在车轮的转盘上安装一个3条黑白线均匀的圆盘,再用光电开关来检测,如下图4.1.2所示,当出租车运动时,车轮转动,光电传感器利用接收黑白电平时输出的高低电平,当光电传感器检测到黑色条纹时,输出高电平给单片机,相反当检测到白色条纹时输出低电平,从而把连续输出高低电平转化为脉冲数,也就把电机转动时带动有黑白线的圆盘黑白条数转换成脉冲数,从而测试出出租车运行速度。
+5R1+5光电传感器1KU1R211KIOB2 or IOB3Te74HC14Optoisolator1 图3.1.2 光电检测电路
用一张贴有黑色胶带的白纸,让光电传感器离纸不到5cm的平面上与胶带垂直经过,看计数是否与所经过的的胶带数目相等,若多次测试都是吻合的,则此光电传感器良好.
3.2 单片机
单片机既是一个微型的计算机,它具有组成计算机系统的三个要素:CPU、内存与I/O。 CPU:运算或逻辑上的判断; 内存:存放程序与数据; I/O:与外界沟通的桥梁。
Memory 内存 CPU中央处理器I/O 输入/出设备 图3.2.1 单片机简图
4
3.2.1 8051 单片机功能方块图
EA EXTRNAL INTERRUPTS INT1 INT0 EXTRNAL INTERRUPTTIMER0 定时/计数ETC ON-CHIP PROGRAM MEMORY 4K/(8K) ON-CHIP RAM 128/(256) Bytes (TIMER2) TIMER1 COUNTER INPUTS INTERRUPT CONTROL 中断TIMER1 (TIMEROM RAM CPU 8051 CORE 指令分析 控制总线 并行接口 串行接口 OSC 振荡与时序 BUS CONTROL 4 I/O PROT SERIAL PORT WRRD PSENALE P0 P2 P1 P3 TXD RXD 图3.2.2 8051 单片机功能方块图 振荡及时序单元(OSC):
8051内部有晶体振荡电路,只要在外部加上石英振荡晶体,即可产生频率非常稳定的振荡信号,这个振荡信号正是8051的心脏,所有8051的时钟序列都以此振荡信号为基准。 内部数据存储器(Data Memory):
当程序在运行时,有些数据是经常在变动的,例如LED的显示状态或显示值等,它会因I/O测量的结果而变动,这些值就暂时放置在此区域中,供其他程序进一步读取,这也代表此区域是可以随时读写的。8051系列的CPU提供128个字节可读写的数据存储单元,52系列的CPU则提供256个字节的数据存储单元,这个数据区域中有一段区域16个字节共128位是可以进行位寻址的,MCS—51系列的CPU有相当强的位处理指令,可以妥善且有效地运用该数据存储器,使用方法将在8051的指令说明中再详述。 内部程序存储器(Program memory):
这段区域用于存放我们的应用程序,而且这部分一经确认后是永远不做修改的。8051系列的CPU提供内部4096个字节(4KB)的程序存储器,8052系列的CPU则提供2倍即8192个字节(8KB)的程序存储器,而8031和8032则不含此单元。此单元可以使CPU选择由内部的程序区启动或由外部的程序区启动,内部的程序区启动具有保护功能,后者成本较为低廉。在8051系统中特地将程序区和数据区分隔开,两者最大的差异是后者可以读取和写入,简而言之,PROGRA MMEMORY就是 ROM,DATA MEMORY则是
5
RAM。
定时/计数器(Timer/Counter):
51系列的CPU有2个定时/计数器,而52系列CPU则有3个定时/计数器,每个定时/计数器又有多种模式可供选择。 串行接口(Serial Port):
8051可通过此接口与外部的计算机等设备连线交换信息,也可以通过此接口进行I/O的扩充。
并行输入/出端口(Parelled I/O):
不论是8051或8052单片机都有4个输入/出端口,总共有32个输入/出,而且每个点都可以单独定义成输入或输出。 控制总线(Bus Control):
当程序的空间超出MSC—51系列内存程序空间的限制时,会通过本单元的控制线路向外部送出地址线信号和控制信号,同时当程序执行MOVX @DPTR,A指令时,代表对外部数据内存做写入的运行,此时也要靠本单元送出必要的控制信号,才能达成外部READ与WRITE的运行请求。
8051运算处理单元(Core):
这是整个单片机的控制处理核心,它读取程序码,经过计算及处理后,将结果送到各个寄存器或输入/输出端口上,并且接受内部和外部的中断信号,然后执行特定的中断服务程序。只要加入电源并且石英晶体开始运行后,本单元就一直不停地工作着,通常我们所谓的死机是指本单元跳入一个未知没有出口的循环中执行,而不是指CPU停止一切的运行,不再执行任何程序。 累加器(Accumulator):
累加器是众多寄存器中最重要的一个寄存器,通常以简写Acc代表累加器,8051的指令中有许多指令和Acc寄存器有关,也有多个指令非通过Acc不可,基本上,8051的指令中赋予Acc 累加器的权限最大。Intel公司建议程序的执行尽量以Acc为主。 B寄存器(B Register):
B寄存器是一个一般用途的工作寄存器,当8051使用乘除指令时,则一定要通过B寄存器来做运算。
中断优先顺序控制寄存器(IPC,Interrupt Priority Control):
这个寄存器中存放中断时的优先顺序表,若对应的位设成1时,代表中断有较高的中断优先权。
允许中断控制寄存器(IEC,Interrupt Enable Control):
此寄存器内含系统允许中断的中断源设置值,8051共有5个中断可供选择,8052则有6个中断源,IEC寄存器内另有一个位简称EA位,若EA=0时就禁止系统所有的中断要求。
6
串行输出入缓冲寄存器(SBUF,Serial Buffer):
所有待送出或刚进入的串行数据值都存放在此寄存器中,8051的串行通信是非常简单的,只要一设置完通信协议后,再执行一个MOVSBUF,A指令,就可立即将并行数据值转化成串行数据送到外部。
串行通信控制寄存器 (SCON,Serial ControL或称UART):
此寄存器主要在设置串行通信的模式,当串行数据已经送完或数据已收妥时,会有对应的位被设置成1,这些位也可以当成中断要求信号,请求CPU执行特定的串行中断服务程序。
定时/计数控制寄存器(TCON,Timer/Counter Control):
这个寄存器可以控制定时/计数器的打开或关闭,若一经打开且计数到溢位时,TCON上亦有对应的位被设成1,CPU必须针对此位的状态,决定是否重新设置定时/计数值。 堆栈指标寄存器(SP,Stack Pointer):
8051利用SP指引最近一次存入堆栈内的地址,每当我们在程序中调用其他子程序时,原程序的返回地址就会自动存入内部DATA MEMORY组成的堆栈(Stack)中,而当子程序执行到RET指令时,CPU会自动由堆栈中取回原先存入的返回地址,继续执行原程序。每当CPU将8位值存入堆栈时,我们称之为PUSH(推入),这时SP值会增加1,反之堆栈中取回8位值时,则称之为POP(提回),此时SP值会减少1。
在写8051单片机的控制程序时,在程序起始状态阶段一定要设置SP值,以便程序有足够的堆栈空间,也可以利用软件程序随时机动调整的堆栈指标SP的值。 特殊功能寄存器区(SFR,Special Function Register)
8051单片机内部将多个寄存器统称成SFR,代表其特定的功能,甚至Port0、Port1、Port3也都是属SFR 的成员之一,在这些SFR 中有部分的寄存器可以进行位寻址,表 4.1是这些SFR 寄存器的整理,其中加(*)记号的寄存器可进行位寻址。
表3.1 可进行位寻址的SFR 寄存器
SFR 寄存器 算术运算寄存器 指标类寄存器 并行输入/出端口 中断控制寄存器 定时/计数寄存器 串行通信寄存器
部分可进行位寻址的寄存器 Acc(*)、B(*)、PSW(*) SP、DPL、DPH
P0(*)、P1(*)、P2(*)、P3(*) IP(*)、IE(*)
TMOD、TCON(*)、TL0、TH0、TL1、TH1 SCON(*)、SBUF
3.2.2 AT89S51单片机简介
AT89S5l是新型高档单片机。 它的主要特性是:
7
共分享92篇相关文档