77范文网 - 专业文章范例文档资料分享平台

基于单片机的光电计数器(5)

来源:网络收集 时间:2019-03-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第四章 光电计数器的系统软件设计 17

第四章 光电计数器系统软件设计

系统上电初始化之后,主程序不断地扫描键盘和显示程序;同时判断外部中断标志是否有效。如果外部中断标志有效,则调用光电计数处理子程序,刷新数码管的显示值

4.1系统控制主程序设计

定义蜂鸣器接口P3.6,初始状态为0,蜂鸣器不报警,当有高电平触发P3.6是,蜂鸣器开始报警。当下一个脉冲是1时外部中断T0则产生中断,计数器停止加计数,同样若外部中断T1也是高电平则T1产生中断,计数器停止减计数。

4.2 系统初始化子程序设计

设定外部中断T0、T1的标志位置0即中断处于关闭状态,蜂鸣器控制标志位也置0,处于关闭状态,系统初始化流程图如图4-1所示。

图4-1 系统初始化流程图

18 基于单片机的光电计数器

4.3 显示子程序设计

定义数码管的段码表、位选码,定义计数器的显示缓存区,在统计过程中,当一个信号传到单片机中,系统调用延时子程序进行延时,计数器对十位和个位进行计数判断,将数据通过数码管显示出来,显示子程序的电路图如图4-2所示。

图4-2 动态显示电路流程图

4.4 光电计数处理子字程序设计

外部中断T0和T1初始化后都处于关闭状态,当其中断标志有效时进行加计

第四章 光电计数器的系统软件设计 19

数,当外部中断T0处于关闭时,外部中断T1进行加计数且判断计数器是否达到计满值99,若大于等于99则KEYBOARD=1蜂鸣器报警。外部中断T1关闭,开外部中断T0,则减计数,再开外部中断T0。最后将计数值通过数码管显示,其流程图如图4-3所示。

开始 系统初始化 外部中断初始显示 键盘扫描 是否有按键 键盘处理 是否有外部中断 调用光电计数处理程序 返回 图4-3 光电计数处理子程序流程图

20 基于单片机的光电计数器

4.5 C语言介绍

C语言是一种面向过程的计算机程序设计语言,它是目前举世公认的优秀的结构程序设计语言之一。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。

C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE Ⅳ都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。

C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的C语言,很多优秀的应用程序也都使用C语言开发的,它是一种很有发展前途的高级程序设计语言。

1.C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。

4.C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。

C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

第四章 光电计数器的系统软件设计 21

C语言具有较好的可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。

4.6软件的程序设计

#include #include #define uchar unsigned char #define uint unsigned int uchar

code

table[]={0x3f,0x06,0x5b,0x4F,0x66,0x6D,0x7d,0x07,0x7f,0x6f,0x00,0x40}; sbit Shiwei=P2^1; sbit Gewei=P2^0; sbit In=P1^0; //输入

int TK,flag;

/******************************************* 函数名称:Delay_Nms 功 能:延时约Nms的时间 参 数:uint n 返回值 :无

********************************************/ void delay(uint n) { uint i; while(n--)

{for(i=0;i<125;i++); } }

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的光电计数器(5)在线全文阅读。

基于单片机的光电计数器(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/528174.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: