㈠ 用Android2.2的Skia库的drawtext为什么显示不出文字
将Android.mk文件中的内容(头文件来源于svn https://skia。googlecode。com/svn/trunk).LOCAL_CXXFLAGS :=LOCAL_C_INCLUDES := \E:/NDKr5/sources/SKIA/include/core \E:/NDKr5/sources/SKIA/include/config \E:/NDKr5/sources/android/frameworks/base/include \E:/NDKr5/sources/android/system/core/include \E:/NDKr5/sources/android/frameworks/base/core/jni/android/graphics \E:/NDKr5/sources/android/dalvik/libnativehelper/include改成:(头文件目录在android2.2 (froyo)源代码的skia中.)E:/NDKr5/sources/android/external/skia/include/core \E:/NDKr5/sources/android/external/skia/include/config \E:/NDKr5/sources/android/frameworks/base/include \E:/NDKr5/sources/android/system/core/include \E:/NDKr5/sources/android/frameworks/base/core/jni/android/graphics \E:/NDKr5/sources/android/dalvik/libnativehelper/include就可以了.已经在模拟器和真机上验证了.
㈡ 我啥我在手机上下载游戏玩的时候说此应用程序没有授权在你的ANDROID设备上使用
拆分词条 androidhttp://..com/q?word=ANDROID&ct=17&pn=0&tn=ikaslist&rn=10&lm=0&fr=search求助编辑网络名片 AndroidAndroid是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。中文名: 安卓、安致 外文名: Android 开发商: Google/开放手持设备联盟 发行商: Google 发行时间: 2008年9月23日 编程语言: C/C++(底层) Java等(应用层) 源码模式: 混合(自由免费,开放源码) 包类型: APK 支持平台: ARM、MIPS、x86 内核类: 整块性核心(Linux) 目录名称来源内置服务开放手持设备联盟版本记录命名规则发行版本发展历史系统架构应用程序(部分)中介软件硬件抽像层内核安全权限机制名称来源 内置服务 开放手持设备联盟 版本记录 命名规则 发行版本发展历史 系统架构 应用程序(部分) 中介软件 硬件抽像层 内核 安全权限机制展开 编辑本段名称来源Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。编辑本段内置服务谷歌移动服务(英文:Google Mobile Service)是谷歌的一项服务,该服务简称“GMS”,指在让用户利用移动电话或其他移动设备使用谷歌搜索、谷歌地图、Gmail、YouTube、Android Market等谷歌服务产品。 谷歌将谷歌移动服务(GMS)内嵌到Android手机系统中,并且对android手机生产商给予不同程度的授权。 GMS是Android操作系统的灵魂,大部分用户使用Android手机,其实就是为了使用谷歌服务。编辑本段开放手持设备联盟开放手持设备联盟(Open Handset Alliance)是美国Google公司于2007年11月5日宣布组建的一个全球性的联盟组织。这一联盟将支持Google发布的手机操作系统或者应用软件,共同开发Android系统的开放源代码。开放手持设备联盟包括手机制造商、手机芯片厂商和移动运营商。编辑本段版本记录命名规则Android 用甜点作为它们系统版本的代号的命名方法开始于 Andoird 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕,甜甜圈,松饼,冻酸奶,姜饼,蜂巢,冰激凌三明治发行版本版本 备注 Android1.1 2008 年9月发布的Android第一版 Android 1.5 Cupcake (纸杯蛋糕) 2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主要的更新如下: 1、拍摄/播放影片,并支持上传到Youtube 2、支持立体声蓝牙耳机,同时改善自动配对性能 3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索 4、GPS性能大大提高 5、提供屏幕虚拟键盘 6、主屏幕增加音乐播放器和相框widgets 7、应用程序自动随着手机旋转 8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件 9、相机启动速度加快,拍摄图片可以直接上传到Picasa 10、来电照片显示 Android 1.6 Donut (甜甜圈) 2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。主要的更新如下: 1、重新设计的Android Market手势 2、支持支持CDMA网络 3、文字转语音系统(Text-to-Speech) 4、快速搜索框 5、全新的拍照接口 6、查看应用程序耗电 7、支持虚拟私人网络(VPN) 8、支持更多的屏幕分辨率。 9、支持OpenCore2媒体引擎 10、新增面向视觉或听觉困难人群的易用性插件 Android2.0/2.0.1/2.1 Eclair (松饼) 2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下: 1、优化硬件速度 2、"Car Home"程序 3、支持更多的屏幕分辨率 4、改良的用户界面 5、新的浏览器的用户接口和支持HTML5 6、新的联系人名单 7、更好的白色/黑色背景比率 8、改进Google Maps3.1.2 9、支持Microsoft Exchange 10、支持内置相机闪光灯 11、支持数码变焦 12、改进的虚拟键盘 13、支持蓝牙2.1 14、支持动态桌面的设计 Android 2.2/2.2.1 Froyo (冻酸奶) 2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。主要的更新如下: 1、整体性能大幅度的提升 2、3G网络共享功能。 3、Flash的支持。 4、App2sd功能。 5、全新的软件商店。 6、更多的Web应用API接口的开发。 Android 2.3 Gingerbread (姜饼) 2010年12月7日,2.3(Gingerbread 姜饼)版本软件开发工具包发布。主要的更新如下: 1、增加了新的垃圾回收和优化处理事件 2、原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。 3、新的管理窗口和生命周期的框架。 4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器 5、支持前置摄像头、SIP/VOIP和NFC(近场通讯) 6、简化界面、速度提升: 7、更快更直观的文字输入: 8、一键文字选择和复制/粘帖: 9、改进的电源管理系统: 10、新的应用管理方式: Android 3.0 Honeycomb (蜂巢) 2011年2月2日, 3.0(Honeycomb 蜂巢)版本主要更新如下: ·优化针对平板 ·全新设计的UI增强网页浏览功能 ·n-app purchases功能 Android 3.1 Honeycomb (蜂巢) 2011年5月11日在Google I/O开发者大会宣布发布,版本主要更新如下: Honeycomb蜂巢(改进3.0BUG) 经过优化的Gmail电子邮箱; 全面支持GoogleMaps 将Android手机系统跟平板系统再次合并从而方便开发者。 任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。 支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。 Android 3.2 Honeycomb (蜂巢) 2011年7月13日发布,版本更新如下: 支持7英寸设备 引入了应用显示缩放功能 Android 4.0 Ice Cream Sandwich (冰激凌三明治) 2011年10月19日 在香港发布, 4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下: 1、全新的ui 2、全新的Chrome Lite浏览器,有离线阅读,16标签页,隐身浏览模式等。 3、截图功能 4、更强大的图片编辑功能 5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序 6、Gmail加入手势、离线搜索功能,UI更强大。 7、新功能People:以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。有望支持用户自定义添加第三方服务。 8、新增流量管理工具,可具体查看每个应用产生的流量。 9、正在运行的程序可以像电脑一样的互相切换 10、人脸识别功能 11、系统优化、速度更快 12、支持虚拟按键,手机可以不再拥有任何按键 13、更直观的程序文件夹: 14、平板电脑和智能手机通用 15、支持更大的分辨率 16、专为双核处理器编写的优化驱动 17、全新的18、增强的复制粘贴功能 19、语音功能 20、全新通知栏: 21、更加丰富的数据传输功能 22、更多的感应器支持 23、语音识别的键盘: 24、全新的3D驱动, 游戏支持能力提升 25、全新的谷歌电子市场 26、增强的桌面插件自定义 Android N.n Jelly Bean “果冻豆” 继“冰激凌三明治”之后的下一版Android系统。 编辑本段发展历史2005年事件 Google收购了成立仅22个月的高科技企业Android。 2007年事件 11月5日,Google公司正式向外界展示Android操作系统。 11月5日,Google与34家手机制造商、软件开发商、电信运营商和芯片制造商共同创建开放手持设备联盟。 2008年事件 5月28日,Patrick Brady于Google I/O大会上提出Android HAL架构图。 8月18日,Android获得美国联邦通信委员会的批准。 9月22日,谷歌正式对外发布第一款Android手机——HTC G1。 9月23日,谷歌发布Android1.0。 9月24日,全球业界都表示不看好Android操作系统,并且声称最多1年,Android就会被Google关闭。 2009年事件 4月30日,Android1.5正式发布。 5月10日,HTC G1和HTC G2市场大卖,成为仅次于iPhone的热门机型。 9月25日,Android1.6正式发布。 9月29日,HTC Hero G3广受欢迎,成为全球最受欢迎的机型。 10月28日,Android 2.0 智能手机操作系统正式发布。 11月10日,由于Android的火热,Android平台出现第一个恶意间谍软件:Mobile Spy,该程序会自动记录用户所输入的任何信息并发送到黑客的邮箱中,还可以视频录下用户的所有操作过程。 2010年事件 1月7日,Google发布了旗下第一款自主品牌手机:Nexus one(HTC G5)。 1月,谷歌与Linux基金会就谷歌修改了Linux内核而产生了矛盾。 2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”上除去,从此,Android与Linux开发分道扬镳。 5月19日,Google正式对外发布Android2.2智能操作系统。 5月20日,Google对外正式展示了搭载Android系统的智能电视-Google TV,该电视为全球首台智能电视。 7月1日,Google宣布正式与雅虎、亚马逊合作,并且在Android上推出多项Kindle服务和雅虎服务。 7月9日,美国NDP集团调查显示,Android系统已占据了美国手机市场28%的份额,全球17%的市场份额。 8月12日,Android平台出现第一个木马病毒:Trojan-SMS.AndroidOS.FakePlayer.a,该木马病毒会伪装成应用程序,当用户不小心安装之后,它便会疯狂地发送短信,使用户的手机开通高额的收费服务。 9月,Android应用数量超过9万个。 9月21日,Google对外公布数据,每日销售的Android设备的新用户数达到20万。 10月26日,Google宣布Android达到第一个里程碑:电子市场上的Android应用数量达到10万个。 12月7日,Google正式发布Android2.3操作系统。 2011年事件 1月,Android应用数量超过20万。 1月,Google对外公布数据,每日Android设备的新用户数达到30万。 2月2日,Android3.0正式发布。 6月,Android在日本的智能手机操作系统市场占有率达到57%。 7月,Android在欧洲的智能手机操作系统市场占有率达到了22.3% 7月,Google对外公布数据,Android每天的新用户达到55万,Android设备用户总数达1.35亿。 8月,谷歌收购摩托罗拉移动。 8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。 8月,Android在韩国的智能手机操作系统市场占有率达到了95%。 8月,Android系统在35个国家市场占有率第一,平均市场占有率达到48%。 8月,Android系统成为亚太地区第一大系统,市场占有率为亚太地区第一大。 9月,数据显示,Android应用数目已经达到48万。 9月,Android在美国的智能手机操作系统市场占有率达到43%。 10月19日,谷歌正式发布Android 4.0操作系统。 11月15日,Android在中国大陆的智能手机操作系统市场占有率达到了58%。 11月18日,美国NPD数据显示,Android和iOS平台上的游戏占有率都首度超过任天堂的DS掌机和索尼的PSP掌机,手机游戏玩家也超过了掌机玩家,游戏开发商更倾向于向Android和iOS手机上开发游戏。 11月18日,谷歌报告显示,通过谷歌服务器激活的Android设备用户总数已经超过2亿,每天通过谷歌服务器激活的新用户数超过55万,而这仅仅是通过谷歌服务器激活的用户设备数。编辑本段系统架构Android是以Linux为核心的手机操作平台,作为一款开放式操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开发式操作系统。 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。 而在Android系统底层方面,Android使用C/C++作为开发语言。应用程序(部分)Java开发方面 Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。 Android结构其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗(Windows),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(Stopped),甚至被系统清除(Kill)。 View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 C/C++开发方面 早期的Android开发只支持Java作为编程语言开发应用程序,因而使得其他语言开发者只能望而却步。2010年4月,谷歌正式对开发者发布了Android NDK,NDK允许开发者使用C/C++作为编程语言来为Android开发应用程序,初版的NDK使得开发者看到了C/C++在Android开发中的希望。 但是,当前版本的NDK在功能上还有很多局限性:NDK并没有提供对应用程序生命周期的维护;NDK也不提供对Android系统中大量系统事件的支持;对于作为应用程序交互接口的UI API,当前版本的NDK中也没有提供。但是相对于初版的NDK,现在的NDK已经进行了许多重大的功能改进。 由此可见,NDK仍然需要完善和发展,相信未来随着NDK的发展,NDK可以做得更多更好。中介软件操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。 Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。 Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。 Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。硬件抽像层Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。 HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 mole ID,就可以取得操作函数。内核Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。 目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。安全权限机制Android本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux用户ID与群组ID)。系统的各部分也分别使用各自独立的识别方式。Linux就是这样将应用与应用,应用与系统隔离开。 系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也可以限制每个URI权限对特定数据段的访问。 Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮件),读写其他应用文件,访问网络或阻止设备待机等。 安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。从用户角度看,一款Android应用通常会要求如下的权限: 拨打电话、发送短信或彩信、修改/删除SD卡上的内容、读取联系人信息、读取日程信息,写入日程数据、读取电话状态或识别码、精确的(基于GPS)地理位置、模糊的(基于网络获取)地理位置、创建蓝牙连接、对互联网的完全访问、查看网络状态,查看WiFi状态、避免手机待机、修改系统全局设置、读取同步设定、开机自启动、重启其他应用、终止运行中的应用、设定偏好应用、震动控制、拍摄图片等。 一款应用应该根据自身提供的功能,要求合理的权限。用户也可以分析一款应用所需权限,从而简单判定这款应用是否安全。如一款应用是不带广告的单机版,也没有任何附加内容需要下载,那么它要求访问网络的权限就比较可疑。智能手机操作系统IOS ▪ Android ▪ Symbian ▪ Windows Mobile ▪ Windows Phone 7 开放分类: 操作系统,google,智能手机,平板电脑,android “android”在英汉词典中的解释(来源:网络词典): androidKK: []DJ: []a.1. 有人类特征的2. (指骨盘)角形窄口的3. 阳性的,男性的,雄性的n.1. (科幻小说中的)机器人
㈢ c#怎么调用c++编的dll文件里函数,有三个文件dll,lib,c++头文件,用dllimport 报错无法加载dll文件
无法加载肯定就是文件路径不对啦
㈣ keil4 如何加载头文件
/*stc12c2052AD 头文件。/*————————————————Byte Registers————————————————*/sfr SP =0x81;sfr DPL =0x82;sfr DPH =0x83;sfr PCON=0x87;sfr TCON=0x88;sfr TMOD=0x89;sfr TL0 =0x8A;sfr TL1 =0x8B;sfr TH0 =0x8C;sfr TH1 =0x8D;sfr SCON=0x98;sfr SBUF=0x99;sfr IE =0xA8;sfr IPH =0XB7; /* 中断优先级扩展寄存器,用于定义扩展中断源的优先级 *//* IPH^7空 IPH^6(PPCA_LVDH)… PCA扩展定时器中断与低电压中断公用 IPH^5(PADC_SPIH)… ADC模数转换与SPI传送结束中断公用 IPH^4(PSH)……… ?? IPH^3(PT1H)…….. IPH^2(PX1H) IPH^1(PT0H) IPH^0(PX0H)*/sfr IP =0xB8; /* 通用中断源的优先级定义寄存器,与IPH合并使用 */sfr PSW=0xD0;sfr ACC=0xE0;sfr B =0xF0;/* —————– P1口IO定义 ——————- *//* P1M0[7~0] P1M1[7~0] 方向作用 *//* 0 0 传统51准双向口模式 *//* 0 1 推挽输出,上拉20mA *//* 1 0 高阻单向输入,AD必须。 *//* 1 1 开漏输出,AD也可以选择 */sfr P1 =0x90; /* P1口地址 */sfr P1M0=0x91; /* P1口方向0 */sfr P1M1=0x92; /* P1口方向1 *//* —————– P3口IO定义 ——————- *//* P3M0[7~0] P3M1[7~0] 方向作用 *//* 0 0 传统51准双向口模式 *//* 0 1 推挽输出,上拉20mA *//* 1 0 高阻单向输入,AD必须。 *//* 1 1 开漏输出,AD也可以选择 */sfr P3 =0xB0; /* P3口地址 */sfr P3M0=0xB1; /* P3口方向0 */sfr P3M1=0xB2; /* P3口方向1 *//*—————– IAP/IAP 功能寄存器 ———— */sfr ISP_DATA =0XE2; /* 收发数据寄存器 */sfr ISP_ADDRH=0XE3; /* 目标操作地址高8位*/sfr ISP_ADDRL=0XE4; /* 目标操作地址低8位*/sfr ISP_CMD =0XE5; /* 操作指令寄存器 */sfr ISP_TRIG =0XE6; /* 触发寄存器 */sfr ISP_CONTR=0XE7; /* 控制寄存器 *//* ————— 新增功能控制寄存器 ————- */sfr AUXR=0X8E; /*新增特殊功能寄存器*//*其中: AUXR^7(T0x12).. 定时器ct0时钟源设定:0_atbit(传统1/12,1_atbit(1:1不分频; AUXR^6(T1x12).. 定时器ct1时钟源设定:0_atbit(传统1/12,1_atbit(1:1不分频; AUXR^5(UARTx6). 串口模式0时时钟设定:0_atbit(传统1/12^1_atbit(1/2 2分频; AUXR^4(EADCI).. ADC中断允许位:0_atbit(禁止,1_atbit(允许 AUXR^3(ESPI)… SPI中断允许位:0_atbit(禁止,1_atbit(允许 AUXR^2(ELVDI).. 低电压中断允许:0_atbit(禁止,1_atbit(允许 5V系统3.7V,3V系统2.4V以下发生中断 AUXR^1/AUXR^0.. 保留*/sfr CLOCK_DIV=0XC7; /* 空闲模式下的时钟分频,可进一步降低功耗 */sfr WDT_CONTR=0XE1; /* 看门狗控制寄存器 *//* 其中: WDT_CONTR^7(WDT_FLAG).. 看门狗溢出标志_atbit(1,可软件清零 WDT_CONTR^6保留 WDT_CONTR^5(EN_WDT)…. 看门狗允许标志_atbit(1 WDT_CONTR^4(CLR_WDT)… 看门狗清零_atbit(1,硬件自动回零 WDT_CONTR^3(IDLE_WDT)..=1空闲模式下继续工作,_atbit(0空闲模式下不工作 WDT_CONTR^2~0(PS2~0)… 看门狗溢出时间设定: 0 0 0 …… 2分频….. @20MHz下 39.3mS 0 0 1 …… 4分频….. @20MHz下 78.6mS 0 1 0 …… 8分频….. @20MHz下 157.3mS 0 1 1 ……16分频….. @20MHz下 314.6mS 1 0 0 ……32分频….. @20MHz下 629.1mS 1 0 1 ……64分频….. @20MHz下 1.25S 1 1 0 …..128分频….. @20MHz下 2.5S 1 1 1 …..256分频….. @20MHz下 5S 其他主频下的时间可以参照上表作相应换算。*/sfr SADDR = 0XA9; /* 从地址,未启用 */sfr SADEN = 0XB9; /* 标识地址,未启用 */sfr SPI_STATUS=0X84; /* SPSTAT SPI状态寄存器 *//* 其中: SPSTAT^7(SPIF)…. SPI 传输完成标志。当一次串行传输完成时,SPIF 置位, 并当ESPI和EA 都置位时产生中断。当SPI 处于主模式且 SSIG_atbit(0 时,如果/SS 为输入并被驱动为低电平,SPIF 也将置位。SPIF标志通过软件向其写入“1”清零。 SPSTAT^6(WCOL)…. SPI 写冲突标志。在数据传输的过程中如果对SPI 数据寄 存器SPDAT 执行写操作,WCOL 将置位。WCOL 标志通过软 件向其写入“1”清零。 SPSTAT^5~0保留*/sfr SPI_CONTR=0X85; /* SPI控制寄存器SPCTL *//* 其中: SPCTL^7(SSIG)…… /SS 忽略。 1:MSTR(位4)确定器件为主机还是从机。 0:/SS 脚用于确定器件为主机还是从机。/SS 脚可作为I/O 口使用(见SPI 主从选择表)。 SPCTL^6(SPEN)…… SPI 使能。1:SPI 使能。0:SPI 被禁止,所有SPI 管脚都作 为I/O 口使用。 SPCTL^5(DORD)…… SPI 数据顺序:1:数据字的LSB(最低位) 最先发送; 0:数据字的MSB(最高位) 最先发送。 SPCTL^4(MSTR)…… 主/从模式选择(见SPI 主从选择表)。 SPCTL^3(CPOL)…… SPI 时钟极性:1:SPICLK 空闲时为高电平。SPICLK 的前时 钟沿为下降沿而后沿为上升沿。0:SPICLK 空闲时为低电平。 SPICLK 的前时钟沿为上升沿而后沿为下降沿。 SPCTL^2(CPHA)…… SPI 时钟相位选择: 1:数据在SPICLK 的前时钟沿驱动,并在后时钟沿采样。 0:数据在/SS 为低(SSIG=00)时被驱动,在SPICLK 的后时钟 沿被改变,并在前时钟沿被采样。 (注:SSIG_atbit(1 时的操作未定义) SPCTL^1~0(SPR1~0)…SPR0/SPR1是SPI 时钟速率选择控制位。 SPR1^SPR0: 0 0 -CPU_CLK/4 0 1 -CPU_CLK/16 1 0 -CPU_CLK/64 1 1 -CPU_CLK/128*/sfr SPI_DATA =0X86; /* SPI数据收发寄存器SPDAT */sfr ADC_CONTR =0XC5; /* ADC控制寄存器 *//* 其中: ADC_CONTR^7(ADC_POWER)..ADC 电源控制位。0:关闭;1:打开. 启动AD 转换前一定要确认AD 电源已打开,AD 转换结束 后关闭AD 电源可降低功耗,也可不关闭。初次打开内部 A/D 转换模拟电源,需适当延时,等内部模拟电源稳定 后,再启动A/D 转换建议启动A/D 转换后,在A/D 转换 结束之前,不改变任何I/O 口的状态,有利于高精度A/D 转换. ADC_CONTR^6~5(SPEED1~0).模数转换器转换速度控制位 SPEED1 SPEED0 A/D 转换所需时间 1 1 210个时钟周期转换一次,CPU 工作频率20MHz 时,A/D转 换速度约 100KHz 1 0 420个时钟周期转换一次 0 1 630个时钟周期转换一次 0 0 840个时钟周期转换一次 ADC_CONTR^4(ADC_FLAG)…模数转换器转换结束标志位,当A/D 转换完成后,ADC_FLAG _atbit( 1,要由软件清0。不管是A/D 转换完成后由该位申请产 生中断,还是由软件查询该标志位A/D 转换是否结束,当A/D 转换完成后,ADC_FLAG= 1,一定要软件清0。 ADC_CONTR^3(ADC_START)…模数转换器(ADC)转换启动控制位,设置为1时,开始转换 ADC_CONTR^2~0(CHS2~0)….CHS0:模拟输入通道选择 CHS2 CHS1 CHS0 模拟输入通道选择 0 0 0 选择 P1.0 作为A/D 输入来用 0 0 1 选择 P1.1 作为A/D 输入来用 0 1 0 选择 P1.2 作为A/D 输入来用 0 1 1 选择 P1.3 作为A/D 输入来用 1 0 0 选择 P1.4 作为A/D 输入来用 1 0 1 选择 P1.5 作为A/D 输入来用 1 1 0 选择 P1.6 作为A/D 输入来用 1 1 1 选择 P1.7 作为A/D 输入来用*/sfr ADC_DATA=0XC6; /* A/D 转换结果特殊功能寄存器 */sfr CCON=0XD8; /* PCA 控制寄存器,支持位寻址后面有定义*//* 其中: CCON^7(CF)……PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。 如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。 CF位可通过硬件或软件置位, 但只可通过软件清零。 CCON^6(CR)……PCA计数器阵列运行控制位。该位通过软件置位, 用来起 动PCA计数器阵列计数。该位通过软件清零, 用来关闭 PCA计数器。 CCON^5~2保留 CCON^1(CCF1)….PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。 该位必须通过软件清零。 CCON^0(CCF0)….PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。 该位必须通过软件清零。*/sfr CMOD =0XD9; /* PCA 模式寄存器 *//* 其中: CMOD^7(CIDL)….计数器阵列空闲控制:CIDL_atbit(0时,空闲模式下PCA计数器继 续工作。CIDL=1时,空闲模式下PCA计数器停止工作。 CMOD^6~3保留 CMOD^2~1(CPS1,CPS0)PCA计数脉冲选择 CPS1 CPS0 选择PCA 时钟源输入 0 0 0,内部时钟,Fosc/12 0 1 1,内部时钟,Fosc/2 1 0 2,定时器0溢出,由于定时器0可以工作在1T方式,所以可以 达到计一个时钟就溢出, 频率反而是最高的, 可达 到Fosc 1 1 3,ECI/P3.4脚的外部时钟输入(最大速率_atbit(Fosc/2) CMOD^0(ECF)…..PCA计数溢出中断使能:ECF_atbit(1时,使能寄存器CCON CF位的 中断。ECF_atbit(0时,禁止该功能。*/sfr CH = 0XF9; /* PCA计数器初始值高8位 */sfr CL = 0XE9; /* PCA计数器初始值低8位 */sfr CCAPM0 =0XDA; /* PCA 比较/ 捕获模块寄存器0 *//* CCAPM0^7保留 CCAPM0^6(ECOM0)…….. 使能比较器。ECOM0= 1时使能比较器功能。 CCAPM0^5(CAPP0)…….. 正捕获。CAPP0= 1时使能上升沿捕获。 CCAPM0^4(CAPN0)…….. 负捕获。CAPN0= 1时使能下降沿捕获。 CCAPM0^3(MAT0)……… 匹配。当MAT0= 1时, PCA计数值与模块的比较/捕获寄 存器的值的匹配将置位CCON寄存器的中断标志位CCF0。 CCAPM0^2(TOG0)……… 翻转。当TOG0= 1时, PCA计数值与模块的比较/捕获寄 存器的值的匹配将使CEXn脚翻转。(CEX0/P3.7) CCAPM0^1(PWM0)……… 脉宽调节模式。当PWM0= 1时, 使能CEXn脚用作脉宽调 节输出。 CCAPM0^0(ECCF0)…….. 使能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0, 用来产生中断。使用的机种基本模式组合: ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 模块功能 0 0 0 0 0 0 0 无此操作 X 1 0 0 0 0 X 16位捕获模式,由CEX0的上升沿触发 X 0 1 0 0 0 X 16位捕获模式,由CEX0的下降沿触发 X 1 1 0 0 0 X 16位捕获模式,由CEX0的跳变触发 1 0 0 1 0 0 X 16位软件定时器 1 0 0 1 1 0 X 16位高速输出 1 0 0 0 0 1 0 8位PWM*/sfr CCAP0H =0XFA; /* 当出现捕获或比较时,它们用来保存16 位的计数值。 当PCA 模块用在PWM 模式中时,它们用来控制输出的 占空比。CCAP0H.CCAP0L分别为高低8位,组合使用 */sfr CCAP0L =0XEA;sfr PCA_PWM0 =0XF2; /* PWM下9位数的最高位 PCA_PWM0^1(EPC0H)….在PWM模式下,与CCAP0H组成9位数 PCA_PWM0^0(EPC0L)….在PWM模式下,与CCAP0L组成9位数 */sfr CCAPM1 =0XDB; /* PCA 比较/ 捕获模块寄存器1,支持位寻址定义在后面 *//* CCAPM1^7保留 CCAPM1^6(ECOM1)…….. 使能比较器。ECOM1= 1时使能比较器功能。 CCAPM1^5(CAPP1)…….. 正捕获。CAPP1= 1时使能上升沿捕获。 CCAPM1^4(CAPN1)…….. 负捕获。CAPN1= 1时使能下降沿捕获。 CCAPM1^3(MAT1)……… 匹配。当MAT1= 1时, PCA计数值与模块的比较/捕获寄 存器的值的匹配将置位CCON寄存器的中断标志位CCF1。 CCAPM1^2(TOG1)……… 翻转。当TOG1= 1时, PCA计数值与模块的比较/捕获寄 存器的值的匹配将使CEXn脚翻转。(CEX1/P3.5) CCAPM1^1(PWM1)……… 脉宽调节模式。当PWMn= 1时, 使能CEXn脚用作脉宽调 节输出。 CCAPM1^0(ECCF1)…….. 使能CCF1中断。使能寄存器CCON的比较/捕获标志CCF1, 用来产生中断。使用的机种基本模式组合: ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 模块功能 0 0 0 0 0 0 0 无此操作 X 1 0 0 0 0 X 16位捕获模式,由CEX1的上升沿触发 X 0 1 0 0 0 X 16位捕获模式,由CEX1的下降沿触发 X 1 1 0 0 0 X 16位捕获模式,由CEX1的跳变触发 1 0 0 1 0 0 X 16位软件定时器 1 0 0 1 1 0 X 16位高速输出 1 0 0 0 0 1 0 8位PWM*/sfr CCAP1H =0XFB; /* 当出现捕获或比较时,它们用来保存16 位的计数值。 当PCA 模块用在PWM 模式中时,它们用来控制输出的 占空比。CCAP1H.CCAP1L分别为高低8位,组合使用 */sfr CCAP1L =0XEB;sfr PCA_PWM1 =0XF3; /* PWM下9位数的最高位 PCA_PWM1^1(EPC1H)….在PWM模式下,与CCAP1H组成9位数 PCA_PWM1^0(EPC1L)….在PWM模式下,与CCAP1L组成9位数 *//*————————————————PCON Bit Values————————————————*/#define IDL_ 0x01#define STOP_ 0x02#define EWT_ 0x04#define EPFW_ 0x08#define WTR_ 0x10#define PFW_ 0x20#define POR_ 0x40#define SMOD_ 0x80/*————————————————TCON Bit Registers————————————————*/sbit IT0=TCON^0;sbit IE0=TCON^1;sbit IT1=TCON^2;sbit IE1=TCON^3;sbit TR0=TCON^4;sbit TF0=TCON^5;sbit TR1=TCON^6;sbit TF1=TCON^7;/*————————————————TMOD Bit Values————————————————*/#define T0_M0_ 0x01#define T0_M1_ 0x02#define T0_CT_ 0x04#define T0_GATE_ 0x08#define T1_M0_ 0x10#define T1_M1_ 0x20#define T1_CT_ 0x40#define T1_GATE_ 0x80#define T1_MASK_ 0xF0#define T0_MASK_ 0x0F/*————————————————P1 Bit Registers————————————————*/sbit P1_0= P1^0;sbit P1_1= P1^1;sbit P1_2= P1^2;sbit P1_3= P1^3;sbit P1_4= P1^4;sbit P1_5= P1^5;sbit P1_6= P1^6;sbit P1_7= P1^7;sbit ADC0= P1^0; /* + Analog input */sbit ADC1= P1^1; /* + Analog input */sbit ADC2= P1^2; /* + Analog input */sbit ADC3= P1^3; /* + Analog input */sbit ADC4= P1^4; /* + Analog input */sbit ADC5= P1^5; /* + Analog input */sbit ADC6= P1^6; /* + Analog input */sbit ADC7= P1^7; /* + Analog input *//* SPI 专用IO */sbit SS = P1^4; /* 主从SPI选择,外部输入P1.4_atbit(0为从机*/sbit MOSI= P1^5; /* 主输出/从输入 */sbit MISO= P1^6; /* 主输入/从输出 */sbit SCLK= P1^7; /* SPI时钟,主方输出,从方接收 *//*————————————————SCON Bit Registers————————————————*/sbit RI = SCON^0;sbit TI = SCON^1;sbit RB8 = SCON^2;sbit TB8 = SCON^3;sbit REN = SCON^4;sbit SM2 = SCON^5;sbit SM1 = SCON^6;sbit SM0 = SCON^7;/*————————————————IE Bit Registers————————————————*/sbit EX0 = IE^0; /* 1_atbit(Enable External interrupt 0 */sbit ET0 = IE^1; /* 1_atbit(Enable Timer 0 interrupt */sbit EX1 = IE^2; /* 1_atbit(Enable External interrupt 1 */sbit ET1 = IE^3; /* 1_atbit(Enable Timer 1 interrupt */sbit ES = IE^4; /* 1_atbit(Enable Serial port interrupt */sbit ET2 = IE^5; /* 1_atbit(Enable Timer 2 interrupt */sbit EA = IE^7; /* 0_atbit(Disable all interrupts *//*————————————————P3 Bit Registers (Mnemonics & Ports)————————————————*/sbit P3_0= P3^0;sbit P3_1= P3^1;sbit P3_2= P3^2;sbit P3_3= P3^3;sbit P3_4= P3^4;sbit P3_5= P3^5;/* P3_6 Hardwired as AOUT */sbit P3_7= P3^7;sbit RXD = P3^0; /* Serial data input */sbit TXD = P3^1; /* Serial data output */sbit INT0= P3^2; /* External interrupt 0 */sbit INT1= P3^3; /* External interrupt 1 */sbit T0 = P3^4; /* Timer 0 外部时钟输入口P3.4 */sbit ECI = P3^4; /* PCA计数器阵列的可选外部时钟输入口P3.4 */sbit T1 = P3^5; /* Timer 1 外部时钟输入口P3.5 */sbit CEX1= P3^5; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/sbit PWM1= P3^5; /* PWM方式时PWM1的输出口P3.5/PCA1反相输出*/sbit CEX0= P3^7; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/sbit PWM0= P3^7; /* PWM方式时PWM0的输出口P3.7/PCA0反相输出*//*————————————————IP 中断优先级寄存器低8位————————————————*/sbit PX0 = IP^0; /* 外部中断0 P3.2 */sbit PT0 = IP^1; /* 定时计数器0中断 */sbit PX1 = IP^2; /* 外部中断1 P3.3 */sbit PT1 = IP^3; /* 定时计数器1中断 */sbit PS = IP^4; /* 通信中断RI或TI *//*————————————————PSW Bit Registers————————————————*/sbit P = PSW^0;sbit FL = PSW^1;sbit OV = PSW^2;sbit RS0 = PSW^3;sbit RS1 = PSW^4;sbit F0 = PSW^5;sbit AC = PSW^6;sbit CY = PSW^7;/*————————————————PCA 控制寄存器CCON Bit Registers ————————————————*/sbit CCF0= CCON^0; /*PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。 该位必须通过软件清零。*/sbit CCF1= CCON^1; /*PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。 该位必须通过软件清零。*/sbit CR = CCON^6; /*PCA计数器阵列运行控制位。该位通过软件置位, 用来起 动PCA计数器阵列计数。该位通过软件清零, 用来关闭 PCA计数器。*/sbit CF = CCON^7; /*PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。 如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。 CF位可通过硬件或软件置位, 但只可通过软件清零。*/