如何将.a文件导入单片机hex文件破解中?

21. 在车载DVD系统中,如何设计电子防震系统?

答:在车载DVD系统,最好选择高档DVD机,因为高档DVD机都采用电子防震系统(ADVANCEDESP),当记忆缓冲区内的读数降低,先进的电子防震设计会以双速读数系统,做出比正常速度快两倍的读数速率,以减低噪声,即使连续震荡仍可避免跳线情况出现,现在就说说什幺叫电子防震。简单地说:电子防震就是一个信号的储存--释放过程,首先CD要先把信号进行提前读取,也就是我们见到机子的加速,再把信号储存在RAM中,而我们在开防震的时候所听到的就是经过RAM的声音,这样就是它的过程。当没有防震时是由于信号是1比1读取的,所以当受到冲击后,就会出现跳音。而当开了防震时,机子受到冲击后,由RAM释放出来的声音使音乐不停地播放,而与此同时,光头迅速进行复位检索,当检索到信号后立即补充,所以不会出现跳音。大概的情况就是这样。但是这样还没有满足用家的要求,由于这种的方法带来的时间短,通常只有3秒,所以跳音的机会还是蛮高,如果增大RAM又带来造价的增高因为RAM这东西价格较贵,尤其是质量好的。

22. 在电子防震技术中,有那些IC或器件可供选择?

答:在电子防震技术中,最重要的技术之一要数是RAM技术,而一直以来都是因为它的成本问题,所以防震时间都一直不能增加,也就是说RAM本身就有限制,RAM的容量越大,造价就越高。而许多厂家就如何在RAM的限制里得到最大限度的记忆时间展开了开发研究。

23. 如何进行可以减少程序的bug?

答:在此提供一些建议,因系统中实际运行的参数都是有范围的。系统运行中要考虑的超范围管理参数有:

物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。

资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆迭深度。在程序设计中,对资源参数不允许超范围使用。

应用参数。这些应用参数常表现为一些、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。

过程参数。指系统运行中的有序变化的参数。

在上述参数群对一程序编写者而言,须养成良好习惯,在程序的开头,有顺序的用自己喜欢文字参数对应列表来替代,然后用自己定义的文字参数来编写程序,这样在做程序的修改及维护时只在程序的开头做变动即可,不用修改到程序段,才比较容易且不会出错。

24. 有人认为将被ARM等系列结构的嵌入式系统所取代。的生命期还有多长?

答:因为8位单片机与嵌入式系统的ARM在功能结构和单价的差异,故应用层次上就有很大的不同。 ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。 而8位单片机因架构简单,硬件资源相对较少,适用于一般的工业控制,消费性家电……等等。评估单片机近期是否会给ARM取代,要观察两个因素:

因ARM的工作频率较高,电路较庞大,所需的芯片制造工艺要求在0。25U以上,成本较高。8位单片机工作频率相对较低,电路较小,所需的芯片制造工艺在0。5U 即可,成本较低。

ARM的功能较单片机强,但两者定位不同。就如现阶段不会有人用ARM去作一个简单的工业定时开关。当然,如果两者单价相同也无不可,但现实是有很大的单价差距。

至于将来,因芯片制造成本会不断下降,上述的成本差异影响愈来愈少!但我估计在往后5年单片机仍有价格优势,仍能存活!但ARM是否会精简架构,降低成本,抢夺低阶市场?我想可能性不大,ARM应该会向上发展。同样,单片机也只能向上发展,如16位,高功能……等。 原因就是因为芯片制造工艺进步太快。压迫芯片设计往高集成发展。

25. 在单片机C编成时,如何才能使生成的代码具有和汇编一样的效率?

答:如果是使用C语言时,不太可能生成的代码具有1:1和汇编一样的效率。

C语言命令要被硬件识别并执行,必须通过编译器编译。编译器分为前端、中端、后端。前端与各种计算机语言写的程序打交道,后端与处理器的基本指令集接轨。所以如果使用C时,要达到最高的效率,最好能够很了解所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句,这样就能确保单片机C编程的时候同样的功能不同的C程序,编译效率最高。但是各家的C编译器都会有一定的差异,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%,所以不同厂家的C编译器的编译效率也会有所不同。

26. ARM单片机和哪种内核的单片机比较接近?

