主动安全型程序设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主动安全型程序设计主动安全型程序设计

C51单片机系统的选择理由 《C51单片机及应用系统设计》以目前国内使用最广泛的MCS-51系列单片机为对象,以单片机应用系统设计为主,首先详细介绍了单片机系统与外设接口的设计及编程技术,内容涉及键盘、LED段码和点阵显示、液晶显示、IC卡模块、模数/数模转换等,然后总结了系统设计的流程和步骤及常用软硬件抗干扰技术等内容。《C51单片机及应用系统设计》中原理性实例采用汇编语言和C51编程,旨在使读者能够理解编程思路,掌握两种语言的编程方法,为学习其他型号的单片机打下良好基础;应用型、综合型实例全部采用C51编程,使程序的可读性和可移植较好。#include reg51.h //包含头文件reg51.h,定义了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||P2_0=1)//判断红外线开关和按钮开关是否都动作 {P2_2=1;}} //是,取暖器启动 超声波报警程序设计原理 子程序是实现系统功能的重要组成部分,主程序的编写都是在由各个子程序来实现的。各个子程序依次工作,实现系统的测距功能。子程序开始时,要对系统进行初始化,初始化包括I/O端口的初始化、中断的初始化、定时器的初始化等等。在初始化完成后,由定时器T0产生40KHz脉冲信号。由单片机P1.6端口输出40KHz的脉冲信号,由TC4069驱动超声波换能器发射40KHZ的超声波,同时定时器T1开始计时。单片机用P1.7接收超声波回波信号,当接收到下降沿,即p1.7口输入是低电平时,定时器T1计时停止。单片机开始转入计算子距离。由单片机内部程序决定其最终显示距离。子程序的工作流程图如图 #includereg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long uchar Disp_Tab []={0x1f,0x3f,0x5f}; //位表 uchar char code dispbit []={0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0x8f,0x9f}; //段表 sbit beep=P1^5; sbit JDQ=P1^4; sbit led1=P1^0; sbit led2=P1^1; sbit led3=P1^2; sbit TX=P1^6; sbit RX=P1^7; uchar cout,xx,num1,num2,num3; uchar b; ulong n,m; void delay(uchar a) //短延时 100a us {uchar i,j; for(i=0;ia;i++) for(j=0;j100;j++);} void bep(uchar b) { uchar i=5; while(i--) {beep=~beep; delay(b);;} void ldelay(uchar b) //长延时 10b ms {uchar k; for(k=0;kb;k++) delay(100);}//10ms /*发射超声波*/ void timer0() interrupt 1 {TH0=(65536-23)/256; //定时器T0发射40khz脉冲 TL0=(65536-23)%256; TX=~TX; xx++; if(xx==4) TR0=0; } ulong Distance() //定时器T1

文档评论(0)

skewguj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档