-
AT89S51中断服务子程序的设计
2021-01-19 17:17:41中断服务子程序设计的任务 中断服务子程序设计的基本任务有下列4条: (1)设置中断允许控制寄存器IE,允许相应的中断请求源中断。 (2)设置中断优先级寄存器IP,确定并分配所使用的中断源的优先级。 (3)若是外部... -
单片机彩灯移动实验_MCS-51单片机并行口输出彩灯移动程序举例
2021-01-14 03:15:491.程序结构采用主程序和中断服务子程序结构2.定时中断程序,并行口输出,控制彩灯移动定时器0于方式1,16位,10ms中断一次40H10ms计数单元41H初值为01101101B位地址00H=1定时方式1为10MS:THX=0ECH,TLX=78H3.参考...1.程序结构采用主程序和中断服务子程序结构
2.定时中断程序,并行口输出,控制彩灯移动
定时器0于方式1,16位,10ms中断一次
40H10ms计数单元
41H初值为01101101B
位地址00H=1
定时方式1为10MS:THX=0ECH,TLX=78H
3.参考程序
;
DISPEQU0DE00H;显示子程序入口
;
ORG0000H
START:AJMPMAIN
;
ORG000BH;定时器0中断服务程序入口
AJMPTINT0
;
ORG0030H
MAIN:MOVR0,#39H;显示缓冲区初始化
MAIN_0:MOV@R0,#0
INCR0
CJNER0,#40H,MAIN_0
MOV41H,#01101101B
SETB00H
MOVTMOD,#01H
MOVIE,#10000010B
MOVTH0,#0ECH;10ms:EC78H
MOVTL0,#78H
SETBTR0
MAIN_1:ACALLCONT;主程序循环
SJMPMAIN_1
;
CONT:LCALLDISP;控制程序
RET
;
;定时器0中断服务程序
TINT0:MOVTH0,#0ECH
MOVTL0,#78H
PUSHACC;保护现场
PUSHPSW
INC40H
MOVA,40H
CJNEA,#50,TINT0R
MOV40H,#0
MOVA,41H
MOVC,00H
RRCA
MOV41H,A
MOV00H,C
MOV3FH,A;输出显示缓冲
TINT0R:POPPSW;恢复现场
POPACC
RETI
-
ucosII 信号量使用总结(举例讲解)
2019-04-28 16:47:54概述 该函数用于创建信号量,并对信号量赋予初始计数值。 赋初值 OSSemCreate(INT16U cnt),cnt为信号量的初始计数值。当计数值不为0的时候,OSSemPend会马上得到信号并执行,...中断服务子程序不能调用OSSemCrea...概述
信号量用于:
1.控制共享资源的使用权(满足互斥条件)
2.标志某时间的发生
3.使2个任务的行为同步OSSemCreate 赋初值
OSSemCreate(INT16U cnt),cnt为信号量的初始计数值。当计数值不为0的时候,OSSemPend会马上得到信号并执行,执行成功后cnt数减1。而成功执行一次OSSemPost的时候,cnt数会加1。
举例:cnt的初值赋值5,会传5次信号到OSSemPend。(一般不会这么用,仅仅是展示功能)
应用实例:互斥信号量
作为互斥条件,信号量初始化为1。
实现目标:调用串口发送命令,必须等待返回“OK”字符过后,才能发送下一条命令。每个任务都有可能使用到此发送函数,不能出现冲突!实现方法:
OS_EVENT *uartSend; void main(void) { …. uartSend = OSSemCreate(1); creatTask(task1); creatTask(task2); … } void task1(void) { while(1) { CommSendCmd(“AT\r\n”); OSTimeDlyHMSM(0, 0, 0, 5); } } void task2(void) { while(1) { CommSendCmd(“AT\r\n”); OSTimeDlyHMSM(0, 0, 0, 8); } } void CommSendCmd(char*str) { uint8_t res; OSSemPend(uartSend,0,&err); uartSendCmd(str);//串口发送命令到设备 res = waitResponst(“OK”);//等待返回OK if(res = TIME_OUT) { OSSemPost(uartSend); return ERR_CEND; } else { OSSemPost(uartSend); return 0; } }
分析:任务1第一次在执行CommSendCmd()的时候,由于初始化信号值为1,所以任务1拥有发送权,执行完OSSemPend过后,信号值为0,如果此时,任务2想要发送,由于信号值为0,则任务挂起。当任务1执行完成过后,会执行一句OSSemPost,信号值变成1。如果当前任务2有任务挂起,当收到OSSemPost过后,任务2开始执行,执行完OSSemPend过后,信号值又变成0
注意事项
中断服务子程序不能调用OSSemCreate函数,只能在任务及代码或者多任务启动之前调用。
-
bat批处理文件实现复制、删除、创建文件夹、执行程序、打开文件
2014-12-15 12:28:40上面的/s /e 参数的作用分别是把子目录和空目录都复制过去,一些使用举例和参数说明如下: 1、如只是单纯地复制 E:\ 盘上所有文件到 D:\ 盘上,就输入“ xcopy e:\*.* d: /s /h "就行啦!如果在复制过程中,你不要... -
tcpip详解 卷1 高清晰完整版pdf
2013-03-11 09:38:2626.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 26.5.3 一次一行方式(准行... -
DSP控制器原理及其在运动控制系统中的应用.pdf
2010-05-31 23:20:032.2 中央处理单元 2.3 系统配置和中断服务 2.4 存储器 第3章 DSP控制器的片上外设 3.1 片内锁相环(PLL) 3.2 数字I/O端口 3.3 模拟数字转换器 3.4 串行通信接口 3.5 串行外设接口 3.6 看门狗/实时中断模块 3.7 CAN... -
新编MCS-51单片机应用设计(清晰最新版)
2010-12-07 14:44:50第14章 MCS—51程序设计及实用子程序 14.1 查表程序设计 14.2 数据极值查找和数据排序 14.2.1 数据极值查找 14.2.2 数据排序 14.3 散转程序设计 1.4.3.1 使用转移指令的散转程序 14.3.2 使用地址偏移量表的散转程序 ... -
TCP/IP详解
2012-05-23 22:09:5426.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 26.5.3 一次一行方式(准行... -
TCP/IP详解 卷1:协议--详细书签版
2012-10-17 20:53:5526.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 ... -
TCP/IP详解 卷1:协议--源代码
2012-10-19 12:27:56CruiseYoung提供的带有详细书签的电子书籍目录 ... 该资料是《TCP/IP详解 卷1:协议》的源代码 ... 26.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次一行或行方式 304 26.4.6 同步信号 306 26.4.7... -
ADC809的运用及电路
2010-08-06 20:41:33可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询... -
TCPIP详解--共三卷
2015-11-30 17:17:2126.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 26.5.3 一次一行方式(准行... -
嵌入式Linux 系统原理及应用(基于S3C44B0X嵌入式μCLinux )
2011-09-21 07:59:343.7.4 子程序设计 3.8 混合语言编程 3.8.1 如何在c语言内嵌汇编语言 3.8.2 c与汇编相互调用 小结 习题 第4章 s3c44box硬件结构及功能 4.1 s3c44box简介 4.2 存储器管理 4.2.1 s3c44box存储系统... -
c语言编写单片机技巧
2009-04-19 12:15:17此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且... -
TCP_IP详解卷1
2010-12-29 10:53:5426.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或行方式 304 26.4.6 同步信号 306 26.4.7 客户的转义符 306 26.5 Telnet举例 306 26.5.1 单字符方式 306 26.5.2 行方式 310 26.5.3 一次一行方式(准行... -
操作系统概念(中文版 带书签)
2012-01-06 16:54:031 I/O中断 2. 2. 2 DMA结构 2. 3 存储结构 2. 3. 1 内存 2. 3. 2 磁盘(早期带有软盘) 2. 3. 3 磁带 2. 4 存储层次 2. 4. 1 高速缓存技术 2. 4. 2 一致性与连贯性 2. 5 硬件保护 2. 5. 1 双重... -
Visual.Basic.6大学教程.pdf
2013-02-17 16:32:2613.9 中断模式、Immediate窗口和Debug对象 420 13.10 防止程序错误的第一步 422 13.11 调试策略 422 13.12 调试器 424 13.12.1 Debug菜单和工具栏 424 13.12.2 Locals窗口 428 13.12.3 Watch窗口 429 13.12.4 Call ... -
迅雷7下载工具
2013-04-07 15:36:29用户对使用迅雷资源聚合引擎自行承担风险, 迅雷不做任何形式的保证 , 不保证下载资源能满足用户的要求,不保证资源聚合服务不中断,对资源聚合引擎的安全性、正确性、及时性、合法性,均不做担保。因网络状况、通讯... -
cmd操作命令和linux命令大全收集
2012-04-24 11:58:2376. ciadv.msc------索引服务程序 77. shrpubw--------创建共享文件夹 78. secpol.msc-----本地安全策略 79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 80. services.msc---... -
软件工程教程
2012-07-06 23:10:29删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。 用例图 关系 关联关系 ;依赖关系 ;泛化关系;关系的... -
多媒体教室
2013-06-14 08:10:311. 插入安装光盘后会自动运行安装程序,进入图形安装界面,按提示进行安装,安装程序会自动检测未安装的组件并进行安装(包括加密狗驱动的安装)。 2. 选择安装部件:教师机。 3. 按照安装提示完成安装。 学生机的... -
数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)
2010-04-12 14:23:05(2)数据库数据已经存在,但是无法正常使用,提示错误,都应归属为数据修复,举例说明:SQL SERVER文件打开提示LDF文件损坏,或错误823等等。 数据库恢复实际上就是利用技术手段把不可见或不可正常运行的数据文件恢复... -
微机原理及接口技术
2012-06-03 01:21:154.5.4 子程序设计............................ 113 4.6 DOS/BIOS 功能调用......................... 116 4.6.1 DOS 系统功能调用................ 117 4.6.2 BIOS 功能调用...................... 119 4.7 小结...... -
自己动手写操作系统(含源代码).part2
2010-10-18 19:47:45你会发现理论书籍好像一下子变得无用武之地,你会发现任何一个细节上的理解错误都可能导致自己辛辛苦苦编写的代码运行异常甚至崩溃。 我经历过这一切!我曾经翻遍了一本《操作系统:设计与实现》,也没有找到实现一... -
自己动手写操作系统(含源代码).part1
2010-10-18 19:41:25你会发现理论书籍好像一下子变得无用武之地,你会发现任何一个细节上的理解错误都可能导致自己辛辛苦苦编写的代码运行异常甚至崩溃。 我经历过这一切!我曾经翻遍了一本《操作系统:设计与实现》,也没有找到实现一... -
本工程中举例了 Clock 、Instant、LocalDateTime、和 DateTimeFormatter 的用法。以及一些常用的工具类(Date转LocalDateTime,LocalDateTime转Date,LocalDateTime转指定格式(例如:yyyy-MM-dd HH:mm:ss )的...
-
Oracle 主要配置文件介绍
2007-08-25 10:07:40Oracle 应 用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数 据存放到任意目录下 <br>1.2.4 监听配置文件 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 ... -
德力西产品说明.pdf
2019-10-10 18:41:58如果您对本产品的使用存在疑难或有特殊要求, 可以联系本公司各地办事处或经销商,当然您也可以直接致电我公司总部客户服务中心,我们将竭诚为您服务。 本手册包含0.75kW~5.5kW功率等级的CDI9600系列小功率矢量... -
PHP基础教程 是一个比较有价值的PHP新手教程!
2010-04-24 18:52:44举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,...
-
必得科技首次公开发行股票招股说明书.pdf
-
神通科技首次公开发行股票招股说明书.pdf
-
Linux挂载exfat格式U盘
-
rslogix5000软件工具介绍.pdf
-
matlab即将消失的inline小朋友
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
12.2 布尔函数的表示
-
大整数运算
-
新亚电子首次公开发行股票招股说明书.pdf
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
基于微信的同城小程序、校园二手交易小程序 毕业设计毕设源码使用教程
-
漫画算法-学习笔记(11)
-
2021年软考系统规划与管理师-下午历年真题解析视频课程
-
VC实现teechart时间轴自右向左推移-C++代码类资源
-
P4921 [MtOI2018]情侣?给我烧了!
-
MySQL 多平台多模式(安装、配置和连接 详解)
-
Java Scanner的进阶使用 -04天 学习笔记
-
远程桌面多窗口工具.rar
-
MySQL Router 实现高可用、负载均衡、读写分离
-
【写作技巧】毕业论文如何写目录?