答:严格的说,ARM不是单片机,是一个嵌入式的实时操作系统。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。所以市场上像Intel、IBM、LG半导体、NEC、SONY、菲利浦和国半这样的大公司都有ARM系列,现在不存在什幺ARM单片机和哪种内核的单片机比较接近的问题。而且由于厂家购买内核后会根据自己芯片应用方向的不同,自行添加不同的外挂功能模块,所以,同样内核的芯片其提供的功能是不同的。

答:从51转到ARM,其实编程之类的原理都是一样的,但是要注意的是ARM是一个RISC的架构,在ARM的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序,linux,uc/os-II等等这些都是很好的源码。

28. 我学过MCS51单片机教材,很有兴趣,但缺乏实践经验,手头没有任何道具可供演练,资金又有限,请问该怎么办?

答:在没有任何条件进行实践时,如果真的有兴趣,可以下载一些具有软件仿真功能仿真软件进行一些编程,像一些做得比较好的51仿真软件应该具有这种功能。HOLTEK的仿真软件HT-IDE3000也具有相应的功能,同时它还具有LCD软件仿真,周边电路的软件仿真。

29. 如果已经有了针对某MCU的C实现的某个算法,保持框架不变,对核心的部分用汇编优化,有没有一些比较通用的原则?

答:每个人的编程都有自己的风格与习惯,如果要利用别人的程序,在其中修修改改,如果他的程序并没有很好的模块化的话,建议最好不要这幺做,否则本来预期达到事倍功半,说不定反而事半功倍了。要参考他人的程序当然可以,但是首要是要看懂并理解他人程序的算法精髓,而不是在他的上打补丁。而关于算法方面的优化,可以购买一些数据结构的书籍,上面有比较详细的说明。

30. 如果准备估计一个算法的MIPS,有什么好的途径?

答:算法的运行时间是指一个算法在计算机上运算所花费的时间。它大致等于计算机执行简单操作(如赋值操作,比较操作等)所需要的时间与算法中进行简单操作次数的乘积。通常把算法中包含简单操作次数的多少叫做算法的时间复杂性。它是一个算法运行时间的相对量度,一般用数量级的形式给出。度量一个程序的执行时间通常有两种方法:

一种是事后统计的方法。因为很多计算机内部都有计时功能,不同算法的程序可通过一组或若干组相同的统计数据以分辨优劣。但这种方法有两个缺陷:一是必须先运行依据算法编制的程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法本身的优劣。因此人们常常采用另一种事前分析估算的方法。

一种是事前分析估算的方法。一个程序在计算机上运行时所消耗的时间取决于下列因素:

(1)依据的算法选用何种策略;

(2)问题的规模。例如求100以内还是1000以内的素数;

(3)书写程序的语言。对于同一个算法,实现语言的级别越高,执行效率就越低;

(4)编译程序所产生的机器代码的质量。这个跟编译器有关;

(5)机器执行指令的速度。

显然,同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行时,效率均不相同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法运行工作量的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函数。

一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本运算的原操作,以该基本操作重复执行的次数作为算法的时间度量。

算法的MIPS有专门的一门学问,可以去好好参考相关的数据结构书籍。

31. 遥控的编*思路和设计流程是怎样的?

答:一般来说完整的遥控码分为头码、地址码、数据码和校验码四个组成部分。头码根据不同的厂家各不相同,地址码和数据码都由逻辑“1”和逻辑“0”组成。编码的设计目的,就是按照编码规则发送不同的码值。我们最常见的码型有SONY、松下、NEC等厂家型号。遥控编码芯片最常用的是在空调、DVD、车库门等遥控器上。

设计编码程序可以分为三个部分。

第一部分是了*型的特性。遥控码的头码和地址码(也称为客户码)是固定不变的,数据码和校验码根据不同的键值而改变。

第二部分是计算发码时间。遥控码大部分都是由逻辑“1”和逻辑“0”组成,也就是由一串固定占空比、固定周期的方波所组成。通常这些方波的周期是毫秒甚至微秒等级,需要在时间上计算的比较精确。所以选择发码单片机型号的时候,就要考虑到单片机的运行速度是不是够快,以及程序运行时间够不够。

第三部分就是程序的编写。选定单片机型号之后,开始设计程序流程。一般来说我们使用I/O口就可以做发码的输出端口。发码程序一般由几个子程序组成,头码子程序、逻辑1子程序,逻辑0子程序以及校验码的算法子程序。一旦我们得到要发送码的命令后,首先调用头码子程序,然后根据客户码和键值调用逻辑1子程序或者逻辑0子程序,最后调用校验码算法子程序输出校验码。

