版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 . . . . 12/12中南大学课程设计(附代码)20)设计一个基于单片机的汽车信号灯控制系统设计要求:分析系统需求,设计出电路原理图,说明工作原理,编写程序与程序流程图。设计一个基于单片机的汽车信号灯控制系统。汽车驾驶执行的操作由相应的开关状态反映,所需控制的信号灯有仪表盘左/右转弯灯、左右头灯和左右尾灯共六类灯,还有蜂鸣器喇叭控制的信号。设计功能:驾驶操作与灯光信号对应关系如下:(1) 左/右转弯(合上左/右开关):仪表盘左/右转弯灯、左/右头灯、左/右尾灯闪烁。(2) 紧急开关合上:所有灯闪烁。(3) 刹车(合上刹车开关):左右尾灯亮。(4) 左/右转弯刹车:仪表盘左/右转弯灯、左/
2、右头灯、左/右尾灯闪烁,右/左尾灯亮。(5) 刹车、合上紧急开关:尾灯亮、仪表板灯、头灯闪烁。(6) 左/右转弯刹车,并合上紧急开关:右/左尾灯亮,其余灯闪烁。(7) 停靠(合上停靠开关):头灯、尾灯以1Hz的频率闪烁。(8)倒车:尾灯长亮、蜂鸣器以0.5Hz的频率报警。设计要求:设计出电路原理图,说明工作原理,编写程序与程序流程图。仿真操作与现象:合上左转弯开关:仪表板左转弯灯、左头灯、左尾灯闪烁。合上右转弯开关:仪表板右转弯灯、右头灯、右尾灯闪烁。合上紧急开关:所有灯闪烁合上刹车开关:左右尾灯亮合上左开关和刹车开关:仪表板左转弯灯、左头灯、左尾灯闪烁,右尾灯亮。合上右开关和刹车开关:仪表板
3、右转弯灯、右头灯、右尾灯闪烁,左尾灯亮。合上刹车开关、紧急开关(紧急刹车):左右尾灯亮、左右仪表板灯、头灯闪烁。合上左开关和刹车开关、紧急开关(紧急左转弯刹车):右尾灯亮,其余灯闪烁。合上右开关和刹车开关、紧急开关(紧急右转弯刹车):左尾灯亮,其余灯闪烁。合上停靠开关:左右头灯、尾灯以1Hz的频率闪烁合上倒车开关:左右尾灯,蜂鸣器以0.5Hz的频率报警。状态名称输入状态输出状态转弯灯头灯尾灯喇叭左开关右开关紧急开关刹车开关左转弯刹车开关右转弯刹车开关停靠开关倒车开关左右左右左右左转弯100000000100100100右转弯010000000010010010紧急开关合上00100000010
4、1010101010刹车000100000000110左转弯刹车000010000100100110右转弯刹车000001000010011010紧急刹车0011000001010101110紧急左转弯刹车00101000010101010110紧急右转弯刹车00100100010101011010停靠0000001000010101010倒车000000010000111注:01表示闪烁,1表示亮/鸣喇叭,0表示不亮也不闪烁/不鸣喇叭代码:#include #include#define uchar unsigned char#define uint unsigned intunsigned
5、 char jianzhi;uchar count=0;uchar count1=0; /记录中断次数,count2=20才产生1HZ的时钟脉冲uchar count2=0; /记录中断次数,count2=40才产生0.5HZ的时钟脉冲sbit LF=P00; /左头灯sbit RF=P01; /右头灯sbit LY=P02; /左转弯灯sbit RY=P03; /右转弯灯sbit LB=P04; /左尾灯sbit RB=P05; /右尾灯sbit BU=P06; /蜂鸣器sbit led=P07;sbit zong_switch=P16;uchar code Key=1,2,3,4,5,6;
6、uchar k=16;uchar code DSY_CODE=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 x00;/延时void DelayMS(uint x)uchar i;while(x-) for(i=0;i40 x0f;/按键后f0变成#0000,X中有1个为0,三个仍为1;高4位转移到低4位并异或得到改变的值switch(Tmp)/对03行分别附加起始值0,4,8,12case 1:k+=0;break;case 2:k+=4;bre
7、ak;case 4:k+=8;break;case 8:k+=12;return(k);/密码锁 uchar Coded_lock() uchar m=0,j,x=16,y=16; uchar KeyNo=16,16,16,16,16,16;/按键序号,16表示无按键 P2=0 xf0; /高4位置0,放入4行 /led=1; while(m6) P2=0 xf0;if(P2!=0 xf0) y=Keys_Scan();/扫描键盘获取输入的密码 /P3=DSY_CODEy; if(y=9&y!=x) KeyNom=y; P3=DSY_CODEy; m+; else if(9y16&y!=x)
8、P3=0 x86; /显示E,表示重新输入 m=0; x=y;y=16;DelayMS(100); for(j=0;j6;j+) if(KeyNoj!=Keyj) return 0; break; return 1;/主程序void main(void) uchar i=3,sign=1,flag=0,choose=16; TMOD=0 x01; TH0= (65536- 50000)/256;/定时器0,方式l TL0= (65536- 50000)%256;/置初值,产生50ms 定时 IE=0 x82;/允许T0中断 TR0=0; /关中断 P0=0 x3f; P1=0 xff; P2=
9、0 xf0; P3=0 x00; for(;zong_switch!=0;) /循环直到总开关按下 DelayMS(50); P3=0 x00; P3=0 x86; while(zong_switch=0) /总开关按下 DelayMS(50); while(1) flag=Coded_lock(); DelayMS(50); choose=16; while(choose!=10)&(choose!=11) /循环,直到按下确定或者取消 P3=0 xa1; /按确认或者取消P2=0 xf0; if(P2!=0 xf0) choose=Keys_Scan();DelayMS(100); P3=
10、DSY_CODEchoose; DelayMS(50); if(flag=1) /密码正确 if(choose=10) /确定 break;else P3=0 x86; else if(i=1) /三次密码错误,所有灯高频闪烁,并且蜂鸣器报警 while(1) P0=0 xff; DelayMS(20); P0=0 x00; DelayMS(20); else if(choose=10) /密码错误,且按下确认键 P3=0 x8e; /显示F表示密码错误DelayMS(100); i-; /可输入密码次数减一 else P3=0 x86; break; P3=0 x00; TR0=1; whi
11、le(1);void time0(void) interrupt 1 /TH0= (65536- 50000)/256; /TL0= (65536-50000)%256; P1=0 xff;/ Pl先送Oxff,Pl中保存是按键的值 jianzhi=P1; /暂存键值到jianzhi jianzhi=jianzhi&0 x7f; /因为最高位不用,去掉switch(jianzhi) case 0 x3e: /左转弯0011 1110 BU=0;/蜂鸣器不响 RF=1; RB=1; RY=1; if(count=15) LF=!LF; LB=!LB; LY=!LY; count=0; else
12、count+; break; case 0 x3d: /右转弯0011 1101 BU=0;/蜂鸣器不响 LF=1; LB=1; LY=1; if(count=15) RF=!RF; RB=!RB; RY=!RY; count=0; else count+; break; case 0 x3b: /紧急0011 1011 BU=0;/蜂鸣器不响 if(count=15) LF=!LF; RF=!RF; LY=!LY; RY=!RY; LB=!LB; RB=!RB; count=0; else count+; break; case 0 x37:/刹车0011 0111 BU=0;/蜂鸣器不响L
13、B=0; RB=0;LF=1; RF=1; LY=1; RY=1; break; case 0 x36: /左转弯刹车0011 0110 BU=0;/蜂鸣器不响 RB=0; RF=1; RY=1; if(count=15) LB=!LB; LF=!LF; LY=!LY; count=0; else count+; break; case 0 x35:/右转弯刹车0011 0101 BU=0;/蜂鸣器不响 LB=0; LF=1; LY=1; if(count=15) RB=!RB; RF=!RF; RY=!RY; count=0; else count+; break; case 0 x33:/
14、紧急刹车0011 0011 BU=0;/蜂鸣器不响 LB=0; RB=0; if(count=15) RF=!RF; LF=!LF; RY=!RY; LY=!LY; count=0; else count+; break; case 0 x32:/左转紧急刹车0011 0010 BU=0;/蜂鸣器不响 RB=0; if(count=15) LB=!LB; RF=!RF; RY=!RY; LF=!LF; LY=!LY; count=0; else count+; break; case 0 x31: /右转紧急刹车0011 0001 BU=0;/蜂鸣器不响 LB=0; if(count=15) RB=!RB; RF=!RF; RY=!RY; LF=!LF; LY=!LY; count=0; else count+; break; case 0 x2f: /停靠0010 1111 BU=0;/蜂鸣器不响
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度三方劳务派遣与派遣人员培训合同3篇
- 2024年度供应链金融质押担保贷款合同3篇
- 2024年标准设备维护保养服务协议模板一
- 2024年版特许经营合同服务内容详解与标的约定
- 2024年婴幼儿奶粉OEM贴牌生产合作协议3篇
- 洛阳科技职业学院《现代生活化学》2023-2024学年第一学期期末试卷
- 2024年度版权质押合同标的及质押条件和质押期限
- 2025乡镇医疗机构聘用合同
- 汽车用品货车司机劳动合同
- 咨询行业客服聘用合同
- 【教案】2023年全国高考数学新课标Ⅱ卷第11题说题稿
- 一例压力性损伤的个案护理
- 河南省郑州市2023-2024学年高二上学期期期末生物试题【含答案解析】
- 经方论治冠心病九法
- 《体育校本课程的建设与开发》课题研究实施方案
- 抵制不健康读物“读书与人生”
- (医学课件)带状疱疹PPT演示课件
- 特种设备使用单位落实使用安全主体责任监督管理规定(第74号)宣贯
- 人工智能与生命科学融合
- 小学生愤怒情绪管理策略
- 医务科管理制度培训的效果评估与持续改进
评论
0/150
提交评论