收藏 分享(赏)

主动安全型程序设计.doc

上传人:dzzj200808 文档编号:2279480 上传时间:2018-09-09 格式:DOC 页数:9 大小:99KB
下载 相关 举报
主动安全型程序设计.doc_第1页
第1页 / 共9页
主动安全型程序设计.doc_第2页
第2页 / 共9页
主动安全型程序设计.doc_第3页
第3页 / 共9页
主动安全型程序设计.doc_第4页
第4页 / 共9页
主动安全型程序设计.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、C51 单片机系统的选择理由C51 单片机及应用系统设计以目前国内使用最广泛的 MCS-51 系列单片机为对象,以单片机应用系统设计为主,首先详细介绍了单片机系统与外设接口的设计及编程技术,内容涉及键盘、LED 段码和点阵显示、液晶显示、IC 卡模块、模数/数模转换等,然后总结了系统设计的流程和步骤及常用软硬件抗干扰技术等内容。 C51 单片机及应用系统设计中原理性实例采用汇编语言和 C51 编程,旨在使读者能够理解编程思路,掌握两种语言的编程方法,为学习其他型号的单片机打下良好基础;应用型、综合型实例全部采用 C51 编程,使程序的可读性和可移植较好。编译器能自动完成变量的存储单元的分配,编

2、程者可以专注于应用软件的设计,可以对常用的接口芯片编制通用的驱动函数,对常用的功能模块和算法编制相应的函数,可以方便地进行信号处理算法和程序的移植,从而加快单片机应用系统的开发速度。当代码长度超过 4KB 以上时,C51 比汇编语言更具有明显的优势。软件程序设计主程序实现系统的功能,主程序的编写是在各个子程序的基础上实现的。主程序程序指导各个子程序依次工作,实现系统的测距功能。主程序要对取暖器的启动进行设置,由 P2.0 和 P2.1 来做为条件,输出信号,P2.2 接收到信号,当接收为下降沿时低电平有效,取暖器开始启动,主程序工作图如下:#include /包含头文件 reg51.h,定义了

3、 MCS-51 单片机的特殊功能寄存器 Sbit hwx=P2_0; /定义输入红外线开关Sbit kg=P2_0; /定义输入按钮开关Sbit qnq=P2_0; /定义输出一个取暖器void main () /主函数P2_0=0; /红外线开关初始化设置P2_1=0; /按钮开关初始化设置P2_2=0; /取暖器初始化设置while (1)if(P2_0=1|P2_0=0)/判断红外线开关和按钮开关是否都动作P2_2=0; /否,取暖器不启动else if(P2_0=0;P2_0=0|P2_0=1)/判断红外线开关和按钮开关是否都动作P2_2=0; /否,取暖器不启动else(P2_0=1

4、|P2_0=1)/判断红外线开关和按钮开关是否都动作P2_2=1; /是,取暖器启动超声波报警程序设计原理子程序是实现系统功能的重要组成部分,主程序的编写都是在由各个子程序来实现的。各个子程序依次工作,实现系统的测距功能。子程序开始时,要对系统进行初始化,初始化包括 I/O 端口的初始化、中断的初始化、定时器的初始化等等。在初始化完成后,由定时器 T0 产生 40KHz脉冲信号。由单片机 P1.6 端口输出 40KHz 的脉冲信号,由TC4069 驱动超声波换能器发射 40KHZ 的超声波,同时定时器 T1 开始计时。单片机用 P1.7 接收超声波回波信号,当接收到下降沿,即 p1.7 口输入

5、是低电平时,定时器 T1计时停止。单片机开始转入计算子距离。由单片机内部程序决定其最终显示距离。子程序的工作流程图如图:#include#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned longuchar Disp_Tab =0x1f,0x3f,0x5f; /位表uchar char code dispbit =0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0x8f,0x9f; /段表sbit beep=P15;sbit JDQ=P14;sbi

6、t led1=P10;sbit led2=P11;sbit led3=P12;sbit TX=P16;sbit RX=P17;uchar cout,xx,num1,num2,num3; uchar b; ulong n,m; void delay(uchar a) /短延时 100a usuchar i,j;for(i=0;i10) cout=0;n-;if(n=0);return n; void display(uchar num1,uchar num2,uchar num3)P0=Disp_Tabnum1;P2=dispbit0;delay(10);P0=Disp_Tabnum2;P2=d

7、ispbit1;delay(10);P0=Disp_Tabnum3;P2=dispbit2;delay(10);void init()JDQ =1;P2=0xff;P0=0x00;P1=0xff;TH0=(65536-23)/256;TL0=(65536-23)%256;ET0=1;EA=1; / 开 CPU 中断TR0=0;TMOD=0x11;TR1 = 0;ET1 = 0;TH1 = 0;TL1 = 0;TF1 = 0;void main()init();while(1)m=Distance();if(m=250)m=0;num1=m/100;num2=m%100/10;num3=m%10;display( num1, num2,num3);if(m200) /安全 距离 绿灯亮led1=0;delay(5);if(m150led3=0;delay(5);bep(1);JDQ=0;if(m100) /死区 关继电器 关灯 led3=1;JDQ=1;delay(5);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报