HOLTEK公司的HT48CA0/HT48RA0、HT48CA3/HT48RA3和HT48CA6是专为遥控器设计的单片机,它们具有专门红外输出口,可以实现绝大部分发码的要求。

设计*程序也可以分为三部分。

第一部分了解编码波形特性。从分析编码的高、低脉冲宽度入手,了解逻辑“1”和逻辑“0”的波形占空比、周期。了解头码的特性。

第二部分确定接收方式。一般我们可以用I/O口查询方法或者INT口中断响应方法来接收编码。这两者的区别是I/O口查询方式比较耗费单片机的运行时间资源,需要不断的去侦测I/O的电平变化,以免漏掉有效的码值;而INT口中断接收方式则比较节省资源,当外部有电平变化时,单片机才需要去处理,不需要时刻进行侦测。但是INT口中断接收方式不能辨别相同周期不同占空比的波形特性,当编码所携带的逻辑“1”和逻辑“0”具有这种特性时,就无法通过INT口中断接收方式来辨别了,因为INT中断只是在上升沿或者下降沿的时候才触发。

第三部分将接收的码值存储并分析执行。根据判断高低电平的宽度(定时器或者延时),可以得到码值,也就是我们所说的*。一般我们连续收到3个相同的完整码值,就确认此码的确被发出,并接收成功。当*结束,根据码值我们可以判断出是哪个按键被按下,由此去执行相对的按键功能。

HOLTEK公司的HT48以及HT49(带LCD)系列单片机,都可以符合大多数*的任务。

32. 在学习单片机的过程中,如何理解预分频,12时钟模式(6时钟模型)等概念?

答:预分频器的英文是prescaler。它就是将输入的频率信号分频,然后再输出。HOLTEK公司有一款最基本的8位I/O型单片机HT48R05A-1,我们就以这款单片机为例说明。HT48R05A-1有一个8位向上计数的定时器Counter。系统时钟Fsys(4MHz)进入八阶预分频器(8-stage Prescaler)进行分频,再进入定时计数器Counter计数。根据软件设置,预分频器可以将Fsys进行2的n次方分频(n=1~8)。举例来说,如果软件设置为预分频器2分频,那幺预分频器输出的频率就是Fsys/2=2MHz,这个2MHz信号再进入定时计数器Counter。

12时钟模式(6时钟模型)应该就是在MCS51系列中,12个系统时钟为一个机器周期,2个系统时钟为一个状态,即一个机器周期有6个状态。

33. A/D、D/A的采样速率与其它单片机相比有什么优势?

至于D/A,一般是指PWM输出,HOLTEK A/D Type MCU都带有8bit的PWM输出,但HOLTEK PWM的特点是其输出频率由系统频率决定(既系统频率选定后,PWM频率也就定了),其占空比通过对[PWM]寄存器赋值进行控制,不需要占用定时/计数器资源。

34. 采用AT89S51时,出现了按了复位按钮,RAM中的数据被修改了。这是怎么回事?注:数据放在特殊寄存器之外。

答:如果是RESET脚的复位按钮:一般MCU的RESET复位,其特殊寄存器会被重新初始化,而通用寄存器的值保持不变。

如果复位按钮是电源复位:那就是MCU的上电复位,其特殊寄存器会被初始化,而通用寄存器的值是随机数。

35. 将P2.7用来驱动一个NPN三极管,中间串接了一个1K的电阻。问题是:当我尝试向P2.7写’1’时,发现管脚只能输出大约0.5V的一个电平。这个电路的使用得妥当么?如何正确的使用IO功能?

答:是在仿真时遇到的问题,还是烧录芯片后遇到的问题?

可以先将P2.7的外部电路断开,测量输出电压是否正常。如果断开后输出电压正常,那就说明P2.7的驱动能力不够,不能驱动NPN三极管,应该改用PNP三极管(一般在MCU应用中,都采用PNP方式驱动)。如果断开后输出电压还不正常,那有可能是仿真器(或芯片)已经损坏。

答:你所说的PWM是通过定时/计数器来控制其频率和占空比的,所以要提高频率,必然会降低精度。如果要提高PWM的频率,只能通过提高系统振荡频率来解决。

