微机接口课设 汽车控制系统 C语言源代码 Proteus 8086
2016-01-19 16:32
459 查看
前言:经过这次微机接口课程设计之后,更加深入理解了:总线、IO端口地址译码、可编程接口芯片、和外设四者之间的关系。自己亲自连接的线路、自己写的C语言代码,想想编程调试代码时候的遇到的困难,令人回味无穷~
使用并行接口芯片 8255A,通过按键模拟汽车档位。控制汽车的速度,不同档位时,汽车的最快和最慢速度不同
使用 A/D 转换接口芯片 ADC0809,通过电位器模拟油门控制,并受汽车档位限制,使汽车速度与档位匹配,不同档位时,油门控制的速度范围也不同。当汽车档位为“前进 1”时,速度变化范围为 1~4;档位为“前进 2”时,速度变化范围为 4~7;档位为“前进 3”时,速度变化范围为 6~9;当档位为“后 退”时,汽车速度保持恒定,为速度 2
通过 8255A 芯片,输入数据至 ULN2003A,ULN2003A 输出脉冲数据至步进电机,控制步进电机的转速和转向,模拟汽车的速度和行驶方向。使用步进电机模拟汽车速度,可以使档位控制的速度变化更加明显直观
使用并行接口芯片 8255A,实现数码管显示汽车速度的功能,使速度显示一 目了然,更接近实际情
外设总共有4种:
步进电机
4位数码管
滑动电阻器
按键
接口芯片总共有14片:
2片8255A并行接口芯片
1片ADC0809
1片ULN2003A
5片74HC373
2片74HC138
3片74HC02
接口芯片的作用:
第一个8255A芯片的作用是接受来自“前进、后退档位”按键的输入,以及输出各个相位到步进电机
第二个8255A芯片的作用是输出速度到4位数码管
模数转换用到了ADC0809芯片。它是8位的模数转换器,把0~5伏特的电压,转换成0~255,共256个数值
ULN2003A芯片,它是一个7路反向器电路,作为步进电机的驱动电路
用到了5个74HC373芯片,2个74HC138芯片,3个74HC02芯片,分别作为锁存器、译码器、与非门。它们是IO端口译码电路的重要组成成分
图:可以在新标签页中查看图片,这样可以放大。引脚上面的标签相同,则引脚之间是互相连接的。
图:档位前进1,油门踩到最低,步进电机转得很慢,速度=1
图:档位前进2,油门踩到中等,步进电机转得一般般,速度=5
图:档位前进3,油门踩到最大,步进电机转得很快,速度=9
设计目标
使用按键控制车的档位(前进 1、前进 2、前进 3、后退),用步进电机的转速模拟车的速度,同时使用数码管实时的显示车的速度。使用 A/D 转换器,通过电位模拟油门控制,车的速度受到档位的限制,不同档位时,油门控制的速度范围不同。使用并行接口芯片 8255A,通过按键模拟汽车档位。控制汽车的速度,不同档位时,汽车的最快和最慢速度不同
使用 A/D 转换接口芯片 ADC0809,通过电位器模拟油门控制,并受汽车档位限制,使汽车速度与档位匹配,不同档位时,油门控制的速度范围也不同。当汽车档位为“前进 1”时,速度变化范围为 1~4;档位为“前进 2”时,速度变化范围为 4~7;档位为“前进 3”时,速度变化范围为 6~9;当档位为“后 退”时,汽车速度保持恒定,为速度 2
通过 8255A 芯片,输入数据至 ULN2003A,ULN2003A 输出脉冲数据至步进电机,控制步进电机的转速和转向,模拟汽车的速度和行驶方向。使用步进电机模拟汽车速度,可以使档位控制的速度变化更加明显直观
使用并行接口芯片 8255A,实现数码管显示汽车速度的功能,使速度显示一 目了然,更接近实际情
外设 接口
微处理器是经典的8086芯片外设总共有4种:
步进电机
4位数码管
滑动电阻器
按键
接口芯片总共有14片:
2片8255A并行接口芯片
1片ADC0809
1片ULN2003A
5片74HC373
2片74HC138
3片74HC02
接口芯片的作用:
第一个8255A芯片的作用是接受来自“前进、后退档位”按键的输入,以及输出各个相位到步进电机
第二个8255A芯片的作用是输出速度到4位数码管
模数转换用到了ADC0809芯片。它是8位的模数转换器,把0~5伏特的电压,转换成0~255,共256个数值
ULN2003A芯片,它是一个7路反向器电路,作为步进电机的驱动电路
用到了5个74HC373芯片,2个74HC138芯片,3个74HC02芯片,分别作为锁存器、译码器、与非门。它们是IO端口译码电路的重要组成成分
Proteus 电路图
图:可以在新标签页中查看图片,这样可以放大。引脚上面的标签相同,则引脚之间是互相连接的。
运行截图
图:档位前进1,油门踩到最低,步进电机转得很慢,速度=1
图:档位前进2,油门踩到中等,步进电机转得一般般,速度=5
图:档位前进3,油门踩到最大,步进电机转得很快,速度=9
整个工程的下载
下载链接,亲,需要两个下载积分哟~相关文章推荐
- 1006. Sign In and Sign Out (25)
- 1005. Spell It Right (20)
- C++使用cout补0
- 困扰很久的汉诺塔问题c语言实现
- vector VS list in C++
- 《C/C++专项练习》 — (3)
- C++之路进阶——splay树(宠物收养所)
- leetcode Move Zeros
- C/C++代码覆盖工具gcov与lcov入门
- C++ AMP异构并行编程解析
- android源码中 C++文件log使用
- UVA11729_Commando War
- C++ 设计模式2 (面向对象设计原则)
- C语言二叉树的层序遍历
- C语言结构体类型声明和定义标准形式
- c++ struct的两个注意点
- C++程序后台运行代码
- C语言函数指针的使用举例
- CodeBlocks调试C&C++代码的方法
- Eclipse中 C/C++ 开发