版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西南林业大学《材料科学与工程基础》2022-2023学年第一学期期末试卷
- 西京学院《西京青曲课堂相声》2021-2022学年第一学期期末试卷
- 职称申报诚信承诺书(个人)附件4
- 西华师范大学《篆书技法》2021-2022学年第一学期期末试卷
- 西华师范大学《现代数学概论》2022-2023学年第一学期期末试卷
- 2024年职业资格-养老护理员养老基础知识模拟考试题库试卷
- 西华师范大学《人体解剖生理学》2021-2022学年第一学期期末试卷
- 西华师范大学《地理多媒体课件制作》2023-2024学年第一学期期末试卷
- 西昌学院《项目设计实训》2022-2023学年第一学期期末试卷
- 电力专项测试题附答案
- 六年级音乐上册第10课铃儿响叮当全国公开课一等奖百校联赛微课赛课特等奖课件
- 水彩画步骤与表现技法
- 供应商现场审核培训
- 2024年货季电商消费复盘-Flywheel飞未
- 培训内驱力的课件
- 《髌骨骨折骨折》课件
- 肾内科激素的用药知识-健康科普知识讲座课件
- 关于工商管理社会实践报告
- 《智能制造系统》课程标准
- 学校食堂调查方案
- 2024年航空职业技能鉴定考试-无人机AOPA驾驶证考试(视距内驾驶员视距内驾驶员)笔试历年真题荟萃含答案
评论
0/150
提交评论