51使用经验
- 格式:doc
- 大小:81.00 KB
- 文档页数:18
51cloundprint个人使用说明书第一章51cloundprint介绍第二章功能导航第三章功能使用网页客户端、微信注册51cloudprint用户、51cloudprint超级云驱动、复印、身份证复印、云打印、PIN码打印、U盘打印、扫描到邮箱、扫描到U盘、扫描到客户端第四章遇到问题处理第一章51cloudprint介绍是提供方便快捷的全球公有云自助文印系统,为每个用户提供便捷的个人文印服务,用户无需预充值、无需注册用户,就能够使用设备上的自助打印、自助复印、自助扫描功能,并通过支付宝、微支付进行现场实时使用实时支付,完全个人需要的文印服务。
51cloudprint开始在中国区布建服务点,我们布建区域将逐步覆盖全国的公共区域,例如:社区服务中心、超市、政府服务中心、政府各类服务机构、高校、图书馆、飞机场、高铁站等等。
第二章功能导航51cloudprint系统功能云端系统终端服务设备文件保留周期收费标准收费标准按每台终端区分的,每台终端可能收费标准不尽相同,你可以通过网页客户端查看每台服务设备的收费标准。
第三章功能使用一、网页客户端1、打开云端网页:2、注册51cloudprint用户第一步:第二步:关注51cloudprint服务公众号后,点云中心,注册自定义的用户名和密码后登陆微信系统,你在51cloudprint注册成功;3、登陆网页客户端方式一、用户名密码登陆方式二、扫码登陆3、网页客户端应用二、微信客户端注册好用户名后,系统会自动绑定你微信号,微信里直接点51云打印---云中心进行各类功能应用;如果你忘记了密码,可以在微信里直接修改新的密码,在登陆各系统功能模块应用;停止使用51cloudprint,在微信51云打印公众号里----个人中心----解除绑定,如果你再次想使用需要用上次的用户名和密码登陆微信51云打印公众号,如果忘记用户和密码就无法继续使用解除绑定的用户号,只能重新注册新的用户名和密码进行使用;三、超级云驱动1、安装51cloudprint超级云驱动按向导安装,直到提示全部安装结束,在安装过程中360等软件提示阻止等情况,请选择完全应许;2、反安装51cloudprint超级云驱动可以通过360等电脑工具软件工具进行卸载可以到软件安装目录C:\51cloudprint目录下进行反安装命令进行卸载3、51cloudprint超级云驱动升级51cloudprint会更据情况提供更高版本的超级云驱动,如果你需要升级到最新版本,请先反安装掉老的版本,在下载最新的安装包进行安装;4、51cloudprint超级云驱动的使用输入自己的用户名和密码或微信扫码登陆通过51cloudprint超级云驱动提交自己需要打印的文件支持全格式文件打印,打印和传统打印方式一样,不改变使用习惯,打印机选择“卓飞虚拟打印驱动”然后选择好自己的打印参数,点击打印点击打印后,驱动会处理文件提交到云服务器;提示打印完成后,你可以到附近的51cloundprint自助点实时付费进行打印文件提取,一次可以提交多个打印任务,然后进行提取;四、Pin码快捷打印提交文件网页方式提交文件请记住,自己的提交文件的PIN码到你可以到附近的51cloundprint 自助点实时付费进行打印文件提取移动方式提交文件51cloundprint自助点机器上会贴个PIN码提交的二维码,你用微信扫码后会在移动设备上打开PIN码网页,然后你进行提交;五、51cloundprint自助点机器上“自助复印”选择办公用户或公众用户选择复印选择复印参数,点开始进行复印复印完成后,可以继续复印其他任务,或点结算输出确认计费无问题后,扫支付码付款,进行内容输出如果你有个人账号预充了钱,或你是企业账号,可以进行账号登陆付款输出六、51cloundprint自助点机器上“自助身份证复印”选择办公用户或公众用户选择身份证复印按界面提示放入身份证正面,点开始按界面提示放入身份证反面,点开始一张身份证复印完成,点结算输出进行扫码付款输出,如果你有个人账号预充了钱,或你是企业账号,可以进行账号登陆付款输出七、51cloundprint自助点机器上“自助云打印”选择办公用户或公众用户选择无线打印选择自己登陆方式二维码扫码登陆方式输入用户名登陆方式登陆成功后,会显示你提交的打印任务,选择自己需要打印的文件,点开始打印,出来支付界面后,选择支付方式,支付成功后打印内容输出;八、51cloundprint自助点机器上“自助USB打印”选择公众用户在复印机USB口插入U盘,选择USB打印会显示你U盘里文件,选择自己需要打印的文件,选择好打印参数,点开始打印,出来支付界面后,选择支付方式,支付成功后打印内容输出;九、51cloundprint自助点机器上“PIN码打印”选择办公用户或公众用户选择无线打印选择提取码输入你PIN码页面提交时的系统给出的PIN码提取码会显示对应得PIN文件,选择好打印参数,点开始打印,出来支付界面后,选择支付方式,支付成功后打印内容输出;十、51cloundprint自助点机器上“自助扫描到邮箱”选择扫描至邮件输入自己的收件邮箱选择好扫描参数,点开始扫描继续扫描或点结算输出,出来支付界面后,选择支付方式,支付成功后扫描内容会发送到你指定的邮箱;十一、51cloundprint自助点机器上“自助扫描到U盘”选择扫描到U盘在复印机上插入U盘,选择好扫描参数,点开始扫描继续扫描或点结算输出,出来支付界面后,选择支付方式,支付成功后扫描内容会发送到插入复印机的U盘;十二、51cloundprint自助点机器上“自助扫描登陆客户端”选择扫描登至登陆客户端选择自己登陆方式二维码扫码登陆方式输入用户名登陆方式选择好扫描参数,点开始扫描继续扫描或点结算输出,出来支付界面后,选择支付方式,支付成功后扫描内容会发送云端;你可以通过网页客户端登陆后下载第四章遇到问题处理1、在自助设备处有异常情况,请联系旁边的维护人员;2、遇到付款成功后,卡纸未出纸情况,请联系旁边的维护人员,或通过支付宝和微信进行退款申请,商户会查询系统记录核对后,退款或充虚拟补助给你;3、未能够解决的问题,可以发邮件至*****************51cloundprint会和商户协调处理;。
51单片机c语言教程在本教程中,我们将学习如何在51单片机上使用C语言进行编程。
无论您是初学者还是有一定经验的开发者,本教程都将对您有所帮助。
首先,我们需要了解一些基本概念。
51单片机是一种基于哈弗微电子公司的MCS-51架构的微控制器。
它采用了Harvard结构,即将程序存储器和数据存储器分开。
它具有各种功能和接口,可以满足不同的应用需求。
在使用C语言进行51单片机编程之前,必须安装相应的开发工具。
这里我们推荐使用Keil C51开发环境。
安装完成后,我们就可以开始编写第一个程序了。
#include <reg51.h>void main(){// 在这里编写您的代码}以上是一个简单的C语言程序模板。
我们使用了reg51.h头文件,该文件包含了与51单片机相关的寄存器定义和常量。
接下来,我们可以开始编写具体的功能代码了。
例如,如果我们想要在LED灯上闪烁一个简单的模式,可以使用以下代码:#include <reg51.h>sbit LED = P1^0;void main(){while(1){LED = 0; // 点亮LEDdelay(1000); // 延时1秒LED = 1; // 熄灭LEDdelay(1000); // 延时1秒}}在这个程序中,我们首先定义了一个LED的控制引脚,然后通过循环实现了闪烁的功能。
在每次循环中,我们先点亮LED,然后通过调用延时函数延时1秒,再将LED熄灭,再次延时1秒。
这样就形成了一个简单的LED闪烁效果。
除了控制IO口外,51单片机还可以实现其他各种功能,如定时器、串口通信等。
这些功能的实现也都可以通过C语言来完成。
希望通过本教程,您可以对51单片机的C语言编程有一个基本的了解。
在以后的学习中,您可以深入研究这些知识,并通过实践来提升自己的能力。
祝您学习愉快!。
单片机学习心得体会(通用11篇)单片机学习心得体会1时光荏苒,转眼间,一个学期已经结束,本学期的单片机综合课程设计也在一周内完成。
俗话说“好的开始是成功的一半”。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题:一是不够细心,比如因为焊错线不小心,以及因为不熟悉课本理论,出现编程错误。
第二,在学习态度方面,这门课是对我学习态度的一个考验。
对于单片机综合课程的实习,我的第一个体会是,作为一名工程技术人员,首先要求的素质肯定应该是严谨。
我们在这次实习中遇到的大部分问题都是因为我们不够严谨。
第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。
还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。
51单片机的心得体会8篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如报告总结、活动总结、个人总结、心得体会、条据文书、合同协议、应急预案、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as report summaries, activity summaries, personal summaries, insights, documentary evidence, contract agreements, emergency plans, teaching materials, essay summaries, and other sample essays. If you would like to learn about different sample formats and writing methods, please pay attention!51单片机的心得体会8篇心得体会让我明白了积极心态对于成功的影响,心得体会让我明白了自我反省和改进的必要性,本店铺今天就为您带来了51单片机的心得体会8篇,相信一定会对你有所帮助。
51qm体验报告近年来,随着互联网的快速发展,各类网络平台应运而生。
其中,51qm是一家备受欢迎的云服务器提供商。
作为一名用户,我有幸体验了51qm的服务,并在此分享我的体验报告。
我要夸赞51qm的服务器稳定性。
在使用过程中,我没有遇到任何服务器崩溃或者宕机的情况。
无论是网站访问速度还是数据上传下载速度,都非常快捷。
这使得我能够高效地进行各项工作,提高了工作效率。
51qm提供了丰富的功能和服务。
无论是网站建设、数据库管理还是数据备份,51qm都能够提供全方位的支持。
我可以根据自己的需求灵活选择不同的服务,而且51qm的界面设计简洁明了,非常易于操作。
无需专业知识,即可轻松完成各项操作。
我还要赞美51qm的数据安全性。
51qm采用了多层次的安全防护措施,保证了用户数据的安全性和隐私性。
无论是数据传输过程还是数据存储过程,都经过了严格的加密处理。
这让我能够放心地将重要数据存储在51qm的服务器上,不用担心数据泄露的风险。
除此之外,51qm还提供了专业的技术支持。
无论是遇到技术问题还是操作困难,我都能够及时得到解答和帮助。
51qm的客服人员经过专业培训,具备丰富的技术知识和解决问题的能力。
他们的耐心和专业性给我留下了深刻的印象。
我对51qm的体验非常满意。
它稳定的服务器、丰富的功能和服务、高水平的数据安全性以及专业的技术支持,让我能够轻松完成各项工作,并且享受到了便捷和高效的云服务器体验。
如果您正在寻找一家可靠的云服务器提供商,我强烈推荐您尝试51qm,相信您也会对它的服务感到满意。
希望我的体验报告能够对您有所帮助,祝愿您在51qm的使用过程中能够获得良好的体验和服务。
51单片机在电子信息类本科教学中的作用浅析1. 引言1.1 51单片机在电子信息类本科教学中的重要性51单片机在电子信息类本科教学中扮演着至关重要的角色。
随着信息技术的不断发展和普及,电子信息类专业的培养也变得愈发重要。
而作为电子信息类专业的核心课程之一,51单片机的学习和掌握成为了学生们的必修课程之一。
通过学习51单片机,学生们可以了解到不同传感器、执行器等各种电子元件的使用方法和控制原理,从而为他们今后的科研和工程实践奠定良好基础。
通过实际的项目实践,学生们可以将理论知识与实践技能相结合,培养他们的团队合作精神和问题解决能力。
51单片机在电子信息类本科教学中的重要性不言而喻。
它不仅是理论知识的运用与实践的桥梁,更是培养学生综合能力和创新精神的重要途径。
应重视51单片机在电子信息类本科教学中的作用,为学生们提供更多实践机会和创新空间,以促进他们在未来的发展中取得更好的成绩。
2. 正文2.1 51单片机的基本概念和特点51单片机,即单片微型计算机(Single Chip Microcomputer),是一种将中央处理器(CPU)、存储器(RAM/ROM)、输入输出接口以及时钟电路等核心部件集成在一颗芯片上的微型计算机。
它集成了计算、控制、数据处理和信息传输等功能于一身,具有体积小、功耗低、成本低、易于控制等特点。
其特点主要包括:单片机内部集成了主要的计算和控制元件,只需要外接电源、晶振和少量外围元件即可工作;具有自带的存储器,可以直接存储程序指令和数据;拥有强大的外设接口,可以连接各种传感器和执行器实现各种功能;具有丰富的编程资源,支持多种编程语言和开发软件;适用于各种应用场景,如嵌入式系统、控制系统、通信系统等。
在电子信息类本科教学中,学习51单片机的基本概念和特点是非常重要的,因为它为学生提供了了解微型计算机原理、掌握嵌入式系统设计、掌握单片机编程等基础知识,为他们未来的职业发展打下坚实的基础。
Easy 51Pro v2.0 制作及使用说明V2.0特性:支持hex文件用户自己可以扩充器件重载的文件对话框,让你不必到处找文件热键支持,调试程序时效率更高灵活的程序设计,可以让整套软件在其他编程器硬件上运行可以支持任何下载线,让你有更多选择设计了串行通讯超时程序,减少了掉线现象下载线,编程器都有相关的调试程序,让你制作时更轻松,提高了成功率开放源代码和详细的原理说明,用户可以根据自己的要求进行修改界面虽然和上一个版本差不多,里面的东西可全部换了,使用还是一样。
点击“自动完成”后,就会一项一项的往下进行。
最优的设置就像上面这个图。
缓冲1会自动刷新上一次你打开的文件,所以你不必每烧一次芯片就去打开一次文件。
你也可以不点击“自动完成”,在该界面下“回车”就是的。
不在该界面下时可以用“热键”,所以每当编译完程序后,直接按热键就可以了(默认热键Ctrl+Shift+P)。
在调试中频繁烧片时这个功能显得很重要。
要把按钮设置成“自动”很简单,用“鼠标右键”点一下就可以了。
操作成功或失败会有不同的声音提示。
成功的声音提示可能会让你编程时更兴奋,效率更高。
如果你觉得声音听起来不爽,就在设置里“False”它吧。
这个下面有提示,一看就知道怎么做了吧。
有4个编程器选择。
Easy 51Pro串行编程器也是新设计的,原来的那个电路中12v/5v切换电路改成了12v/5v/0v切换电路,这样就可以烧AT89C2051了。
不过还要使用一对跳线或开关切换(详细内容在《自制Easy 51Pro 串行编程器》)。
Easy ISP下载线可以是任何一种并口下载线,因为我有个这样的设计:打开程序目录下的EasyIsp.ini文件可以编辑控制ISP时所用到的并口引脚。
文件下面有详细的说明。
编辑这个文件就可以支持你手中现有的下载线了,同时也解决了软件向上兼容的问题,如果你是老版本的用户请把这个文件删除。
但我还是推荐一款我新设计的下载线,就是用的上面这个配置(其实每根线接个电阻比接根导线更容易焊,那就和Atmel的图一样了):其实这个电路就是从Altera 下载线和Atmel 下载线中抄来了一点。
丹佛斯FC51变频器设置指南丹佛斯 FC51 变频器,在工业控制领域那可是个相当重要的角色。
对于不少搞电气控制的朋友来说,把它设置明白可不是一件简单的事儿。
今天,我就来给您详细唠唠这丹佛斯 FC51 变频器的设置指南。
先来说说我自己的一次经历吧。
有一回,我接到一个紧急任务,一家工厂的生产线突然停摆了,原因就是这丹佛斯 FC51 变频器出了问题。
我赶到现场一看,那叫一个乱啊!工人们都着急得不行,老板在旁边也是一脸的焦虑。
我赶紧静下心来,开始检查变频器的设置。
这丹佛斯FC51 变频器的设置,第一步就是要搞清楚您的具体需求。
比如说,您是要控制电机的转速呢,还是要实现精确的扭矩控制?不同的需求,设置的参数可大不一样。
接下来,就是连接硬件啦。
把电源线、控制线啥的都接好,可别接错喽,不然它可不听您使唤。
我记得有一次,一个新手把电源线和控制线弄混了,结果一通电,好家伙,直接冒了一股烟,把大家都吓了一跳。
设置参数的时候,那可得小心谨慎。
比如说,基本频率、最高频率、加速时间、减速时间等等,这些都得根据实际情况来调整。
就像有一次,我给一个风机调速,本来想着加速时间短一点能提高效率,结果设得太短了,风机启动的时候猛地一震,差点把旁边的零件都震掉了。
还有啊,丹佛斯 FC51 变频器有很多保护功能的设置也不能马虎。
过流保护、过载保护、过热保护等等,这些就像是给变频器穿上了一层防护服,能让它在恶劣的工作环境下也能稳稳当当的工作。
在设置过程中,您还得注意一些小细节。
比如说,参数的单位要搞清楚,有的是赫兹,有的是百分比,弄错了可就麻烦啦。
另外,设置完成后,一定要进行测试。
先空载运行一下,看看各项参数是不是正常,电机转得顺不顺。
有一回,我设置完没测试就直接上了生产线,结果运行起来电机抖动得厉害,又得重新返工,浪费了不少时间。
总之,丹佛斯FC51 变频器的设置需要您细心、耐心,按照步骤来,多注意细节,这样才能让它乖乖地为您工作。
希望我的这些经验能对您有所帮助,让您在设置变频器的时候少走弯路,顺顺利利的!。
51客服系统用户使用说明书最新第一篇:51客服系统用户使用说明书最新51客服系统用户使用说明书应用于51在线客服项目51客服系统用户使用说明书Mocha Software Co.,Ltd.北京远大优绩科技发展有限公司2010年03月客户质量团结创新51客服系统用户使用说明书应用于51在线客服项目目录 2 概述..............................................................................3 详述..............................................................................3 2.1 高级高能介绍.........................................................3 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 无限坐席.................................................................3 主动发起.................................................................3 指定客服.................................................................3 客服转接.................................................................3 自定义客服图标...........................................................4 2.1.6 自定义URL...............................................................4 2.1.7自定义LOGO..................................................................4 2.1.10文件传输....................................................................4 2.1.11客户管理....................................................................4 2.1.12流量统计....................................................................4 2.1.13客服考核....................................................................4 2.1.14实时监控....................................................................5 2.1.15英文版......................................................................5 2.1.16访客注册....................................................................5 2.2 功能操作简介.........................................................5 2.2.1 客服管理.................................................................5 2.2.2Mocha Software Co.,Ltd.客户质量团结创新风格设置.................................................................8 51客服系统用户使用说明书应用于51在线客服项目概述51客服是一款企业级的网站实时交流系统,网站访客只需点击网页中的对话图标,无需安装或下载任何软件,就能直接和网站客服人员进行即时交流。
51定时器的使用流程1. 引言在嵌入式系统设计中,定时器是非常重要的模块之一。
而51系列单片机中的定时器,可以帮助我们实现各种定时任务。
本文将介绍51定时器的使用流程,以帮助大家更好地理解和应用这一功能。
2. 51定时器的种类51单片机中,常用的定时器包括定时器0和定时器1。
其中,定时器0是一个8位定时器,而定时器1是一个16位定时器。
它们各自有不同的特点和应用场景。
3. 51定时器的工作原理51定时器的工作原理是通过计数器来实现的。
定时器会根据设定的预分频值、初始计数值以及工作模式进行计数,并在计数满足条件时产生中断或输出相应的事件。
4. 51定时器的使用步骤使用51定时器通常需要以下几个步骤:4.1 设置预分频值定时器的预分频值决定了计数器的工作频率,可以通过寄存器配置来设置。
常见的预分频值有12、4、2以及不分频。
4.2 设置初始计数值定时器的初始计数值决定了定时器开始计数的起点。
可以通过寄存器配置来设置初始计数值。
4.3 选择工作模式定时器的工作模式有多种,可以根据具体需求选择。
常见的工作模式包括定时模式、计数模式以及自动重装模式。
4.4 启动定时器在配置好预分频值、初始计数值和工作模式之后,我们需要将定时器启动。
通过设置相应的寄存器来启动定时器即可。
4.5 处理定时器中断如果我们需要在定时器满足条件时产生中断,我们还需要编写中断服务程序来处理定时器中断。
5. 51定时器的应用场景51定时器在嵌入式系统设计中有广泛的应用。
一些典型的应用场景包括:•测量时间间隔:通过定时器,可以方便地测量两个事件之间的时间间隔。
•脉冲计数器:通过定时器,可以实现脉冲的计数,并根据计数结果进行相应的处理。
•定时触发器:通过定时器,可以实现定时触发某一事件或任务。
•PWM生成器:通过定时器的占空比控制功能,可以生成脉冲宽度调制信号。
6. 总结本文介绍了51定时器的使用流程,包括了定时器的种类、工作原理、使用步骤以及应用场景。
一、混合编程1、模块内接口:使用如下标志符:#pragma asm汇编语句#pragma endasm注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler SRC File” 和“Assembler SRC File ”两个选项来个实例吧:#i ncludevoid main(void){P2=1;#pragma asmMOV R7,#10DEL:MOV R6,#20DJNZ R6,$DJNZ R7,DEL#pragma endasmP2=0;}另:1、把"xx.c"加入工程中,右击"xx.c"选择“options for file"xx.c" 选择“Generate Assembler SRC File”和“Assemble SRC File”打上黑勾有效;2、根据选择的编译模式,把相应的库文件象加"xx.c"一样加入工程中并放在"xx.c"下面,如smail模式下选"keil\c51\lib\c51s.lib"加入工程中,如果要进行浮点运算把"keil\c51\lib\c51fpl.lib"也加入工程中。
在 Keil 安装目录下的 \C51\LIB\ 目录的LIB 文件如下:C51S.LIB - 没有浮点运算的 Small modelC51C.LIB - 没有浮点运算的 Compact modelC51L.LIB - 没有浮点运算的 Large modelC51FPS.LIB - 带浮点运算的 Small modelC51FPC.LIB - 带浮点运算的 Compact modelC51FPL.LIB - 带浮点运算的 Large model3、在"xx.c"头文件中加入优化:比如#pragma OT(4,speed)4、在"xx.c"中加入汇编代码#pragma ASM;Assembler Code Here#pragma ENDASM5、编译生成xx.hex注意:没有做第一步会有如下警告:'asm/endasm' requires src-controlto be active没有做第二步会有如下警告:UNRESOLVED EXTERNAL SYMBOL;REFERENCE MADE TO UNRESOLVED EXTERNAL等没有做第三步会有如下警告:UNDEFINED SYMBOL (PASS-2)二、中断使用interrupt xx using y跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51中0 外部中断01 定时器02 外部中断13 定时器14 串行中断其它的根据相应的单片机有自己的含义,实际上c在编译的时候就是把你这个函数的入口地址放到这个对应中断的跳转地址。
using y 这个y时说这个中断函数使用的那个寄存器组就是51里面一般有4个 r0 -- r7寄存器,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会弹出来节省代码和时间。
三、关于reentrant的使用方法云清燕发表于 2006-11-15 21:27:00我在程序中出现了如下警告:*** WARNING L15: MULTIPLE CALL TO SEGMENTSEGMENT: ?PR?_CRCDATA?PANEL_DISPCALLER1: ?C_C51STARTUPCALLER2: ?PR?UART_RECV?PANEL_DISP*** WARNING L15: MULTIPLE CALL TO SEGMENTSEGMENT: ?PR?ANALOGALLBECKON?PANEL_DISPCALLER1: ?C_C51STARTUPCALLER2: ?PR?UART_RECV?PANEL_DISP*** WARNING L15: MULTIPLE CALL TO SEGMENTSEGMENT: ?PR?SWITCHALLBECKON?PANEL_DISPCALLER1: ?C_C51STARTUPCALLER2: ?PR?UART_RECV?PANEL_DISP我的程序编译出来就这3个警告,但是程序可以正常下载运行。
但是我觉得有这些警告会使程序存在bug。
从字面上看是它的意思是我程序中接受函数UART_RECV()多调用了analogAllBeckon()、switchAllBeckon()。
因为51的普通函数是不可重入的,变量放在固定的地址,两个函数同时运行时,就会修改同一个变量,从而导致结果错误。
于是我在analogAllBeckon()、switchAllBeckon()函数后面加了void analogAllBeckon()reentrant{//All Analog data beckon使程序消除了警告。
这种方法是表明函数是可被多哥任务调用而不修改函数里边的变量值,以此来实现函数的重入性。
关于reentrant的使用keil的官方论坛上有详细的讨论.Andy Neil(官方工程师)建议"Are you sure that you really need to make everything reentrant?...A reading of the Keil app notes & knowledgebase articles on this subject showed that it was not necessary. "由于每一次调用被reentrant声明的函数都要把函数的参数和内部变量压栈,所以很容易使堆栈区溢出,S52只有256Bytes的data段,一个简单的函数如果有一个参数三个内部变量,则需要压栈4字节以上,这还不包括函数调用堆栈.reentrant其实并不是适合低端的单片机,keil论坛上有人说对于那些有KB 以上RAM的单片机reentrant才适合.四、变量声明有关在51系列中data,idata,xdata,pdata的区别 data:固定指前面0x00-0x7f 的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM 的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。
这个比较特殊,而且C51好象有对此BUG, 建议少用。
但也有他的优点,具体用法属于中级问题,这里不提。
startup.a51的作用和汇编一样,在C中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned char data xxx="100";,那startup.a51中就会有相关的赋值。
如果没有=100,startup.a51就会把他清0。
(startup.a51==变量的初始化)。
这些初始化完毕后,还会设置SP指针。
对非变量区域,如堆栈区,将不会有赋值或清零动作。
有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。
比如掉电保护的时候想保存一些变量, 但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。
, 为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性。
五、类型有关用bit能够定义一个变量,用sbit却不行,sbit能够定义端口。
【规则5】上电时对系统进行检测。
上电时对系统中进行检测是单片机程序中的一个良好设计。
在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。
很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。
另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。
比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。
外部RAM 如果存在问题,程序通常都会成为一匹脱缰的野马。
因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM 进行检测。
检测内容包括:1)检测RAM 中的单元。
这主要通过写入和读出的数据保持一致。
2)检测单片机与RAM 之间的地址数据总线。
总线即没有互相短路,也没有连接到“地”上。
另外,很多芯片,都提供了测试的方法。
如串行通信芯片UART,都带环路测试的功能。
【规则6】按EMC 测试要求设计硬件。
EMC 测试要求已经成为产品的必需。
有很多的文章关于这方面的。
1.3 软件编程和调试【规则7】尽可能使用Small 模式编译对比起Large模式和Compact 模式,Small 模式能生成更为紧凑的代码。
在Small 模式下,C51 编译器将没有使用关键词,如idata、pdata、xdata特殊声明的变量通通放在data单元中。
在编程中,对于在的数据区,可以指定放在外部存储器中。
【规则8】在仿真前做好充分的准备单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。
很多时候,没有仿真器却能促使工程师写出更高质量的程序。
也许在硬件仿真调试之前,下面准备工作将会对你有用:1)程序编完后,对代码仔细逐行检查。
检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。
检查代码是否符合编程规范。
2)对各个子程序进行测试。
测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。
3)如果代码有修改,再次对代码进行检查。
4)有可能的话,进行软件仿真——Keil C 的软件仿真功能十分强大。
软件仿真可以防止因硬件的错误,如器件损坏、线路断路或短路,而引起调试的错误。
5)开始硬件仿真。
【规则9】使用库函数重用代码,尤其是是标准库的代码,而不是手工编写你自己的代码。