系统执行软件源程序代码

合集下载

北邮操作系统进程管理实验报告及源代码

北邮操作系统进程管理实验报告及源代码

进程管理实验报告1. 实验目的:(1)加深对进程概念的理解, 明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象, 学习解决进程互斥的方法;(4)了解Linux系统中进程通信的基本原理。

2. 实验预备内容(1)阅读Linux的sched.h源码文件, 加深对进程管理概念的理解;(2)阅读Linux的fork()源码文件, 分析进程的创建过程。

3.环境说明本次实验使用的是win7下的VMWare workstation虚拟机, 安装了ubuntu系统在ubuntu系统下使用code::blocks IDE编写代码并执行程序的4.实验内容:1.进程的创建:(1)实验题目和要求:编写一段程序, 使用系统调用fork() 创建两个子进程。

当此程序运行时, 在系统中有一个父进程和两个子进程活动。

让每一个进程在屏幕上显示一个字符:父进程显示字符“a”, 子进程分别显示字符“b”和“c”。

试观察记录屏幕上的显示结果, 并分析原因。

(2)程序设计说明:参照书上的例子进行设计, 详见源代码(3)程序运行结果截图:(4)程序分析:a,b,c随机出现, 因为父进程与两个子进程之间并没有同步措施, 所以a,b,c随机打印出来, 也就是三个进程的活动次序是随机进行的, 不同的系统可能有不同的进程调度方式。

(5)源程序:#include<sys/types.h>#include<stdio.h>#include<unistd.h>int main(){pid_t pid1,pid2;if((pid1=fork())<0){printf("Fork Failed.\n");exit(-1);}else if((pid1=fork())==0)printf("b\n");else{if((pid2=fork())<0){printf("Fork Failed.\n");exit(-1);}else if((pid2=fork())==0)printf("c\n");else{wait(NULL);printf("a\n");exit(0);}}return 0;}2.进程的控制:要求一:(1)实验题目和要求:修改已经编写的程序, 将每个进程输出一个字符改为每个进程输出一句话, 再观察程序执行时屏幕上出现的现象, 并分析原因。

编译程序汇编程序解释程序

编译程序汇编程序解释程序

编译程序汇编程序解释程序编译程序、汇编程序和解释程序是计算机领域中常用到的三种程序类型。

它们在软件开发、系统维护和性能优化等方面都有着重要的作用。

本文将对这三种程序类型进行详细的介绍与对比,以便读者更好地理解它们的概念、功能和应用场景。

一、编译程序编译程序是一种将高级语言源代码翻译成机器语言目标代码的程序。

它通常包括以下几个主要步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。

编译程序的核心功能是将高级语言代码转化为可被计算机直接执行的机器语言指令,从而实现软件的运行。

编译程序具有以下几个特点:1. 效率高:一旦源代码被编译成目标代码,无需再次进行编译,可以直接被计算机执行,从而提高程序的执行效率。

2. 可移植性好:编译生成的目标代码可以在不同的计算机平台上运行,无需重新编写或修改源代码。

3. 错误发现早:在编译过程中,编译程序能够检测出源代码中的语法错误和逻辑错误,并提示开发者进行修正。

二、汇编程序汇编程序是一种将汇编语言源代码翻译成机器语言目标代码的程序。

汇编语言是一种与机器语言相对应的低级语言,使用助记符来代替机器语言指令。

汇编程序的主要作用是将汇编程序员编写的可读性高的汇编语言代码转化为机器能够理解和执行的二进制指令。

汇编程序具有以下几个特点:1. 直接操作硬件:汇编语言与计算机硬件之间的关系更为密切,可以直接操作计算机的寄存器、内存和输入输出设备等。

2. 可读性较高:相对于机器语言而言,汇编语言的可读性更好,能够使程序员更容易理解和调试代码。

3. 灵活性强:程序员可以利用汇编语言的灵活性来进行底层优化和特定功能的实现。

三、解释程序解释程序是一种逐行解释并执行源代码的程序。

解释程序不需要事先将源代码转化为机器语言目标代码,而是通过逐行解释源代码,并及时执行相应的操作。

解释程序通常会包括词法分析、语法分析和执行等步骤。

解释程序具有以下几个特点:1. 实时解释执行:解释程序可以实时地解释和执行源代码,遇到错误时可以立即停止并提示开发者进行修正。

