Ⅰ 一、实验目的 1、掌握CCS集成开发环境基本操作。 2、掌握汇编语言程序开发步骤。 3、掌握各种程序调试手段
odsp.com/bbs/forum.php?mod=viewthread&tid=6922&extra=&page=1" target="_blank">
各版本都有,需要先注册。 推荐下,这是个不错的dsp学习网站。
我这里有CCS3.1,500多M,无法发邮箱,有旺旺的话加我发给你。lsaqy
Ⅱ 数据库的管理 实验过程或源代码 实验结论及心得
《Visual FoxPro数据库基础教程实践与题解》是《Visual FoxPro数据库基础教程》配套教材。全书包括4部分内容:第1部分为《Visual FoxPro数据库基础教程》的习题与参考答案;第2部分为VisualFoxPro8.0的安装、配置和课程本身的上机实验安排,介绍了指导学生上机实验时常见调试程序的基本操作,并根据教材内容提供了10个配套实验;第3部分为VisualFoxPro8.0数据库实训指导及为初学者提供的3个典型的实践案例;第4部分为6套模拟试题和参考答案,其中包括2套上机操作试题及参考答案。《Visual FoxPro数据库基础教程实践与题解》结构合理、内容新颖、深度适宜、实用性强,不仅可以作为《Visual FoxPro数据库基础教程》的参考书,也可以作为其他Visual FoxPro数据库教材的参考书。
《Visual FoxPro数据库基础教程实践与题解》适合作为高等院校本科、专科学生学习Visual FoxPro数据库课程的参考书,也可作为数据库编程人员和信息管理等相关领域的技术工作者自学与参考用书。
Ⅲ Access数据库实训心得
持续一个月的数据库实训,让我参与了软件工程化的开发过程。其中体会最深的便是我们这个实训网的几个之最:一.项目最大:项目大是因为我们这个事业起点网站涉及到用户众多-高校,企业,学生,老师,专家,第二个原因是网站的功能多-用户管理,网上实习,网上竞赛,毕业实习设计,项目管理,人才库管理,人才推荐,搜索 ... 项目大很容易造成系统范围的泛滥,在我们的开发初期,由于需求不太明确,功能实现没有重点,造成了需求范围的扩大,给项目开发进度造成了严重的滞后性。然后我们召开了会议讨论了这个问题,一致认同先把项目的基本功能实现,将网站的基本架构搭建起来,最后再在这个基础上继续增加我们网站的其他功能。因此在这个过程中,我深刻体会到了软件工程初期阶段的需求分析以及概要设计的重要性,这两个文档是指导我们后期开发的最重要的依据。 二.数据库表最多:如此庞大的系统,就需要庞大的数据库来支持,所以项目大的直接后果就是我们的数据库表特别多,而且表与表之间的依赖关系也复杂,实体类之间的关系众多,设计起来有一定的难度。数据库的另外一个问题是-数据表的属性,数据表属性的设计完全是依赖于我们刚开始做的需求分析文档,如果需求分析不完整的话,就会造成数据库表属性的缺失,从用户的角度看,就会觉得你的系统提供的数据不够全面,信息量小。 三.开发团队最大:我们团队一共有十四个人,这个对于我们的项目经理来说,是一个相当严峻的问题,毕竟十四个人的团队相当于其他几个小组加起来的人数总和,管理起来有相当大的难度。对于我们这些小组成员来说,由于沟通渠道太多,造成了我们项目中遇到问题,不知道去跟哪个小组成员沟通。为了解决这个问题,我们在团队中又选出了三个小组长,小组成员遇到问题,先去咨询小组长,然后小组长提供反馈信息。 四.项目各个模块间藕合度高:网站涉及的各个功能模块之间的联系紧密,模块之间的接口设计的好坏是项目最终集成成功与否的最重要因素。用户管理这一个部分要为每个模块提供接口,主要是用户的编号以及用户的类型等。每个页面之间的链接也是其中重要的模块接口。这个问题由于我们前期做好了充分的沟通以及按照概要设计中的接口说明去设计自己的模块,所以后期的模块整合没有遇到什么太大的不兼容性等问题。 接下来就谈谈我这一个月中的工作: 需求分析阶段:需求分析阶段我完成了网上竞赛模块的需求分析,其中遇到的主要问题是阅读材料后发现网上实习,网上竞赛,毕业设计指导这几个模块的功能是类似的,提取需求分析后不够明确,经过几次跟汤老师的交流后,确定了这几个模块之间的具体差别,网上竞赛模块的基本需求也大致确定了,网上竞赛模块的基本功能就是学生通过网站报名参加竞赛,企业审核通过后,专家对作品进行评分,排名。 概要设计阶段:在需求分析的基础上,对网上竞赛模块进行了比较具体的概要设计,流程图(IPO图以及用例图);这个阶段的主要难点是对网上竞赛业务流程的描述,如何实现学生报名,企业发布,专家评审的步骤操作,与及跟其他模块对该模块的限制。 数据库设计阶段:我负责整合初步数据库设计说明书,分配组员按照各自的功能模块的具体需求设计自己模块需要的数据表,然后对这些数据表进行整合。在这个过程中遇到的问题就是数据库实在是太大了,最后下来一共有30多张表,表与表之间的关系复杂,关联性大,需要设置的外键较多,很难将所有的属性字段给提取出来,属性的类型设置也是一个问题,采用数值型还是采用字符串性在数据库设计中尤为重要,因为在后台搜索方面,数值型比较快捷,而在数据显示方面,字符串型又有直接读出不用转换的好处。每个表的主键我们采用了用实体的编号去标记它,因为这样实体间关联起来会更加简单。数据库的设计关键是要对整个项目的整体的把握,并且要细化对每个实体类的具体属性要求。 详细设计阶段:我觉得是最重要的一个方面,一个完整的详细设计说明应该可以帮助程序员完成具体的实现,程序员可以不用考虑模块之间的耦合问题,只需要将单一的功能按照逻辑顺序编写出来就可以了。网站整体构架搭好了,我们就可以在里面填充自己的功能了。但是因为时间太仓促了,我们这个阶段也就缩水了,带来后面的问题就是后期代码编写的时候比较混乱,函数接口较难统,界面风格多样化。这个阶段,我的主要工作是跟队友一起设计出了网上竞赛模块的学生,企业,管理员,高校以及专家的界面。 编码阶段:我们是用ASP.net开发的,主要任务就是从工具中选出你想要的控件,然后在控件响应函数中填充代码,完成相应的事件响应。这里遇到的最大问题是页面的排版问题,因为自己是第一次开发网站,造成了自己设计的界面风格单调,不太美观,现在就尽量做到页面的整齐。这个阶段主要做的就是:写代码→编译→调试→写代码。 这一个月中我学到了很多东西,技术方面就是学会了用ASP.Net编写网站,最重要的是让我经历了软件工程化的所有阶段,让我对整个软件工程有了感性的认识,而且将大学三年所学到的知识进行了一次系统的串联,更重要的是学会了如何跟项目团队中的成员沟通问题,这是一个宝贵的实践经验。
Ⅳ 有关dsp芯片的菜鸟问题
我也不懂,以下是我搜集的,希望对你有帮助
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器具,其主机应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
单片机的应用领域 :
1. 单片机在智能仪器仪表中的应用;
2. 单片机在工业测控中的应用;
3. 单片机在计算机网络和通讯技术中的应用;
4. 单片机在日常生活及家电中的应用;
5. 单片机在办公自动化方面。
DSP比单片机贵
你说的是其中的一部分知识,是DSP处理的信息的原理。
要向学习DSP的硬件开发,还要学习微机原理,由单片机系统的设计经验最好。
还有就是DSP的开发环境,也就是CCS,要掌握常用的编程语言,有汇编语言和c语言的编程经验最好.
首先要了解DSP的特点。
数字信号处理相对于模拟信号处理有很大的优越性,表现在精度高、灵活性大、可靠性好、易于大规模集成等方面。随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速发展,数字信号处理技术也发生着日新月异的变革。实时数字信号处理技术的核心和标志是数字信号处理器。自第一个微处理器问世以来,微处理器技术水平得到了十分迅速的提高,而快速傅立叶交换等实用算法的提出促进了专门实现数字信号处理的一类微处理器的分化和发展。数字信号处理有别于普通的科学计算与分析,它强调运算处理的实时性,因此DSP除了具备普通微处理器所强调的高速运算和控制功能外,针对实时数字信号处理,在处理器结构、指令系统、指令流程上具有许多新的特征,其特点如下:
(1) 算术单元
具有硬件乘法器和多功能运算单元,硬件乘法器可以在单个指令周期内完成乘法操作,这是DSP区别于通用的微处理器的一个重要标志。多功能运算单元可以完成加减、逻辑、移位、数据传送等操作。新一代的DSP内部甚至还包含多个并行的运算单元。以提高其处理能力。
针对滤波、相关、矩阵运算等需要大量乘和累加运算的特点,DSP的算术单元的乘法器和加法器,可以在一个时钟周期内完成相乘、累加两个运算。近年出现的某些DSP如ADSP2106X、DSP96000系列DSP可以同时进行乘、加、减运算,大大加快了FFT的蝶形运算速度。
(2) 总线结构
传统的通用处理器采用统一的程序和数据空间、共享的程序和数据总线结构,即所谓的冯•诺依曼结构。DSP普遍采用了数据总线和程序总线分离的哈佛结构或者改进的哈佛结构,极大的提高了指令执行速度。片内的多套总线可以同时进行取指令和多个数据存取操作,许多DSP片内嵌有DMA控制器,配合片内多总线结构,使数据块传送速度大大提高。
如TI公司的C6000系列的DSP采用改进的哈佛结构,内部有一套256位宽度的程序总线、两套32位的数据总线和一套32位的DMA总线。ADI公司的SHARC系列DSP采用超级哈佛结构(Super Harvared Architecture Computer),内部集成了三套总线,即程序存储器总线、数据存储器总线和输入输出总线。
(3) 专用寻址单元
DSP面向数据密集型应用,伴随着频繁的数据访问,数据地址的计算也需要大量时间。DSP内部配置了专用的寻址单元,用于地址的修改和更新,它们可以在寻址访问前或访问后自动修改内容,以指向下一个要访问的地址。地址的修改和更新与算术单元并行工作,不需要额外的时间。
DSP的地址产生器支持直接寻址、间接寻址操作,大部分DSP还支持位反转寻址(用于FFT算法)和循环寻址(用于数字滤波算法)。
(4) 片内存储器
针对数字信号处理的数据密集运算的需要,DSP对程序和数据访问的时间要求很高,为了减小指令和数据的传送时间,许多DSP内部集成了高速程序存储器和数据存储器,以提高程序和数据的访问存储器的速度。
如TI公司的C6000系列的DSP内部集成有1M~7M位的程序和数据RAM;ADI公司的SHARC系列DSP内部集成有0.5M~2M位的程序和数据RAM,Tiger SHARC系列DSP内部集成有6M位的程序和数据RAM。
(5) 流水处理技术
DSP大多采用流水技术,即将一条指令的执行过程分解成取指、译码、取数、执行等若干个阶段,每个阶段称为一级流水。每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等操作,从而在不提高时钟频率的条件下减少了每条指令的执行时间。
(6) DSP与其它处理器的差别
数字信号处理器(DSP)、通用微处理器(MPU)、微控制器(MCU)三者的区别在于:DSP面向高性能、 重复性、数值运算密集型的实时处理;MPU大量应用于计算机;MCU则适用于以控制为主的处理过程。
DSP的运算速度比其它处理器要高得多,以FFT、相关为例,高性能DSP不仅处理速度是MPU的 4~10倍,而且可以连续不断地完成数据的实时输入/输出。DSP结构相对单一,普遍采用汇编语言编程,其任务完成时间的可预测性相对于结构和指令复杂(超标量指令)、严重依赖于编译系统的MPU强得多。以一个FIR滤波器实现为例,每输入一个数据,对应每阶滤波器系数需要一次乘、一次加、一次取指、二次取数,还需要专门的数据移动操作,DSP可以单周期完成乘加并行操作以及3~4次数据存取操作,而普通MPU完成同样的操作至少需要4个指令周期。因此,在相同的指令周期和片内指令缓存条件下,DSP的运算送到可以超过MPU运算速度的4倍以上。
正是基于 DSP的这些优势,在新推出的高性能通用微处理器(如Pentium、Power PC 604e等)片内已经融入了 DSP的功能,而以这种通用微处理器构成的计算机在网络通信、语音图像处理、实时数据分析等方面的效率大大提高。
谈一点学dsp的心得
因为课题需要,所以跟dsp打上了交道。大概从今年的8月份开始了解dsp。
那个时候中文书籍好像不是很多,就从网上下载ti的一些基本手册和几本大
黄皮书。因为以前基本没接触过,所以没搞dsp之前觉得dsp好深奥好难,看
了一段时间书以后,开始使用ccs仿真一些程序。现在回头看看ccs的软仿真
一般只能仿真算法的对错,对于算法的效率和其他一些性能的仿真基本没有
什么意义。可惜刚上手的时候我对这个不太清楚,就一直在ccs的软仿真上
浪费了太多时间,总想通过ccs下的profiler观测值来提高程序效率,结果
和后来在实际板子上跑出来的效果大相径庭。大概到了国庆假期结束,开始
画电路板,11月初拿到电路板开始漫长的调试过程。早听人说过调硬件是一
件很苦恼又很无奈的事,因为好多问题没有道理可讲。第一块板子是一块小
的实验板,制版焊接到调试一次通过,我就感觉调试硬件没什么特别难的。
结果后来的事实让我体验到了调试硬件的艰苦。第二块板子也很快做完了,
结果上电后总进不去ccs。折腾了两天,挨个管脚测,后来又和第一次做得
板子进行比较,发现一些中断引脚没有拉高,估计可能是这方面的原因。把
这些中断管脚拉高以后,ccs顺利进去了。后来又遇到了很多问题,每次都要
花上两三天时间才能把问题找出来。到现在电路基本能跑起来,但还有些不太
稳定,原因还需要慢慢琢磨。
在调试过程中,能多找一些身边的高手问就尽量找,这样有两个好处,一
能节省你的时间,二可以从高手那里得到一些经验。其次如果电路在调试过程
中老出问题,先检查程序,确认程序没有问题以后,在查硬件电路,这样一个
顺序效率比较高。再就是多留意一下bbs上的信息,有的信息可能现在对你
没多少用处,但是可能在以后会用到。
还有一些具体经验,以后有时间在总结了 *^_^*
学习DSP可能需要时间很长,不是短期可以解决的。
我的建议:
1。看网上资料;
2。用DSK来练手;
3。如果你连硬件经验都没有,那就得先练焊板子,哈哈
4。找人请教
我的唯一感受,如果你想学深些的话:
1.多看TI的pdf,多多宜善,权威而且全面
2.硬件上,多做项目,包括单片机的、一般电路的都行
3.软件上,一般的编程不说了,编译原理之类的对混合编程很有帮助的
4.其它东西,就是那些随着DSP的出现才流行的东西,如DSP/BIOS,CPLD技术等
其实也没什么诀窍,我现在还是照着上面学,离目标还差得远
Ⅳ c语言实验报告心得
c语言实验心得:
1、只有频繁用到或对运算速度要求很高的变量才放到data区内,如for循环中的计数值。
2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区。
3、常量放到code区,如字库、修正系数。
4、逻辑标志变量可以定义到bdata中。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。这样可以大大降低内存占用空间。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;
6、确保程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil做得很愚蠢,但也没办法。
7、如果想节省data空间就必须用large模式。
将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。
8、使用指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为: char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。
以前没搞过C51,大学时代跟单片机老师的时候也是捣鼓下汇编,现在重新搞单片机,因为手头资料不多,找到一些C51的程序,发现里面有这些关键字,不甚明了,没办法只好找了下,发现如下描述:
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。
在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,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。
三、有关单片机ALE引脚的问题
"单片机不访问外部锁存器时ALE端有正脉冲信号输出,此频率约为时钟振荡频率的1/6.每当访问
外部数据存储器是,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲."这句话是不是有毛
病.我觉得按这种说法,应该丢失3个ALE脉冲才对,我一直想不通是怎么回事,希望大虾们帮帮我.
小弟感激涕零.
答:
其他所有指令每6个机器周期发出一个ALE,而MOVX指令占用12个机器周期只发出一个ALE
四、如何将一个INT型数据转换成2个CHAR型数据?
经keil优化后,char1=int1/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一样的。
五、在KEIL C51上仿真完了,怎样生成HEX文件去烧写??
右键点项目中Target 1,选第二个,在OUTPUT中选中CREAT HEX
六、typedef 和 #define 有何不同??
typedef 和 #define 有何不同》》》 如
typedef unsigned char UCHAR ;
#define unsigned char UCHAR ;
typedef命名一个新的数据类型,但实际上这个新的数据类型是已经存在的,只不过是定义了
一个新的名字.
#define只是一个标号的定义.
你举的例子两者没有区别,但是#define还可以这样用
#define MAX 100
#define FUN(x) 100-(x)
#define LABEL
等等,这些情况下是不能用typedef定义的
七、请问如何设定KELC51的仿真工作频(时钟)
用右键点击左边的的target 1,然后在xtal一栏输入
八、不同模块怎样共享sbit变量,extern不行?
把SBIT定义单独放到一个.H中,每个模块都包含这个.h文件
九、C51中对于Px.x的访问必须自己定义吗?
是的。
如sbit P17 = 0x97;即可定义对P1.7的访问
十、SWITCH( )语句中表达式不可以是位变量对吗?
可以用位变量:
#include
#include
void main()
{
bit flag;
flag=0;
switch(flag)
{
case '0':{printf("0\n");break;}
case '1':{printf("1\n");break;}
default:break;
}
}
bit 变量只有两种状态,if 语句足够啦,!!!
十一、const常数声明占不占内存???
const 只是用来定义“常量”,所占用空间与你的定义有关,如:
const code cstStr[] = {"abc"};
占用代码空间;而如:
const char data cstStr[] = {"abc"};
当然占用内存空间。
另外,#define 之定义似乎不占用空间。
十二、philips的单片机P89C51RD+的扩展RAM在C51中如何使用?
试一试将auxr.1清0,然后在c语言中直接声明xdata类型的变量
十三、BUG of Keil C51
程序中用如下语句:
const unsigned char strArr[] = {"数学"};
结果发现strArr[] 内容为 {0xCA,0xD1,0xA7},真奇怪!
凡是有0xfd,则会通通不见了,所以只能手工输入内码了,例如 uchar strArr[]=
{0xCA,0xfd,0xd1,0xa7}(用Ultraedit会很方便)。
十四、Keil C51中如何实现代码优化?
菜单Project下Option for target "Simulator"的C51.
看到Code optimization了吗?
十五、请教c的!和 ~ 符号有甚区别??
!是逻辑取反,~是按位取反。
十六、c51编程,读端口,还要不要先输出1?
我怎么看到有的要,有的不要,请高手给讲讲,到底咋回事?谢了
要输出1的,除非你能保证之前已经是1,而中间没有输出过其他值。
十七、当定时器1(T1)用于产生波特率时,P3^5还是否可以用作正常的I/O口呢?
p3.5完全可以当普通的io使用
十八、C51中 INT 转换为 2个CHAR?
各位高手:
C51中 INT 转换为 CHAR 如何转换诸如:
X = LOW(Z);
Y = HIGH(Z);
答:
x=(char)z;
y=(char)(z>>8);
十九、如果我想使2EH的第7位置1的话,用位操作可以吗?
现在对位操作指令我一些不太明白请各位多多指教:
如 SETB 07H 表示的是20H.7置1,对吗?(我在一本书上是这么看到的)
那么如果我想使2EH的第7位置1的话,象我举的这个例子怎么表示呢?谢谢!
SETB 77H
setb (2eh-20h)*8+7
20h-2fh每字节有8个可位操作(00h-7fh),其它RAM不可位直接操作
二十、char *addr=0xc000 和char xdata *addr=0xc000有何区别?
char *addr=0xc000;
char xdata *addr=0xc000;
除了在内存中占用的字节不同外,还有别的区别吗?
char *addr=0xc000; 是通用定义,指针变量 addr 可指向任何内存空间的值;
char xdata *addr=0xc000; 指定该指针变量只能指向 xdata 中的值;
后一种定义中该指针变量(addr)将少占用一个存储字节。
uchar xdata *addr=0xc000;指针指向外ram;
如果:data uchar xdata *addr=0xc000;指针指向外ram但指针本身存在于内ram(data)
中
以此类推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;
data uchar idata *addr=0xa0;.........
二十一、while(p1_0)的执行时间?
假设,P1_0为单片机P1口的第一脚,请问,
while(P1_0)
{
P1_0=0;
}
while(!P1_0)
{
P1_0=1;
}
以上代码,在KEIL C中,需要多长时间,执行完。能具体说明while(P1_0)的执行时间吗?
仿真运行看看就知道了,
我仿真了试了一下,约14个周期
二十二、怎样编写C51的watchdog程序?
各位大虾,我用KEIL C51 编写了一个带外部开门狗的程序,可程序无法运行起来,经过查
找,发现程序在经过C51编译后,在MAIN()函数的前部增加了一端初始化程序,等到进入
主程序设置开门狗时,开门狗已经时间到,将我的程序复位了,请问我怎样才能修改这一端
初始花程序,使他一运行,就设置开门狗?
可以在startup.a51中加入看门狗刷新指令,当然用汇编,然后重新编译startup.a51
,将他和你的程序连接即可。新的startup.a51会自动代替系统默认的启动模块。
二十三、keil C51 怎样把修改的startup.a51 加到工程文件中
直接加入即可
注意不要改动?STACK,?C_START,?C_STARTUP等符号。startup.a51直接加入项目,不用修改也可。可在内面自己修改汇编的一些限制或堆栈指针。
二十四、关于波特率的设置
我在设定串口波特率时发现一个问题:在晶体震荡器为11.0592MHz时,若设9600BPS的话,
TH1=0XFD,TL1=0XFD,而要设19200BPS的话,TH1、TL1有否变化,如果没变,为什么?
如果变了,又为什么?(因为我看书上俩个是一样的),希望大家点拨。
答:
当电源控制寄存器(PCON)第BIT7(SMOD)为1时波特率加倍。
TH1和TL1的值不变.
二十五、如何在C中声明保留这部分RAM区不被C使用?
我不知道在C源程序中怎么控制这个,但在汇编程序中加入下面一段就行:
DSEG AT 20H
AA: DS 10
这样C51就不会占用20H--29H了
或者在c51里这样定义:
uchar data asm_buff[10] _at_ 0x20;
二十六、问浮点运算问题
我在用C51时发现它对传递浮点参数的个数有限制,请问:
1)参数是以全局变量的形式传递的,请问以全局变量的形式传递的参数也有限制吗?
2)这种传递浮点参数的限制有多少呢?
3)float*float的结果是float类型还是double类型?能否直接赋值给float类型的变量?
答:
由于KEIL C51的参数传递是通过R0-R7来传递的,所以会有限制。
不过KEIL提供了一个编译参数,可以支持更多参数的传递。具体
的内容见KEIL的PDF文档。
我建议你把多个要传递的参数定义到指针或结构体中去,传递参
数通过指针或结构进行,这样好一些。
第3个问题回答是YES,你自己试试不就知道了。
二十七、如何在某一个地址定义ram
用_at_ 命令,这样可以定位灵活一点的地址
uchar xdata dis_buff[16] _at_ 0x6020 ;//定位RAM
将dis_buff[16]定位在0x6020开始的16个字节
二十八、keil c中,用什么函数可以得到奇偶校验位?
例如32位数据,将四个字节相互异或后检查P即可,若耽心P被改变,可用内嵌汇编。
#include
unsigned char parity(unsigned char x){
x^=x;
if(P)return(1);
else return(0);
}
unsigned char parity2(unsigned int x){
#pragma asm
mov a,r7
xrl ar6,a
#pragma endasm
if(P)return(1);
else return(0);
}
Ⅵ SPSS数据分析心得小结
SPSS数据分析心得小结_数据分析心得分享
学习数据分析之spss分析工具,可真的不是一般的功夫,真的要很认真和很细心才能做得好spss。下面我来和大家分享一下关于SPSS数据分析心得小结,希望大家从这数据分析心得分享中能得到一些启示和指导。
心得1:拿到一份数据,或者在看到国内外某个学者的文章有想法而自己手里的数据刚好符合这个想法可以做时,在整理好数据后不要急于建模。一定要对数据做缺失值处理、异常值处理。在数据预处理的基础上再进一步建模,否则可能得到错误的结果。
心得2:承接心得1,数据预处理怎么做。一是缺失值的处理。我个人有几个看法:一是数据样本量足够大,在删除缺失值样本的情况下不影响估计总体情况,可考虑删除缺失值;二是数据样本量本身不大的情况下,可从以下两点考虑:1是采用缺失值替换,SPSS中具体操作为“转换”菜单下的“替换缺失值”功能,里面有5种替换的方法。若数据样本量不大,同质性比较强,可考虑总体均值替换方法,如数据来自不同的总体(如我做农户调研不同村的数据),可考虑以一个小总体的均值作为替换(如我以一个村的均值替换缺失值)。2是根据原始问卷结合客观实际自行推断估计一个缺失值的样本值,或者以一个类似家庭的值补充缺失值。
心得3:承接心得1,数据预处理第二点异常值的处理。我大概学了两门统计软件SPSS和Stata,SPSS用的时间久些,熟悉一下,Stata最近才学,不是太熟。关于这点我结合着来说。关于异常值的处理可分为两点,一是怎么判定一个值是异常值,二是怎么去处理。判定异常值的方法我个人认为常用的有两点:1是描述性统计分析,看均值、标准差和最大最小值。一般情况下,若标准差远远大于均值,可粗略判定数据存在异常值。2是通过做指标的箱图判定,箱图上加“*”的个案即为异常个案。发现了异常值,接下来说怎么处理的问题。大概有三种方法:一是正偏态分布数据取对数处理。我做农户微观实证研究,很多时候得到的数据(如收入)都有很大的异常值,数据呈正偏态分布,这种我一般是取对数处理数据。若原始数据中还有0,取对数ln(0)没意义,我就取ln(x+1)处理;二是样本量足够大删除异常值样本;三是从stata里学到的,对数据做结尾或者缩尾处理。这里的结尾处理其实就是同第二个方法,在样本量足够大的情况下删除首尾1%-5%的样本。缩尾指的是人为改变异常值大小。如有一组数据,均值为50,存在几个异常值,都是500多(我这么说有点夸张,大概是这个意思),缩尾处理就是将这几个500多的数据人为改为均值+3标准差左右数据大小,如改为100。总结而言,我个人认为做数据变换的方式比较好,数据变换后再做图或描述性统计看数据分布情况,再剔除个别极端异常值。
心得4:如何做好回归分析。经过多次实战,以及看了N多视频,上了N多课,看了N多专业的书。我个人总结做回归的步奏如下:1是承接心得1-3,对数据进行预处理,替换缺失值和处理异常值;2是将单个自变量分别与因变量做散点图和做回归,判定其趋势,并做好记录(尤其是系数正负号,要特别记录);3是自变量和因变量一起做相关系数,看各个变量相关关系强弱,为下一步检验多重共线性做准备;4是自变量多重共线性诊断。若变量存在多重共线性,可采用主成分回归,即先将存在多重共线性的变量做主成分分析合并为1个变量,然后再将合并成的新变量和其余自变量一起纳入模型做回归;5是做残差图,看残差图分布是否均匀(一般在+-3个单位之间均匀分布就比较好);6是报告相应结果。
心得5:看到论坛上有网友问为什么他(她)老师不建议采用后向步进法处理变量多重共线性。记得张文彤老师说过他有个同学做过一个研究,即采用后向步进法剔除变量的方式去做回归,得到的结果犯错的几率比较大。张老师也不建议用这个方法处理多重共线性。处理多重共线性比较好的方法是做主成分回归。
心得6:有个朋友问我在报到回归结果时用未标准化的回归系数好,还是用标准化后的回归系数好。我个人觉得这个问题仁者见仁智者见智,要看想表达什么。具体而言,如果想表达在其它条件不变的情况下,自变量X每变化1个单位,因变量变化多少个单位,这种情况用未标准化回归系数就好;如果想比较各个自变量对因变量影响的相对大小,即判断相对而言,哪个变量对因变量影响更大。这时需要消除量纲的影响,看标准化后的回归系数。
心得7:这是投稿一篇SSCI外审专家提出的意见。我做的是无序多分类logistic回归模型。因变量分了5类,有一类个数比较多,达到300多,有1-2类个案比较少,只有30左右。专家提到了要做稳健性检验。这个用stata软件编程加一个robust即可解决问题。不知道在SPSS里面怎么做。欢迎知道的朋友一起讨论下。我个人认为这是一个好问题的。不做稳健性检验模型可能受一些极端值的影响,结果不稳定。可能本来显着的变量剔除1-2个样本后就变得不显着了。所以做回归分析稳健性检验也比较重要。
PS:如果有可能,我希望在后面的心得中附上实际操作的步奏图和解释的。看看有没有人需要这个。不然可能说的一些东西需要的人能看明白,但还是不清楚怎么做。希望和大家一起交流学习。
以上是小编为大家分享的关于SPSS数据分析心得小结的相关内容,更多信息可以关注环球青藤分享更多干货
Ⅶ 谁能帮我写一个实验心得啊``套话就行`谢谢了`
http://www.exgods.com/cgy/attachments/month_0606/n200668125942.jpg
提示:保证PC机和Server的IP地址都属于83网段,使在Server上添加另一网络的IP地址也能上网.
步骤:在server机上安装wingate软件,并运行。例如,server的IP地址:192.168.83.9;PC机的IP地址:192.168.30.8,显然它们不属于同一网络,要使PC机也能上网?得做什么配置呢?
首先,在server里捆板一个与PC机同一网络的IP:192.168.30.9;子网掩码:255.255.255.0。
其次,在PC机上的默认网关改成192.168.30.9。
显然,这是上不了网的,得做一个NAT转换。
在server上启动winroute(具有防火墙功能的一个软件)。在configuration->traffic policy
会出现一栏:rule name source destination service action translation
rule name : NAT(自由为止,但最好以见名识意为主)
source:IP:192.168.30.0 ,子网掩码:255.255.255.0 ,添加一条ICMP记录(Ping)使致能连上外网。
destination:any
service:ping
action:permit
translation:IP:192.168.83.9
但其实验注意的是:192.168.83.*是可以上网的,网关:*.*.*.*
translation包含:source translation和 destination translation。在其选择时,应搞清其关系。
微机原理实验报告
一.实验名称:
80X86指令系统及程序调试
二.实验目的:
掌握汇编语言基本运行环境和熟悉DEBUG调试程序的命令。包括:
1.学习使用指令,掌握常用的指令功能和简单程序设计。
2.掌握DEBUG调试程序的命令,熟悉程序输入、存储器和CPU寄存器及标志位的检查方法,单步、断点、连续等运行程序的调试方法。
三.注释:
用8086汇编语言来编写程序 ,汇编语言程序从建立到执行的过程。
要建立和运行汇编语言程序,应该首先有如下文件:
EDIT.COM 编辑程序
MASM.EXE 宏汇编程序
LINK.EXE 链接程序
DEBUG.EXE 调试程序
四.实验步骤:
以建立和执行用户程序ABC.EXE为例来说明上机过程。
1、用EDIT命令建立汇编语言源程序(ASM文件)
源程序就是用汇编语言的语句编写的程序,它不能被机器识别。源程序必须以ASM为扩展文件名。
例如打入命令:
C:\ASM>EDIT ABC.ASM(每个命令后面应输入回车,以下均如此)
此时用户可以通过编辑程序的命令编写用户程序ABC.ASM。
2、用MASM命令产生目标文件[OBJ文件]
汇编,实际上就是把以ASM为扩展名的源文件转换成用二进制代码表示的目标文件,目标文件以OBJ为扩展名。汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误,最后,得到没有语法错误的OBJ文件。
例如,对hpled.asm的汇编过程如下:
C:\ASM> MASM hpled.asm
3. 用LINK命令产生执行文件(EXE文件)
汇编过程根据源程序产生出二进制的目标文件(OBJ文件),但OBJ文件用的是浮动地址,它不能直接上机执行。所以还必须使用连接程序(LINK.EXE)将OBJ文件转换成可执行的EXE文件。LINK命令还可以将某一个目标文件和其它多个模块链接起来。
以对hpled.obj进行连接为例:
C:\ASM>LINK hpled.obj
4.程序的执行
有了EXE文件后,就可以执行程序了,此时,只要打入文件名即可。仍以hpled为例:
C:\ASM >hpled
对于某些程序段,单从寄存器的内容看不到程序运行的结果,而需要观察数据段的内容,此时可用D命令,使用格式如下:
--D DS:0000 ;从数据段0单元开始显示128各字节。
在有些情况下,为了确定错误到底由哪条指令的执行引起,要用到跟踪命令(单步执行命令),此命令是程序每执行一条指令,边给出所有寄存器的内容。比如:
--T 3 ;从当前地址往下执行三条指令。
此指令使得从当前地址往下执行三条指令,每执行一条,便给出各寄存器内容。最后,给出下一条要执行的指令的地址、机器语言和汇编语言。
从DEBUG退出时,使用如下命令:
--Q ;退出DEBUG,卸去所装配程序。
五:实验心得:
1. 这次实验我受益匪浅,不但明白了在课堂上不懂得问题,而且通过实践的方法深刻的记到了脑海里,让我懂了实践出真理的道理。
2. 通过这次实验我知道了自己的不足,知道了知识海洋的高深。我决心继续努力学习微机原理,不断提高自己的动手能力,使自己为社会做出更多贡献。
Ⅷ 关于ccs的使用
1.应该都是分开的,程序编译的时候通过链接器链接到不同的物理地址区上
2.还真不太清楚...
3.有很多总线啊,位宽不一样,有16的,32的,37的我记得,学dsp一定要了解内部结构的,不清楚就找本书看看吧,一般是前几章介绍的.不过其实编程时用到的不多,不过也可能我学的也不够深
Ⅸ 实验心得体会一般怎么写
实验心得体会一般是反思你在实验中的错误操作,并分析这些操作对实验结果带来的影响。
Ⅹ DSP实验心得
通过这次实验,我熟悉了CCS开发环境以及设计运行调试过程,认识到AIC23语音芯片和I2C协议以及MCBSP模块的各个工作原理以及三者之间的关系,学会对模块的初始化怎么定义和编写的流程。使我对DSP产生了浓厚的兴趣,激发了我学习DSP的积极性,从这次实验结果上来说,清晰的结果使我对书本上的知识应用到了实验中,很满足。该实验通过FIR滤波器滤波后把噪声滤除掉了,从时域图来看,原来的带有毛刺的音频波形滤波后变得平滑,从频域图来看,噪声所在的频域段基本上被滤除掉。
最后,感谢老师、师兄、师姐的耐心指导!