机械与能源工程学院 单片机控制与接口技术课程设计性实验报告 | | | | | | | | | | | | 一、实验目的 1、会使用单片机4个并行I/O端口连接外部设备并构建单片机最小应用系统。 2、能使用工具软件绘制单片机硬件原理图、能编写简单的汇编程序。 3、会编写常见的顺序程序、循环程序、延时子程序和查表程序。 | 二、实验主要仪器设备和材料 Kile软件 Proteus软件 | 三、任务设计要求 采用STC89C52单片机构建最小系统,在P1口外接发光二极管,编程实现汽车转向灯控制。
| | 五、硬件电路设计 
| | 七、软硬件仿真调试分析 
打开Keil软件将上面程序输入,调试无误后编译输出“hex”文件,打开Proteus软件,将之前编译好的“hex”文件加入到芯片中,开始运行仿真。结果发现LED灯只亮不闪,经过老师检查指导后得知在写C程序时没有考虑到灯灭的状态,改过之后把程序重新写入,发现硬件电路只能呈现第一种(即:S1=1&&S2=1)的状态。经检查发现没有用括号将几种状态语句括起来,所以只能执行第一种状态,改过之后将程序重新写入可以得到理想的效果。 | 八、项目总结 杨光华: 通过本次实验对延时函数有了更深的了解,可以通过延时来控制led灯的明灭,在老师的帮助下明白了程序中每个语句的含义。
孙俊杰: 在实验时,我对于实验的编写程序有些薄弱,在编写时有些困难,对程序的理解还不够深刻,在经过此次试验后我的程序编写能力得到了提高。
| |
单片机源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit S1=P1^0;
- sbit S2=P1^1;
- sbit L1=P1^4;
- sbit L2=P1^5;
- sbit R1=P1^6;
- sbit R2=P1^7;
- void delay(uint x)
- {
- intt;while(x--)for(t=0;t<125;t++) ;
- }
- void main()
- {
- P1=0X03;
- while(1)
- {{if (S1==1&&S2==1)
- delay(10);
- if (S1==1&&S2==1)
- { L1=1,L2=1,R1=1,R2=1;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50); }
- }
- {if (S1==1&&S2==0)
- delay(10);
- if (S1==1&&S2==0)
- {L1=1,L2=1,R1=0,R2=0;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50);}
- }
- {if (S1==0&&S2==1)
- delay(10);
- if (S1==0&&S2==1)
- {L1=0,L2=0,R1=1,R2=1;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50);}
- }
- {if (S1==0&&S2==0)
- delay(10);
- if (S1==0&&S2==0)
- {L1=0,L2=0,R1=0,R2=0;
- }}
- }
- }
复制代码
所有资料51hei提供下载:
汽车转向灯.doc
(254.5 KB, 下载次数: 46)
|