四、系统设计
(1)实现原理
89C51该系列单片机是采用高性能的静态80C51 设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和6 时钟,P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线3 个16 位
定时/计数器6 输入4 优先级嵌套中断结构1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART以及片内振荡器和时钟电路
采用89c51单片机为主控系统,利用数码管的动态显示,实现一个简单的单片机系统。
系统的主要功能模块如下:
单片机89C51内部有5个中断源,两个计数/计时器,两个外部中断,和一个窜口通信中断,本系统设计中我们使用两个外部中断引脚和两个定时器/计数器。由于TMOD设置的不同计数器/定时器工作在不同的方式下:
位 符号 功能
TMOD.3/TMOD.7 GATE 用于定时器1 置位时只有在INT1 脚置高及TR1 控制置位
才可打开定时器/计数器,清零时置位TR1 即可打开定时器/计数器
TMOD.2/TMOD.6 C/T 控制定时器1 用作定时器或计数器清零则用作定时器从内部系统时钟输入置位用作计数器从Tn 脚输入M1 M0 定时器模式选择
M1 M0 定时器模式
0 0 13位定时器TLn 用作5 位预分频器
0 1 16位定时器/计数器无预分频器
1 0 8位自装载定时器当溢出时将THn 存放的值装入TLn
1 1 定时器0 此时作为双8 位定时/计数器TL0 作为一个8 位定时器/计数器通过标准定时器0 控制位控制TH0 仅作为一个8 位定时器由定时器1控制位控制在这种模式下定时/计数器1 关闭
TCON控制字(图3)
模式0
工作方式
此模式下定时器寄存器配置为13 位寄存器当计数从全为1 翻转为全为0 时定时器中断
标志位TFn 置位当TRn=1 同时GATE=0 或INTn=1 时定时器计数置位GATE 时允许由外部输入INTn控制定时器这样可实现脉宽测量TRn 为TCON 寄存器内的控制位图3
该13 位寄存器包含THn 全部8 个位及TLn 的低5 位TLn 的高3 位不定可将其忽略置位运行标
志TRn 不能清零此寄存器
模式0 的操作对于定时器0 及定时器1 都是相同的两个不同的GATE 位TMOD.7 和TMOD.3 分
别分配给定时器0 及定时器1
模式1
模式1 除了使用了THn 及TLn 全部16 位外其它与模式0 相同
(1)车轮的旋转次数计数
利用T1脚测量车轮旋转时产生的脉冲个数,设车轮周长约为3米,这样旋转33次为100米即为0.1公里,这样我们利用其计数33次即产生一次溢出中断,这样里程加0.1公里
(2)T0/INT0 速度的计算
利用GATE=1时 当INT0为高电平时,计数器/定时器开始工作,这样可以测量高电平的脉冲宽度,然后我们根据车轮旋转次数来决定汽车的当前速度,由于计数脉冲是很短的高电平,因此我们必须用反向器对脉冲信号反向。
INT0 计数脉冲的输入。
(3)INT1 等待计时中断/取消等待中断
司机按下等待中断按钮,产生中断,进入等待计时模式。指示灯亮,这时屏蔽该中断信号。车轮旋转计数脉冲输入有效,等到车轮旋转10次,即产生10中断,取消等待中断进入
出租车计费器设计与实现
设计:RedFox,巩远伟,赵小波
随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定计费准确,乘客乘坐出租车时,其费用分成起步价、行车里程费和等候时间费三部分,由自动计费器自动记录。安装在与汽车轮相连接的传感器在汽车行进时向自动计费器发送脉冲信号,在一定的公里数(即一定的脉冲数)内,按起步价计费;超过这一里程后,自动计费器按里程计费;如果停车等候,按等候时间的多少计费。
二、 设计任务与要求
设计一个出租车自动计费器。
(1)用3位数码管显示总的金额,最大值为99.9元。
(2)起步价为6元,里程为3公里。
(3)车轮旋转一圈(设周长为3米),里程传感器发一个脉冲。单价为1.60元/公里。
(4)等待单价是0.1元/分钟。车行过程中的等待也计费。
(5)计费器按1角为单位累加,不足1角不加。
(6)单价显示,等待计费,正常行驶计费。
(7)行驶速度动态显示,四位显示,精度0.1公里/小时
(8) 可以在当地的物价调整时改变起步价和每公里的单价
三、设计方案论证
方案一:
利用大规模的数字逻辑器件来实现,简单的汽车计费器功能,其原理是利用计数器来实现对汽车车轮旋转时按在车轮上的传感器产生的计数脉冲进行计数,通过计数值达到33次可以认为近似0.1公里(车轮的周长为3米),每0.5公里显示0.8,用数字逻辑器件设计电路,电路的很复杂,成本很高,没有什么实际的运用价值。
方案二:
利用89C51片机实现汽车计费器的设计,大部分的功能可以用单片机来实现,这样可以使整个电路比较简单,而且成本也比较低,(使用单片机的外围电路比较简单),而且在时间计数和速度的计算上精度大,扩展功能很方便。但如果系统设计的不好,则系统不是很稳定,这样就为系统设计提出了挑战。
方案三:
利用CPLD/FPGA来实现-------电子EDA技术,实现汽车计费器。可行性很高,而且电路简单,可以用软件完全仿真,但设计实现比较困难,对设计者的要求很高。软件要求高。
比较以上三个方案的优缺点,我们决定使用方案二,能够完成所有要求的功能。而且容易实现
(待叙!!!!!)