- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 为了最初的梦想.doc
- 为了提高教学质量.doc
- 为了明天(校庆).doc
- 为了忘却的记念教案.doc
- 为了理想 拼尽全力.doc
- 为了支援灾区.doc
- 为了自己的梦想.doc
- 为了谁 学习体会.doc
- 为人师表、爱岗敬业.doc
- 为人处事经典名言.doc
- 上课《归园田居(其一)》课件28张.pptx
- 色彩的魅力课件55.ppt
- 山水田园诗导学练习鉴赏.ppt
- 部编版《白鹭》课件.pptx
- 《Excel在财务中的应用》项目七 全面预算编制方法与应用 教学课件.pptx
- 《Excel在财务中的应用》项目六 利润管理决策模型与应用 教学课件.pptx
- 《Excel在财务中的应用》项目五 运营资金的管理 教学课件.pptx
- 《Excel在财务中的应用》项目四 项目投资管理决策与应用 教学课件.pptx
- 《Excel在财务中的应用》项目三 筹资管理决策模型与应用 教学课件.pptx
- 《Excel在财务中的应用》项目二 Excel 常用函数基础 教学课件.pptx
文档评论(0)