第一章 计算机软件系统

第一章 计算机软件系统

第一章计算机软件系统软件是指程序运行所需要的数据以及与程序相关的文档资料的集合。

程序是一系列有序的指令的集合。

计算机之所以能够自动而连续地完成预定的操作,就是运行特定程序的结果。

计算机程序通常都是由计算机语言来编制,编制程序的工作就称为程序设计。

对程序进行描述的文本就称为文档。

因为程序是用抽象化的计算机语言编写的,如果不是专业的程序员是很难看懂它的,因此就用自然语言来对程序进行解释说明,形成程序的文挡。

所以,从广义的角度说,软件是程序和文档的集合体。

计算机的软件系统可以分为系统软件和应用软件两大部分,以系统软件作为基础和桥梁,用户就能够使用各种各样的应用软件,让计算机来为自己完成各种所需要的工作,而这一切都是由作为系统软件核心的操作系统来管理控制的。

第一节系统软件一、简介(一)系统软件系统软件是管理、监控和维护计算机资源,使计算机能够正常、有效地工作的程序及相关数据的集合。

它主要由下面几个部分组成:操作系统(是控制和管理计算机的平台);各种程序设计语言及其解释程序和编译程序;各种服务性程序(如监控管理程序、调试程序、故障检查和诊断程序等);各种数据库管理系统(如FoxPro等)。

系统软件的核心部分是操作系统,程序设计语言以及各种服务程序一般都是作为计算机系统的一部分提供给用户的。

操作系统是管理和控制计算机系统的软、硬件资源,使它们充分高效地工作,并使用户合理有效地利用这些资源的程序的集合。

可以这么说,操作系统是计算机的灵魂。

操作系统按计算机的机型可以分为大、中、小型机和微型机操作系统;按用户数目分为单用户操作系统和多用户(网络)操作系统等;按照操作系统的功能特征来分主要有批处理操作系统、实时操作系统和分时操作系统。

计算机语言是用户和计算机之间进行交流的工具。

计算机不能识别人们日常使用的自然语言,只能识别按照一定的规则编制好的程序,即计算机语言。

计算机是通过运行程序来进行工作的,所以计算机语言又称为程序设计语言。

软考软件评测师2009年上半年上午题

软考软件评测师2009年上半年上午题

2009年上半年软件评测师上午题●计算机的用途不同,对其部件的性能指标要求也有所不同。

以科学计算为主的计算机,对(1)要求较高,而且应该重点考虑(2).(1)A.外存储器的读写速度 B.主机的运算速度C.I/O设备的速度D.显示分辨率(2)A.CPU的主频和字长,以及内存容量B.硬盘读写速度和字长C.CPU的主频和显示分辨率D.硬盘读写速度和显示分辨率●(3)是指按内容访问的存储器。

(3)A.虚拟存储器 B.相联存储器 C.高速缓存(Cache) D.随机访问存储器●处理机主要由处理器、存储器和总线组成,总线包括(4).(4)A.数据总线、地址总线、控制总线 B.并行总线、串行总线、逻辑总线C.单工总线、双工总线、外部总线D.逻辑总线、物理总线、内部总线●下面关于加密的说法中,错误的是(5)。

(5)A.数据加密的目的是保护数据的机密性B.加密过程是利用密钥和加密算法将明文转换成密文的过程C.选择密钥和加密算法的原则是保证密文不可能被破解D.加密技术通常分为非对称加密技术和对称密钥加密技术●下面关于防火墙功能的说法中,不正确的是(6)。

(6)A.防火墙能有效防范病毒的入侵B.防火墙能控制对特殊站点的访问C.防火墙能对进出的数据包进行过滤D.防火墙能对部分网络攻击行为进行检测和报警●下面关于漏洞扫描系统的叙述,错误的是(7)。

(7)A.漏洞扫描系统是一种自动检测目标主机安全弱点的程序B.黑客利用漏洞扫描系统可以发现目标主机的安全漏洞C.漏洞扫描系统可以用于发现网络入侵者D.漏洞扫描系统的实现依赖于系统漏洞库的完善●软件工程每一个阶段结束前,应该着重对可维护性进行复审。

在系统设计阶段的复审期间,应该从(8)出发,评价软件的结构和过程。

