主动安全型程序设计

更新时间:2023-10-08 06:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C51单片机系统的选择理由

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

编译器能自动完成变量的存储单元的分配,编程者可以专注于应用软件的设计,可以对常用的接口芯片编制通用的驱动函数,对常用的功能模块和算法编制相应的函数,可以方便地进行信号处理算法和程序的移植,从而加快单片机应用系统的开发速度。

当代码长度超过4KB以上时,C51比汇编语言更具有明显的优势。

软件程序设计

主程序实现系统的功能,主程序的编写是在各个子程序的基础上实现的。主程序程序指导各个子程序依次工作,实

现系统的测距功能。主程序要对取暖器的启动进行设置,由P2.0和P2.1来做为条件,输出信号,P2.2接收到信号,当接收为下降沿时低电平有效,取暖器开始启动,主程序工作图如下:

特殊功能寄存器

Sbit hwx=P2_0; //定义输入红外线开关 Sbit kg=P2_0; //定义输入按钮开关 Sbit qnq=P2_0; //定义输出一个取暖器 void main () //主函数

{P2_0=0; //红外线开关初始化设置 P2_1=0; //按钮开关初始化设置 P2_2=0; //取暖器初始化设置

#include //包含头文件reg51.h,定义了MCS-51单片机的

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计时停止。单片机开始转入计算子距离。由单片机内部程序决定其最终显示距离。子程序的工作流程图如图:

#include #include #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;i

for(j=0;j<100;j++);}

void bep(uchar b) { uchar i=5; while(i--)

{beep=~beep;

delay(b);;}

10b ms

void ldelay(uchar b) //长延时 {uchar k;

/*发射超声波*/

for(k=0;k

delay(100);}//10ms

void timer0() interrupt 1

本文来源:https://www.bwwdw.com/article/vaud.html

Top