单片机原理及应用A实验-流水灯、蜂鸣器、独立按键

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

  2. 修正发布项目的不兼容问题

  1. 代码文件和数据文件的校验和增加为3字节

  2. ISP下载时增加对PL2303的支持(部分国产兼容芯片的仿真暂未支持)

  1. 修正U8工具对如下型号的旧固件版本在脱机下载时的问题

  2. 加强发布项目文件的加密性

  1. 增加ISP下载时对ID号进行运算,并将运算后的结果写入指定的FLASH中,

  注意:软件Ver6.85C版本由于自动增量的修改,下载协议进行了修改

  1. 修正波特率计算器中的错误

  1. 将范例程序代码针对学生进行简化

  2. 修正在WIN7下保存范例代码为Keil项目会有警告的问题

  1. 去掉打开软件时默然为下载范例程序的功能

  3. 所有的范例程序都支持直接下载

  4. 更正选型表中的一些错误

  6. 定时器计算器中增加STC15系列的定时器3和定时器4

     使用U7/U8在线重复下载时,钩选上"在线下载完成后持续给目标芯片供电"选项后,

  1. 增加芯片的各种封装的管脚排布图

  2. 调整定时器计算器中的部分算法

  2. 发布项目文件中,增加记录当前的自动增量和下载次数

  3. 解决部分客户设置自动增量下载会失败的问题

  4. 解决部分客户带光耦的用户板不能下载的问题

  6. 增加范例代码(使用STC15W4K系列的PWM输出任意周期和任意占空比的波形)

  8. 发布项目中支持U8/U7在线下载完成后持续供电选项

  9. 更新选型表(对部分系列的价格进行调整)

     (解决对有大电容的用户板进行脱机下载时会自动重复下载的问题)

     (增加脱机下载时对目标芯片重新上电的等待时间参数设置,

  1. 更新选型表(对部分15系列的价格进行下调)

     (注意:需要在可以正常使用的范围)均可更加快速稳定的下载,

  1. 修正对对部分型号下载不正常的问题

  2. 发布项目时增加支持EEPROM区的自动增量(之前版本只支持程序区)

  3. 解决发布项目中用户增量不能修改的问题

  4. 对固件版本为7.2.x或高于此版本的STC15系列增加下载口令的功能

  3. 更新"官方网站资源"链接(增加STC15系列软件范例和PCB元件库链接)

  4. 脱机下载的最高波特率的默认值修改为115200

  6. 支持用户在发布项目时设置目标芯片型号的名称

  1. 更新选型表,调整部分芯片价格

  2. 修正发布项目文件不能支持485下载的问题

  3. 更新重要说明,主要包括如下内容:

  1. 对U7脱机下载界面中的按钮进行调整

  2. 提高U7脱机下载时的最高波特率,加快脱机下载速度

  4. 支持将EEPROM缓冲区的数据复制为16进制文本(可直接将数据粘贴到串口助手)

  5. 更新"程序加密后传输"的文本提示信息

  6. 对于选择较低的低压复位门槛电压进行口令确认

  7. 增加"通过BandGap电压精确测量外部输入电压值"的示例代码

  1. 对"使用主芯片对从芯片(限STC15系列)进行ISP下载"的示例代码添加注解和说明

  5. 发布项目时,支持自定义图标

  6. 不限制发布项目中自动增量的长度

  7. 发布项目的界面可任意放大缩小

  3. 增加读取掉电唤醒定时器频率和内部BandGap电压值的范例代码

  1. 更新选型表,调整部分芯片价格

  2. 对单片机型号的下拉列表进行调整,隐藏部分不生产的型号

  4. 对串口助手的接收/发送框增加右键支持

  1. 仿真芯片制作完成后,等待1秒再切换为原型号

  1. U7下载界面中增加了清除用户数据按钮

  2. 将U7驱动打包到用户发布项目的文件中

  4. 修正串口助手对接收数据不记数的问题

  4. 调整下载脱机代码时的提示信息

  5. 官方网站链接刷新的问题

     进行脱机下载时复位脚功能不能正确设置的问题

  2. STC15系列的硬件选项中,将上电复位后将某个IO输出低电平的

     (即自动检测放入芯片则自动开始烧录,完成后等待下一个新的芯片放入)

  3. 修正文件改变时自动下载功能有时会不正常的问题

  5. 修正了独立串口打不开的问题

  7. 将串口助手中HEX数据采用文本方式显示,以便直接复制/粘贴HEX数据

  1. 官方研发顾问启用新企业技术支持QQ:(因旧的QQ容量不够,已停用)

  2. 增加用户接口界面,支持接收用户自定义数据

  3. 支持直接保存网站链接文件

  5. 支持清空单片机型号中的常用型号列表

     (将光标定位到常用型号,选中常用型号根节点,然后按删除键即可)

  1. 修正之前版本下载成功率不高的问题

  2. 在单片机型号列表中增加常用型号的列表,记录最近使用的10个型号

  3. 在网站资源页中增加U7/U7-S1编程器的USB转串口驱动下载链接

  2. 修正打开数据异常的HEX文件界面会关闭的问题

  4. 解决部分USB转串口线下载不兼容的问题

  1. 修正界面上的一些显示问题

  1. 修正6.39版和6.38D版因开放89系列而导致其它系列烧录的兼容问题

  3. 修正了界面的一些显示问题

  4. 优化代码,加速程序的启动速度

  2. 增加STC15F408AD系列的芯片选型,并将选型表按芯片系列进行颜色区分

  3. 开放89系列的在线烧录(不支持脱机下载和项目发布)

  1. 修正界面上的一些显示问题

  2. 在指令表中增加指令总时钟数信息

  1. 修正界面上的一些显示问题

  2. 修正了15系列范例程序中SPI口定义错的问题

  3. 硬盘号正确读取后,复制到剪贴板的同时将硬盘号显示出来

  2. 发布项目时,增加了对硬盘号校验的支持(仅STC15系列及后续新产品有此功能)

     发布项目时,增加了对目标芯片的ID号校验的支持(仅STC15系列及后续新产品有此功能)

     发布项目时,增加了对用户自定义下载命令功能的支持

  3. 对于固件版本号高于7.1.1的芯片,在RAM区的末尾区域增加了重要

  4. 对于固件版本号高于7.1.1的芯片,当选择了在程序区添加复位指令

     的硬件选项时,会将RAM区增加的重要测试参数同步写入程序区的

  1. 修正485功能所导致的下载兼容性的问题

  2. 修正了重复下载时,自动增量不能更新的问题

  3. 增加自动检测新版本的功能

  1. 修正增加软复位指令后会导致下载出错的问题

  1. 项目发布软件界面增加重复下载按钮

  3. 芯片选型增加新型号和部分型号的价格

  4. 修正网上发布版本6.33版的一些问题(详细说明请参考重要说明)

  1. 使用新版的项目发布软件,用户可以定制界面

  2. 支持在发布软件中将自动增量改名为机器编号

  2. 修正脱机下载中大文件不能下载的问题

  2. 修正脱机下载芯片内部42K代码空间最后5K不能写入的问题

  5. 对脱机下载中分选机自动控制接口信号进行说明

  3. 脱机下载增加分选机自动控制接口

  4. 脱机下载新增支持用户自定义加密下载功能

  7. 去掉了STC15F2K60S2系列在下载时进行内部/外部时钟切换需要重新上电的提示对话框

  8. 更新重要说明信息(增加低压复位门槛电压设置参考)

  1. 对可执行文件添加数字签名

  1. 将脱机下载母片的硬件选项固定设置为:

  2. 添加STC的MCU型号到Keil中的同时,复制仿真驱动和头文件

  3. 将仿真芯片的制作过程人性化,一键制作

  4. 在界面中添加“重要说明”部分,并更新“重要说明”

  1. 对脱机下载程序增加蜂鸣器的控制,用于提示脱机下载是否正确.

  2. 增加单芯片仿真器方案的帮助文档链接.

  2. 增加单芯片仿真器方案(不占用串口和定时器).

  1. 对脱机下载控制界面进行调整,并进行详细说明.

  2. 在STC104E系列的范例程序中,增加软件模拟串口的范例代码.

  1. 脱机下载板支持全系列芯片的脱机下载和在线直通下载.

  1. 兼容老版本软件的项目文件.

  1. 修正仿真器的单CPU方案中不能仿真双数据指针(DPTR)的问题.

  2. 增加项目文件功能(可以保存和打开项目文件).

 (备注: 目前485控制之针对固件版本号为7.1版的15系列C版工程测试样片)

我要回帖

更多关于 单片机hex文件破解 的文章

 

随机推荐