(8)A.指出可移植性问题以及可能影响软件维护的系统界面B.容易修改、模块化和功能独立的目的C.强调编码风格和内部说明文档D.可测试性●计算机感染特洛伊木马后的典型现象是(9)。

conda gcc编译程序

conda gcc编译程序

conda gcc编译程序在进行程序开发和编译时,选择合适的编译器是非常重要的。

而conda gcc正是一种常用的编译器选择之一。

本文将介绍如何使用conda安装和配置gcc编译器,并演示如何编译程序。

一、conda简介conda是一个开源的软件包管理系统和环境管理系统,用于安装、运行和管理程序。

它可以帮助我们快速、方便地安装和配置各种软件包。

conda提供了许多预编译的软件包,包括gcc编译器。

二、安装conda我们需要安装conda。

可以从conda官网(https://conda.io/)下载适合自己操作系统的安装包,并按照官方文档的指引进行安装。

三、安装gcc编译器安装完conda后,我们可以使用conda命令安装gcc编译器。

打开终端(Windows下为命令提示符或PowerShell),输入以下命令:conda install gcc该命令将从conda的软件源中下载并安装gcc编译器及其依赖项。

安装完成后,我们就可以使用gcc命令进行编译了。

四、编译程序假设我们有一个C语言的源代码文件example.c,我们可以使用gcc命令将其编译成可执行文件。

在终端中切换到example.c所在的目录,并执行以下命令:gcc example.c -o example该命令将会将example.c编译成名为example的可执行文件。

如果编译过程中没有出现错误,我们就可以运行该可执行文件了。

五、运行程序在终端中执行以下命令:./example该命令将会运行我们编译好的example可执行文件。

如果程序正常运行并输出了预期的结果,那么说明我们的编译工作是成功的。

六、其他常用选项在使用gcc编译程序时,我们还可以使用一些常用的选项来控制编译过程和生成的可执行文件。

以下是一些常用的选项示例:-std:指定所使用的C语言标准,例如-std=c99表示使用C99标准。

-o:指定生成的可执行文件的名称,例如-o example表示生成名为example的可执行文件。

可执行文件的名词解释

可执行文件的名词解释

可执行文件的名词解释可执行文件是一种特殊类型的计算机文件,也被称为二进制文件或者程序文件。

它是由计算机程序编译生成的二进制代码,可以直接在计算机上运行。

在计算机科学领域,可执行文件是一种包含了机器指令集的文件,这些指令集可以被计算机直接执行。

本文将对可执行文件进行详细解释,并介绍它的结构和功能。

1. 可执行文件的结构可执行文件的结构可以分为两个主要部分:文件头和程序代码。

文件头通常包含了一些与文件相关的元数据,例如文件的版本号、入口点位置等等。

程序代码部分则包含了计算机所需的二进制指令集,这些指令可以被计算机硬件直接执行。

2. 可执行文件的生成与编译在软件开发的过程中,程序员通常会编写高级编程语言(如C、C++、Java)的源代码。

为了能够让计算机执行这些源代码,需要将其编译成可执行文件。

编译器是一种专门用于将高级语言代码转换成机器代码的工具。

编译过程将源代码转化为目标文件,并最终链接生成可执行文件。

3. 可执行文件的阅读与修改一般情况下,可执行文件是以二进制形式存储在计算机硬盘上的。

为了读取和修改可执行文件,需要使用一些特殊的工具和技术。

常见的工具包括反汇编器和调试器。

反汇编器可以将二进制指令转换为人类可读的汇编代码,从而帮助程序员理解和分析可执行文件的功能。

调试器则可以在运行时对可执行文件进行调试和修改,用于查找和修复程序中的错误。

4. 可执行文件的运行与操作系统可执行文件的运行需要依赖操作系统。

操作系统负责将可执行文件加载到内存中,并执行其中的二进制指令。

在加载过程中,操作系统会为可执行文件分配一块内存空间,并将代码和相关数据加载到其中。

一旦加载完成,操作系统会将控制权交给可执行文件,使其开始执行。

操作系统还提供了一些系统调用接口,使得可执行文件能够与硬件和其他软件进行交互。

5. 可执行文件的应用与安全性可执行文件的应用非常广泛,涉及到各行各业的计算机软件。

例如办公软件、娱乐应用、操作系统等都是以可执行文件的形式提供给用户。

0 一个完整的计算机系统应包括

0 一个完整的计算机系统应包括

13 3 0 计算机软件包括()radio2 算法及数据结构|程序和结构|程序和文档|文档和数据 C 0 admin14 3 0 应用软件是指()radio2 所有能够使用的软件|专门为某一应用目的而编制的软件|所有的微机都使用的基本软件|能被各应用单位共同使用的某种软件B 0 admin15 3 0 下列软件中,()是应用软件radio2 PowerPoint |DOS |Windows 98 |Visual FoxPro 6.0 A 0 admin16 3 0 计算机硬件能直接识别并执行的语言是()radio2 高级语言|算法语言|机器语言|符号语言 C 0 admin17 3 0 用户用计算机高级语言编写的程序,通常称为()radio2 汇编程序|目标程序|源程序|二进制代码程序C 0 admin18 3 0 下面有关计算机操作系统的叙述中,不正确的是()radio2 操作系统属于系统软件|操作系统只负责管理内存储器|UNIX是一种操作系统|计算机的处理器、内存等硬件资源也由操作系统管理 B 0 admin19 3 0 微机中的操作系统的作用是()radio2 解释执行源程序|编译源程序|进行编码转换|控制和管理系统资源 D 0 admin20 3 0 “存储程序”的核心概念是()radio2 事先编好程序|把程序存储在计算机内存中|事后编写程序|将程序从存储位置自动取出并逐条执行 A 0 admin21 3 0 二进制数01100100转换成十六进制数是()radio2 64 |63 |100 |144 A 0 admin22 3 0 下列四个不同数制表示的数中, 数值最大的是()radio2 (11011101)2 |(334)8 |(219)10 |(DA)16 A 0 admin23 3 0 下列一组数中最小的数是radio2 (11011001)2 |(1111111)2 |(75)10 |(40)16 D 0 admin24 3 0 将十进制数123 转换成二进制数是radio2 111100l |1111011|1111101 |1110011 B 0 admin25 3 0 十进制数268 转换成十六进制数是radio2 lOBH |10CH |10DH|10E B 0 admin26 3 0 八进制计数制中,各数据位的权是以()为底的方幂radio2 2 |8 |10 |16 B 0 admin27 3 0 数字字符“1”的ASCII码的十进制数表示为49,数字字符“8”的ASCII码的十进制数表示应为radio2 56 |58 |60 |54 A 0 admin28 3 0 在存储一个汉字内码的两个字节中,每个字节的最高位是radio2 1 和1 |1 和0 |0 和l |0 和0 A 0 admin29 3 0 在计算机内一切信息的存取、传输都是以()形式进行的radio2 ASCII 码|二进制|十六进制|BCD码 B 0 admin30 3 0 CPU每执行(),就完成一步基本的运算或判断radio2 一个软件|一条指令|一个硬件|一条语句 B 0 admin31 3 0 计算机硬件系统中最核心的部件是radio2 主板|内存储器|I/O设备|CPU D 0 admin32 3 0 微机的CPU由()组成radio2 运算器和存储器|控制器和存储器|运算器和控制器|运算器、控制器和存储器 C 0 admin33 3 0 大规模和超大规模集成电路芯片组成的微型计算机属于现代计算机阶段的radio2 第一代产品|第二代产品|第三代产品|第四代产品 D 0 admin 34 3 0 CPU 能直接访问的存储器是radio2 软盘|磁盘|光盘|ROM D 0 admin35 3 0 操作系统的作用radio2 把源程序翻译成目标程序|实现软件硬件的转换|管理计算机的硬件设备|控制和管理计算机系统资源的使用 D 0 admin 36 3 0 操作系统是一种radio2 系统软件|系统程序库|编译程序系统|应用软件A 0 admin37 3 0 如果微机不配置(),那么它就无法使用radio2 操作系统|高级语言|应用软件|工具软件 A 0 admin38 3 0 微型计算机中存储数据的基本单位是radio2 字节|字|位|KB A 0 admin39 3 0 下列属于磁盘的基本存储单位的是radio2 位|磁道|扇区|字节D 0 admin40 3 0 在计算机运行中突然断电,下列()中的信息将会丢失radio2 ROM |RAM |CD-ROM |磁盘B 0 admin41 3 0 具有多媒体功能的微型计算机系统,常用CD-ROM作为外存储器,它是radio2 只读存储器|可读写存储器|只读硬盘|只读大容量软盘A 0 admin42 3 0 下列几种存储器中,存取速度最快的是radio2 光盘存储器|内存储器|硬盘存储器|软盘存储器 B 0 admin43 3 0 计算机的内存储器是由许多存储单元组成的,为使计算机能识别和访问这些单元,给每个单元一个编号,这些编号称为radio2 名称|名号|地址|数据C 0 admin44 3 0 计算机之所以能够按照人的意图自动工作,主要是因为采用了radio2 高速的电子元件|高级语言|二进制编码|存储程序控制 D 0 admin45 3 0 “计算机辅助制造”的常用英文缩写是radio2 CAD |CAM |CAT |CAI B 0 admin46 3 0 计算机软件是指所使用的radio2 各种程序的集合|有关的文档资料|各种指令的集合|各种程序的集合及有关的文裆资料 D 0 admin47 3 0 一台完整的计算机系统由()组成radio2 主机、键盘、显示器|计算机硬件系统和软件系统|培训软件和管理软件|编辑软件和科学计算软件B 0 admin48 3 0 计算机软件通常可分为()两大类radio2 系统软件和应用软件|实用软件和自由软件|培训软件和管理软件|编辑软件和科学计算软件 A 0 admin49 3 0 文件名使用通配符的作用是radio2 减少文件所占用的磁盘空间|便于一次处理多个文件|便于给一个文件命名|便于保存文件 B 0 admin50 3 0 任何要运行的程序radio2 在软盘上就可以运行|存放在任何地方都可直接运行|在硬盘上就可以运行|必须进入内存才能运行 D 0 admin51 3 0 32位的中央处理单元是可以一次处理()位二进制数radio2 4 |8 |16 |32 D回答者:幸福鬼ye|一级| 2010-11-12 21:48686 3 0 目前计算机语言可以为机器语言、()和高级语言三大类text 汇编0 admin687 3 0 将汇编语言程序翻译成与之等价的机器语言程序的程序是( ). text 汇编程序0 admin688 3 0 将用高级语言编写的源程序转换成等价的目标程序的过程,称为()过程。

linux固件编译过程

linux固件编译过程

linux固件编译过程Linux固件编译过程在Linux系统中,固件是指驱动程序加载到硬件设备上时所需的程序和数据。

固件编译是将源代码转换为可执行的固件文件的过程。

本文将逐步介绍Linux固件编译的过程。

1. 安装编译环境在开始进行固件编译之前,需要安装编译环境。

这包括GNU工具链(如gcc、make等)、交叉编译工具链(如果需要为不同的平台编译固件)、源代码管理工具(如git、svn等)以及其他所需的开发工具和库。

可以使用系统的包管理器来安装这些软件。

2. 获取源代码获取所需的源代码。

这可以通过下载稳定版本的源代码包或者克隆版本控制系统中的存储库来实现。

通常,固件的源代码可以从设备制造商的网站或开发社区中获得。

使用版本控制系统可以方便地更新和管理源代码。

3. 配置编译参数进入源代码目录并运行配置命令。

该命令将根据所需的目标平台、要编译的功能模块以及其他选项进行设置。

通常,配置命令是通过运行"./configure"或者"cmake"来完成的。

这些命令将检查系统环境并生成构建系统所需的Makefile文件。

4. 构建固件使用make命令来构建固件。

make命令将根据Makefile文件中的规则和依赖关系来编译源代码。

在构建过程中,make将执行所需的编译器命令,并生成目标文件和可执行程序。

构建过程可能需要一些时间,具体取决于源代码的大小和复杂性。

5. 安装固件构建完成后,可使用make install命令将固件安装到指定目录中。

安装目录通常是Linux系统的根目录下的/lib/firmware。

这样,系统在加载驱动程序时将能够找到并加载相应的固件文件。

6. 测试和调试当固件完成安装后,可以进行测试和调试。

这可以包括运行固件的功能测试集、检查日志文件以及使用特定的工具进行调试。

测试和调试的目的是验证固件的正确性和稳定性,并修复可能出现的问题。

7. 发布和更新一旦固件通过了测试和调试,可以将其发布到设备制造商的网站或开发社区中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统执行软件源程序代码Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT附录一系统执行软件源程序代码一、系统多机通信从机源程序代码***Lu Bo*-------------------------------------------------------------------------------------------------------------------------------------ORG 0000HSJMP MAINORG 0023H ;串行口中断入口SJMP SJCS------------------主程序----------------------------------------------------------------------------------------------------------MAIN: SLAVE EQU 12DK EQUMOV SCON,#0B0HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHMOV IE,#90HSETB TR1LCALL WDCJSETB RS1CLR RS0LCALL BCDZHLCALL DISPLAYCLR RS1CLR RS0SJMP MAIN------------------串行口中断服务子程序----------------------------------------------------------------------------------SJCS: CLR RIPUSH APUSH PSWMOV A,SBUFXRL A,#SLAVEJZ SJCS0SJCS1: SETB SM2POP PSWPOP ARETISJCS0: CLR SM2MOV SBUF,#SLAVEJNB TI,$CLR TIJNB RI,$CLR RIMOV A,SBUFXRL A,#11HJZ SJCS2SJMP SJCS1SJCS2: MOV A,25HADD A,#1MOV SBUF,AJNB TI,$CLR TIMOV 22H,#00HSJMP SJCS1----------------18B20温度采集子程序------------------------------------------------------------------------------------WDCJ: MOV SP,#60HLCALL GET_TEMPMOV A,21HMOV C,00HRRC AMOV C,01HRRC AMOV C,02HRRC AMOV C,03HRRC AMOV 21H,AMOV 25H,ALCALL BCDZHLCALL DISPLAYAJMP MAIN------------------18B20温度采集时序子程序------------------------------------------------------------------------------GET_TEMP: CLR EALCALL INTMOV A,#0CCHLCALL WRITEMOV A,#44HLCALL WRITELCALL INTMOV A,#0CCHLCALL WRITEMOV A,#0BEHLCALL WRITELCALL READMOV 21H,ALCALL READMOV 20H,ASETB EARET----------------18B20初始化子程序-----------------------------------------------------------------------------------INT: CLR EAL0: CLR DKMOV R2,#200L1: CLR DKDJNZ R2,L1SETB DKMOV R2,#30L4: DJNZ R2,L4CLR CORL C,DKJC L0MOV R6,#80L5: ORL C,DKJC L3DJNZ R6,L5SJMP L0L3: MOV R2,#200L2: DJNZ R2,L2RET----------------18B20写命令子程序-----------------------------------------------------------------------------------------WRITE: CLR EAMOV R3,#8WR1: SETB DKMOV R4,#8RRC ACLR DKWR2: DJNZ R4,WR2MOV DK,CMOV R4,#20WR3: DJNZ R4,WR3DJNZ R3,WR1SETB DKRET-------------------18B20读数据子程序READ: CLR EAMOV R6,#8RE1: CLR DKMOV R4,#4NOPSETB DKRE2: DJNZ R4,RE2MOV C,DKRRC AMOV R5,#30RE3: DJNZ R5,RE3DJNZ R6,RE1SETB DKRET-----------------八为十六转十进制子程序-----------------------------------------------------------------------------------BCDZH: INC 21HMOV A,21HMOV 30H,#12JNB ,BCD0MOV 30H,#11CPL AADD A,#1BCD0: MOV R1,#00HMOV R2,#00HCLR CBCD1: SUBB A,#64HJC BCD2INC R1SJMP BCD1BCD2: ADD A,#64HBCD3: SUBB A,#0AHJC BCD4INC R2SJMP BCD3BCD4: ADD A,#0AHMOV 31H,R1MOV 32H,R2MOV 33H,ARET-----------------四位数码子程序--------------------------------------------------------------------------------------------DISPLAY: MOV R3,#4MOV R0,#30HMOV 3AH,#0f7HDISP0: MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0D00HMOVX @DPTR,AMOV DPTR,#0E00HMOV A,3AHMOVX @DPTR,ARR AMOV 3AH,AACALL DY1msINC R0DJNZ R3,DISP0RET延时子程序------------------------------------------------------------------------------------------DY1ms: MOV R4,#50LOOP: NOPNOPDJNZ R4,LOOPRET-----------------10ms延时子程序----------------------------------------------------------------------------------------DY10ms: MOV R4,#10LOOP0: MOV R5,#250LOOP1: NOPNOPDJNZ R5,LOOPDJNZ R4,LOOP0RET----------------十进制码表---------------------------------------------------------------------------------------------------TAB: DB 3fh,06h,5bh,4fh,66h ;0,1,2,3DB 6dh,7dh,07h,7fh,6fh ;4,5,6,7DB 058H,040H,00H ;8,9,C,-,黑屏END二、系统多机通信主机源程序代码-----------------------------------------------------------------------------------------------------------------------------------***Lu Bo*------------------------------------------------------------------------------------------------------------------------------------ORG 0000HSJMP MAIN-------------------------主程序--------------------------------------------------------------------------------------------------MAIN: MOV SP,#70HMOV SCON,#98HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHMOV PCON,#00HMOV R6,#10MOV R7,#3MOV 55H,#00HSETB TR1LCALL BCDZHLCALL DISPLAYMAIN00: LCALL PCJCXLCALL SJCSMOV SCON,#50Hlcall serial_sendMOV SCON,#98HLCALL PCJCXLCALL SJCS11LCALL PCJCXSJMP MAIN00---------------通信子程序------------------------------------------------------------------------------------------------------SJCS: MOV A,R6MOV SBUF,ALCALL BCDZHLCALL DISPLAYJNB TI,$CLR TILCALL BCDZHLCALL DISPLAYJNB RI,$CLR RIMOV A,SBUFXRL A,R6JZ SJCS0SJCS00: LCALL BCDZHLCALL DISPLAYSETB TB8SJMP SJCSSJCS0: CLR TB8MOV 30H,R6MOV A,#11HMOV SBUF,ALCALL BCDZHLCALL DISPLAYJNB TI,$CLR TIJNB RI,$CLR RIMOV A,SBUFMOV 44H,ALCALL SFJSJSETB TB8DJNZ 55H,SJCSRETSJCS11: MOV 55H,#00HINC R6DJNZ R7,SJCSMOV R6,#10MOV R7,#3RETSFJSJ: CJNE R6,#11,SFJSJ3 MOV 62H,44HMOV 58H,44HSJMP SFJSJ0SFJSJ3: JC SFJSJ1MOV 63H,44HMOV 58H,44HSJMP SFJSJ0SFJSJ1: MOV 61H,44HMOV 58H,44HSFJSJ0: RETPCJCX: MOV SCON,#50HJNB RI,HH1LJMP HH2HH1: LCALL BCDZHLCALL DISPLAYJNB RI,WW5HH2: CLR RIMOV A,SBUFWW1: CJNE A,#49,WW2mov 44h,61hlcall bcdzhlcall displayMOV 58H,61Hlcall serial_sendLJMP WW5-----------------PC机地址判别子程序------------------------------------------------------------------------------------WW2: CJNE A,#50,WW3mov 44h,62hlcall bcdzhlcall displayMOV 58H,62Hlcall serial_sendLJMP WW5WW3: CJNE A,#51,WW4mov 44h,63hlcall bcdzhlcall displayMOV 58H,63Hlcall serial_sendLJMP WW5WW4: CJNE A,#52,WW5LJMP MAINWW5: MOV SCON,#98HRET-------------------八为十六转十进制子程序---------------------------------------------------------------------------BCDZH: MOV A,44HMOV 31H,#15JNB ,BCD0MOV 31H,#14CPL AADD A,#1BCD0: MOV R1,#00HMOV R2,#00HCLR CBCD1: SUBB A,#64HJC BCD2INC R1SJMP BCD1BCD2: ADD A,#64HBCD3: SUBB A,#0AHJC BCD4INC R2SJMP BCD3BCD4: ADD A,#0AHMOV 32H,R1MOV 33H,R2MOV 34H,ARET----------------六位数码子程序--------------------------------------------------------------------------------------------DISPLAY: MOV R3,#6MOV 35H,#13MOV R0,#30HMOV 3AH,#0DFHDISP0: MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0D00HMOVX @DPTR,AMOV DPTR,#0E00HMOV A,3AHMOVX @DPTR,ARR AMOV 3AH,AACALL DY1msINC R0DJNZ R3,DISP0RET延时子程序------------------------------------------------------------------------------------------DY1ms: MOV R4,#50LOOP: NOPNOPDJNZ R4,LOOPRET--------------------10ms延时子程序-----------------------------------------------------------------------------------------DY10ms: MOV R4,#10LOOP0: MOV R5,#250LOOP1: NOPNOPDJNZ R5,LOOPDJNZ R4,LOOP0RET--------------------PC机通信子程序------------------------------------------------------------------------------------------serial_send: NOPNOPNOPNOPDEC 58HMOV A,58Hmov b,#10 ;温度值为16进制方式,控制范围不超过100oCdiv ab ;因此可只用两位十进制数表示mov dptr,#ascii_tab ;分出十位在acc中,个位在b中movc a,@a+dptr ;用查表法将数转换成ascii码mov sbuf,a;LCALL BCDZH;LCALL DISPLAY ;启动串口发送10位的数据jnb ti,$ ;等待一帧发送结束,未完时ti=0,结束时ti=1clr ti ;清除发送中断标志位mov a,b ;取在b中的个位movc a,@a+dptrmov sbuf,a;LCALL BCDZH;LCALL DISPLAY ;启动串口发送个位的数据jnb ti,$clr tiSETB TB8RETascii_tab:db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;0—9ASCII码表TAB: DB 3fh,06h,5bh,4fh,66h ;0,1,2,3DB 6dh,7dh,07h,7fh,6fh ;4,5,6,7DB 77H,7CH,39H,058H,040H,00H ;8,9,A,b,C,c-,黑屏END三、计算机实验室温控系统PC机应用程序代码:(Visual Basic)-------------------------------------------------------------------------------------------------------------------------------------Dim x As IntegerDim y As IntegerDim T As IntegerDim C As IntegerDim I As Integer------------------------------------------------------------------------------------------------------------------------------------Private Sub button_now1_Click()= + "1" '发送数据T = 10' = "1"For I = 1 To 2 '延时NextEnd Sub-------------------------------------------------------------------------------------------------------------------------------------Private Sub button_now2_Click()= + "2" '发送数据T = 11' = "2"For I = 1 To 2 '延时NextEnd Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub button_now3_Click()= + "3" '发送数据T = 12' = "2"For I = 1 To 2 '延时NextEnd Sub-------------------------------------------------------------------------------------------------------------------------------------Private Sub Button_RECV_C_Click()= ""= + "9"End Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub Button_SEND_C_Click()= ""End Sub-------------------------------------------------------------------------------------------------------------------------------------Private Sub Button_SEND_Click()Dim x As StringIf = "" Then '发送数据不能为空x = MsgBox("发送数据不能为空", 16)Exit Sub------------------------------------------------------------------------------------------------------------------------------------End IfIf Not Then '保证串口打开x = MsgBox("请打开串口", 9)= TrueEnd If= '发送数据For I = 1 To 200 '延时NextEnd SubPrivate Sub Check1_Click()If = 1 Thenx = 1Elsex = 0End IfEnd Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub cmdquit_Click()Open "C:\" For Output As #2Print #2,Close #2EndEnd Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub Form_Load() '端口设置= 1= "9600,n,8,1"= 0= 1024= 512= True= 0= 1= 0= 0= ""= ""End Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub MSComm_OnComm()Select Case ' 检查串口事件 '错误处理Case comEventOverrun= ""= ""Exit SubCase comEventRxOver= ""= ""Exit SubCase comEventTxFull= ""Exit SubCase comEvReceiveDim str As Stringb = Date$a = Time$ ' Mid(Date$, 1, 4) & Mid(Date$, 6, 2) & Mid(Date$, 9, 2)str =If T = 10 Then= "NOW1 " + " " + str + "℃"= ""= ""Open "C:\" For Append As #1Print #1, b + " " + a + " " + str + "℃"Close #1T = 13ElseIf T = 11 Then= ""= "NOW2" + " " + str + "℃"= ""Open "C:\" For Append As #1Print #1, b + " " + a + " " + str + "℃"Close #1T = 13ElseIf T = 12 Then= ""= ""= "NOW3" + " " + str + "℃"Open "C:\" For Append As #1Print #1, b + " " + a + " " + str + "℃"Close #1T = 13Else= + b + " " + a + " " + str + "℃" + " "Open "C:\" For Append As #1Print #1, b + " " + a + " " + str + "℃"Close #1End IfEnd SelectEnd Sub------------------------------------------------------------------------------------------------------------------------------------Private Sub Timer1_Timer()If x = 1 ThenEnd If End Sub。

相关文档
最新文档