本文目录一览:
- 1、电脑系统基础知识书籍
- 2、求高人给我发几个关于C51单片机PWM的编程实例
- 3、电脑主板基础实用知识
- 4、在学delphi的中途再加java会不会太难
- 5、单片机对讲机原理
- 6、JAVA中怎么给下拉组件添加事件监听,使在下来菜单中所选的返回到文本组件中?
电脑系统基础知识书籍
就按大学的本科教学大纲开始学吧,慢慢来,学计算机多少得懂点编程吧,先从c语言编程基础开始,先推荐看看谭浩强的c语言吧,貌似很普遍,这样的话你如果真要上大学学了计算机,那么你就比别人不是强一点半点了,好多人都被c语言给毁了,一旦学不好就放弃了,基础的东西不好也就完了,鉴于你是高中生,还是以高考为重,对了,推荐看看计算机科学基础,或计算机导论之类的书。会对计算机世界的各个方面,从软件到硬件,从数学到物理,从美国到世界,从操作系统到应用软件,从汇编到c语言等等各个方面,对你会有启发的,我说的书并不限于哪本,至少计算机方面尽量看看国外作者的,有能力可以看英文,
毕竟是高中生,高考为重,先这么着,不过话说回来了,学点photoshop,flash,如果没事,大学加社团可是很有竞争力,一般大学都有网站维护之类的社团,一旦凭借这进去了就可以接触网站建设等知识。总之别想贪多,学好了你就不错,慢慢来,自己感悟,不可能一下子就给你开个全面的菜单,根据自己的爱好
像我大学来时不知道优盘是什么,不知道复制粘贴是啥意思,甚至连开关机重启按钮都分不太明白,基础很差的,所以很吃亏,不过还好也能混进实验室,不过跟他们这些大学前就有基础的人来说,明显我吃亏了,当然这并不是能力上的差别,但是至少可以让你有信心学下去,而且可以得到很多好处,毕竟基础好嘛虽然真正的计算机高手,用高手有点通俗,计算机科学家吧,不是会做个图片做个动画编个程序之类的,想想计算机是怎么造出来的,操作系统是怎么开发的,等等,你觉得是编点程序吗。真正的高手甚至不摸电脑的,当然玩玩电脑未尝不可,计算机科学是自然科学,数学是自然科学皇冠上的明珠,物理也是,如果你看了计算机科学技术导论就知道,这本书尽量买外国人的,美国吧,网站上买,多看看书的评价就知道了,慢慢来吧,很少有人能够成为真正的高手,努力吧
多在网上有效率搜寻信息来学习。
求高人给我发几个关于C51单片机PWM的编程实例
共两个:
/*********************************************************************************************
程序名: 触控调光台灯
编写人: 杜洋
编写时间: 2009年 7月 25日
硬件支持: STC12C2052 12MHz
接口说明: P3.7(PWM0)用PWM控制LED,P1.5~P1.7接3路触摸键
修改日志:
NO.1-20090725_0622 完成触控开关LED灯部分和PWM调光部分程序。
NO.2-20090725_0638 完成开关灯时的渐变亮度。
/*********************************************************************************************
说明:电路制作时需要将触摸键和VCC线放在一起,然后触摸时将手同时触摸按键引脚和VCC线。
/*********************************************************************************************/
#include STC12C2052AD.H //STC12Cx052或STC12Cx052AD系列单片机头文件
sbit ON_OFF_Key = P1 ^ 7; //ON/OFF开关键
sbit Add_Key = P1 ^ 6; //加亮度(+)
sbit Doc_Key = P1 ^ 5; //减亮度(-)
//LED与P3.7(PWM0)连接
unsigned char Bright=0x88; //全局变量,亮度值
bit POWER=0; //LED灯开/关状态标志位
/*********************************************************************************************
函数名:PWM初始化函数
调 用:PWM_init();
参 数:无
返回值:无
结 果:将PCA初始化为PWM模式,初始占空比为0
备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可
/**********************************************************************************************/
void PWM_init (void){
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
CCAP0H=0x00; // PWM0初始时为0
CR=1; //启动PCA定时器
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:PWM0占空比设置函数
调 用:PWM0_set();
参 数:0x00~0xFF(亦可用0~255)
返回值:无
结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a){
CCAP0L= a; //设置值直接写入CCAP0L
CCAP0H= a; //设置值直接写入CCAP0H
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:毫秒级CPU延时函数
调 用:DELAY_MS (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的毫秒时间
备 注:应用于1T单片机时i600,应用于12T单片机时i125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( --a != 0){
for(i = 0; i 600; i++);
}
}
/*********************************************************************************************/
/*********************************************************************************************
函数名:主函数
调 用:无
参 数:无
返回值:无
结 果:程序开始处,无限循环
备 注:
/**********************************************************************************************/
void main (void){
PWM_init(); //PWM初始化
P1M0 = 0xff; //将P1接口设置为高阻态输入
P1M1 = 0x00; //触摸按键启用
DELAY_MS (200); //延时等待I/O接口电平状态稳定
while(1){ //循环程序部分
unsigned char a; //临时变量
if(ON_OFF_Key == 1){ //开关键按下
if(POWER == 0){ //如果当前状态为关,则执行开灯程序
for(a=0;a=Bright;a++){ //
PWM0_set(a);
DELAY_MS (20); //渐暗的时间间隔
}
PWM0_set(Bright); //达到存储的LED亮度
POWER = 1; //把状态标志位变成开
}else{ //如果当前状态为开,则执行关灯程序
for(a=Bright;a0;a--){ //循环渐暗
PWM0_set(a);
DELAY_MS (20); //渐暗的时间间隔
}
PWM0_set(0); //关LED
POWER = 0; //把状态标志位变成关
}
while(ON_OFF_Key == 1); //等待按键放开
}
if(Add_Key == 1 POWER == 1){ //加亮度键按下,同时在开灯状态下
Bright++; //亮度值加1
PWM0_set(Bright); //将值写入PWM控制LED亮度
if(Bright = 0xFD){ //如果亮度值大于0xFD,则不再增加
Bright = 0xFD;
}
DELAY_MS (20); //渐变亮度的时间间隔
}
if(Doc_Key == 1 POWER == 1){ //减亮度键按下,同时在开灯状态下
Bright--; //亮度值减1
PWM0_set(Bright); //将值写入PWM控制LED亮度
if(Bright 0x08){ //如果亮度值小于0x08,则不再减少
Bright = 0x08;
}
DELAY_MS (20); //渐变亮度的时间间隔
}
}
}
/**********************************************************************************************/
/*************************************************************
* 杜洋工作室 DoYoung Studio
* 与电子爱好者同行
/*************************************************************/
/*********************************************************************************************
程序名: PWM模块调试程序(仅实验用)
编写人: 杜洋
编写时间: 2009年7月22日
硬件支持: STC12C2052 12MHz
接口说明: LED灌电流接P3.7接口(PWM0)
修改日志:
NO.1-
/*********************************************************************************************
说明:
/*********************************************************************************************/
#includeSTC12C2052AD.H //头文件
/*********************************************************************************************
函数名:PWM初始化函数
调 用:PWM_init();
参 数:无
返回值:无
结 果:将PCA初始化为PWM模式,初始占空比为0
备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可
/**********************************************************************************************/
void PWM_init (void){
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
CCAP0H=0x00; // PWM0初始时为0
//CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
//CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
//CCAP1H=0x00; // PWM1初始时为0
//CCAPM2=0x42; //PWM2设置PCA工作方式为PWM方式
//CCAP2L=0x00; //设置PWM2初始值与CCAP0H相同
//CCAP2H=0x00; // PWM2初始时为0
//CCAPM3=0x42; //PWM3设置PCA工作方式为PWM方式
//CCAP3L=0x00; //设置PWM3初始值与CCAP0H相同
//CCAP3H=0x00; // PWM3初始时为0
CR=1; //启动PCA定时器
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:PWM0占空比设置函数
调 用:PWM0_set();
参 数:0x00~0xFF(亦可用0~255)
返回值:无
结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a){
CCAP0L= a; //设置值直接写入CCAP0L
CCAP0H= a; //设置值直接写入CCAP0H
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:主函数
调 用:无
参 数:无
返回值:无
结 果:程序开始处,无限循环
备 注:
/**********************************************************************************************/
void main (void){
PWM_init(); //PWM初始化
PWM0_set(0x10); //设置PWM占空比
while(1){
//无限循环程序
}
}
/**********************************************************************************************/
/*************************************************************
* 杜洋工作室 DoYoung Studio
* 与电子爱好者同行
/*************************************************************/
电脑主板基础实用知识
主板主要要求做工良好,可以为CPU,内存,以及其他的相关配件提供稳定的供电支持,另外还加上对硬件的支持上限。AMD和Intel两家的CPU接口不同,所以使用的型号也不同,通常主板上都会标注。下面就让我带你去看看电脑主板基础实用知识,希望能帮助到大家!
计算机 硬件知识 : BIOS 、EFI与UEFI详解!
本文估计很多小白看不懂,但是还是建议你硬着头皮看完,这篇 文章 主要讲解了这几种“BIOS”的启动方式,对电脑启动问题判断的理解会有益处。
BIOS是个程序,存储在BIOS芯片中,而现在的新式电脑用的基本都是UEFI启动,早期的过渡电脑用的都是EFI启动。其实EFI或UEFI的一部分也是存储在一个芯片中,由于它们在表面形式、基本功能上和BIOS差不多,所以习惯上我们也把存储EFI/UEFI的芯片叫做EFI/UEFI BIOS芯片,EFI/UEFI也叫做EFI/UEFI BIOS,但在实际上它们和BIOS根本是不一样的,所以最好还是把后面的“BIOS”尾巴去掉为好,下面就来具体谈一下BIOS、EFI和UEFI。
BIOS用于计算机硬件自检、CMOS设置、引导 操作系统 启动、提供硬件I/O、硬件中断等4项主要功能,因此BIOS程序可以分为若干模块,主要有Boot Block引导模块、CMOS设置模块、扩展配置数据(ESCD)模块、DMI收集硬件数据模块,其中引导模块直接负责执行BIOS程序本身入口、计算机基本硬件的检测和初始化,ESCD用于BIOS与OS交换硬件配置数据,DMI则充当了硬件管理工具和系统层之间接口的角色,通过DMI,用户可以直观地获得硬件的任何信息,CMOS设置模块就是实现对硬件信息进行设置,并保存在CMOS中,是除了启动初始化以外BIOS程序最常用的功能。
BIOS本身是汇编语言代码,是在16位实模式下调用INT 13H中断执行的,由于__86-64是一个高度兼容的指令集,也为了迁就BIOS的16位实模式的运行环境,所以即使现在的CPU都已是64位,如果还是在BIOS启动(基本见于09年以前的主板),在开机时仍然都是在16位实模式下执行的。16位实模式直接能访问的内存只有1MB,就算你安了4G、8G或者16G还是32G内存,到了BIOS上一律只先认前1MB。在这1MB内存中,前640K称为基本内存,后面384K内存留给开机必要硬件和各类BIOS本身使用,了解了这些,下面谈一下BIOS启动计算机的具体过程。
当按下电源开关时,电源就开始向主板和其他设备供电,这时电压还不稳定,在早期的南北桥主板上,由主板北桥向CPU发复位信号,对CPU初始化;稳定电压后复位信号便撤掉。而对于现在的单南桥主板,则由CPU自身调整稳定电压达到初始化的目的,当电压稳定后,CPU便在系统BIOS保留的内存地址处执行跳转BIOS起始处指令,开始执行POST自检。
在POST自检中,BIOS只检查系统的必要核心硬件是否有问题,主要是CPU、640K基本内存、显卡是否正常,PS/2键盘控制器、系统时钟是否有错误等等。由于POST检查在显卡初始化以前,因此在这个阶段如发生错误,是无法在屏幕上显示的,不过主板上还有个报警扬声器,而且如果主板的8255外围可编程接口芯片没有损坏的话,POST报警声音一定是会出来的。可以根据报警声的不同大致判断错误所在,一般情况下,一声短“嘀”声基本代表正常启动,不同的错误则是不同的短“嘀”声和长“嘀”声组合。POST自检结束后,BIOS开始调用中断完成各种硬件初始化工作。
硬件初始化工作中,主要说明两点,首先经过POST检测后,电脑终于出现了开机启动画面,这就是已经检测到了显卡并完成了初始化。但是请注意,由于BIOS是在16位实模式运行,因此该画面是以VGA分辨率(640__480,纵横比4:3)显示的,因为实模式最高支持的就是VGA。以前的小14-17寸CRT 显示器 由于都是4:3比例,最高分辨率也比较低,因此这个开机启动画面没有什么违和感,但现在的液晶显示器基本上都是宽屏16:9的,分辨率也较高,因此在这样的显示屏下,启动画面上的一切东西显示都可以说“惨不忍睹”——图形被拉长,字体很大很模糊,可以很明显看到显示字体的锯齿。第二,BIOS只识别到由主引导记录(MBR)初始化的硬盘,之所以说明这点,是因为后续的EFI或UEFI采用了一种新的GUID磁盘分区系统(GPT)格式,这种硬盘在BIOS下是无法识别的。硬件全部初始化完毕后,接下来进入更新ESCD阶段。
在ESCD更新阶段中,BIOS将对存储在CMOS中和操作系统交换的硬件配置数据进行检测,如果系统硬件发生变动,则会更新该数据,否则不更新保持原状不变,ESCD检测或更新结束后,BIOS将完成最后一项工作,就是启动操作系统。
最后这一步中,BIOS根据CMOS中用户指定的硬件启动顺序,读取相应设备的启动或引导记录,引导相应设备上的操作系统启动,进入操作系统,此后便由操作系统接替BIOS负责硬件和软件间的相互通信。如果发现所有硬件都没有能引导操作系统的记录,则会在屏幕上显示相应错误信息,并将电脑维持在16位实模式。
虽然BIOS作为电脑加电启动所必不可少的部分,但是从其于1975年诞生之日起近30余年,16位汇编语言代码,1M内存寻址,调用中断一条条执行的理念和方式竟然一点都没有改变,虽然经各大主板商不懈努力,BIOS也有了ACPI、USB设备支持,PnP即插即用支持等新东西,但是这在根本上没有改变BIOS的本质,而英特尔为了迁就这些旧技术,不得不在一代又一代处理器中保留着16位实模式(否则根本无法开机的)。但是,英特尔在2001年开发了全新的安腾处理器,采用IA-64架构,并推出了全新的EFI。后来证明,安腾处理器、IA-64架构没有推广开来,而EFI和后继的UEFI却发扬光大,成为现在电脑的主要预启动环境。
EFI,是E__tensible Firmware Interface的词头缩写,直译过来就是可扩展固件接口,它是用模块化、高级语言(主要是C语言)构建的一个小型化系统,它和BIOS一样,主要在启动过程中完成硬件初始化,但它是直接利用加载EFI驱动的方式,识别系统硬件并完成硬件初始化,彻底摒弃读各种中断执行。EFI驱动并不是直接面向CPU的代码,而是由EFI字节码编写成,EFI字节码是专用于EFI的虚拟机器指令,需要在EFI驱动运行环境D__E下解释运行,这样EFI既可以实现通配,又提供了良好的兼容。此外,EFI完全是32位或64位,摒弃16位实模式,在EFI中就可以实现处理器的最大寻址,因此可以在任何内存地址存放任何信息。另外,由于EFI的驱动开发非常简单,基于EFI的驱动模型原则上可以使EFI接触到所有硬件功能,在EFI上实现文件读写,网络浏览都是完全可能的。i,BIOS上的的CMOS设置程序在EFI上是作为一个个EFI程序来执行的,硬件设置是硬件设置程序、而启动管理则是另一个程序,保存CMOS又是另一个程序,虽然它们在形式的Shell上是在一起的。
EFI在功能上完全等同于一个轻量化的OS(操作系统),但是EFI在制定时就定位到不足以成为专业OS的地位上,首先,它只是一个硬件和操作系统间的一个接口;其次,EFI不提供中断访问机制,EFI必须用轮询的方式检查并解释硬件,较OS下的驱动执行效率较低,最后,EFI只有简单的存储器管理机制,在段保护模式下只将存储器分段,所有程序都可以存取任何一段位置,不提供真实的保护服务。伴随着EFI,一种全新的GUID磁盘分区系统(GPT)被引入支持,传统MBR磁盘只能存在4个主分区,只有在创建主分区不足4个时,可以建立一个扩展分区,再在其上建立被系统识别的逻辑分区,逻辑分区也是有数量的,太多的逻辑分区会严重影响系统启动,MBR硬盘分区最大仅支持2T容量,对于现在的大容量硬盘来说也是浪费。GPT支持任意多的分区,每个分区大小原则上是无限制的,但实际上受到OS的规定限制不能做到无限,不过比MBR的2T限制是非常重要的进步。GPT的分区类型由GUID表唯一指定,基本不可能出现重复,其中的EFI系统分区可以被EFI存取,用来存取部分驱动和应用程序,虽然这原则上会使EFI系统分区变得不安全,但是一般这里放置的都是些“边缘”数据,即使其被破坏,一般也不会造成严重后果,而且也能够简单的恢复回来。
当EFI发展到1.1的时候,英特尔决定把EFI公之于众,于是后续的2.0吸引了众多公司加入,EFI也不再属于英特尔,而是属于了Unified EFI Form的国际组织,EFI在2.0后也遂改称为UEFI,UEFI,其中的EFI和原来是一个意思,U则是Unified(一元化、统一)的缩写,所以UEFI的意思就是“统一的可扩展固件接口”,与前身EFI相比,UEFI主要有以下改进:
首先,UEFI具有完整的图形驱动功能,之前的EFI虽然原则上加入了图形驱动,但为了保证EFI和BIOS的良好过渡,EFI多数还是一种类DOS界面(仍然是640__480VGA分辨率),只支持PS/2键盘操作(极少数支持鼠标操作),不支持USB键盘和鼠标。到了UEFI,则是拥有了完整的图形驱动,无论是PS/2还是USB键盘和鼠标,UEFI一律是支持的,而且UEFI在显卡也支持GOP VBIOS的时候,显示的设置界面是显卡高分辨率按640__480或1024__768显示,因此画面虽小但很清楚,但是这样会导致屏幕周围大片留黑,不过鱼和熊掌不可兼得,除非UEFI默认窗口大小也是最高分辨率。
其次,UEFI具有一个独特的功能,安全启动,而EFI是没有安全启动的,安全启动(Secure Boot),实际上通俗的解释是叫做固件验证。开启UEFI的安全启动后,主板会根据TPM芯片(或者CPU内置的TPM)记录的硬件签名对各硬件判断,只有符合认证的硬件驱动才会被加载,而Win8以后的Windows则是在操作系统加载的过程中对硬件驱动继续查签名,符合Windows记录的硬件才能被Windows加载,这在一定程度上降低了启动型程序在操作系统启动前被预加载造成的风险,但是这也会造成系统安装变得垄断。
无论EFI还是UEFI,都必须要有预加载环境、驱动执行环境、驱动程序等必要部分组成,为了支持部分旧设备(如在UEFI下挂载传统MBR硬盘,不支持UEFI启动的显卡在UEFI下仍然支持运行等),还需要一个CSM兼容性支持模块、EFI或UEFI都是仅支持GPT磁盘引导系统的,下面就具体谈一下EFI或UEFI启动计算机的过程。
一般地,预加载环境和驱动执行环境是存储在UEFI(UEFI BIOS)芯片中的,当打开电源开关时,电脑的主要部件都开始有了供电,与BIOS不同的是,UEFI预加载环境首先开始执行,负责CPU和内存(是全部容量)的初始化工作,这里如出现重要问题,电脑即使有报警喇叭也不会响,因为UEFI没有去驱动8255发声,不过预加载环境只检查CPU和内存,如果这两个主要硬件出问题,屏幕没显示可以立即确定,另外一些主板会有提供LED提示,可根据CPU或内存亮灯大致判断故障。
CPU和内存初始化成功后,驱动执行环境(D__E)载入,当D__E载入后,UEFI就具有了枚举并加载UEFI驱动程序的能力,在此阶段,UEFI会枚举搜索各个硬件的UEFI驱动并相继加载,完成硬件初始化工作,这相比BIOS的读中断加载速度会快的多,同样如加载显卡的UEFI驱动成功,电脑也会出现启动画面,硬件驱动全部加载完毕后,最后同BIOS一样,也得去启动操作系统。
在启动操作系统的阶段,同样是根据启动记录的启动顺序,转到相应设备(仅限GPT设备,如果启动传统MBR设备,则需要打开CSM支持)的引导记录,引导操作系统并进入,这里需要注意的是,UEFI在检测到无任何操作系统启动设备时,会直接进入UEFI设置页面,而不是像BIOS那样黑屏显示相关信息。
综上对BIOS和UEFI启动计算机过程的叙述,可以概括为:BIOS先要对CPU初始化,然后跳转到BIOS启动处进行POST自检,此过程如有严重错误,则电脑会用不同的报警声音提醒,接下来采用读中断的方式加载各种硬件,完成硬件初始化后进入操作系统启动过程;而UEFI则是运行预加载环境先直接初始化CPU和内存,CPU和内存若有问题则直接黑屏,其后启动P__E采用枚举方式搜索各种硬件并加载驱动,完成硬件初始化,之后同样进入操作系统启动过程。
此外,BIOS是16位汇编语言程序,只能运行在16位实模式,可访问的内存只有1MB,而UEFI是32位或64位高级语言程序(C语言程序),突破实模式限制,可以达到要求的最大寻址。
电脑新手必备维修常识:主板上常见英文标识解释!
1.硬盘和软驱接口
PRIIDE和IDE1及SEC IDE和IDE2···表示硬盘和光驱接口的主和副
FLOPPY和FDD1 ····· 表示软驱接口
注意:在接口周围有针接顺序接示,如1,2和33,34及39,40样数字指示。我们使用的软驱线和硬盘线红线靠近1的位置。
2.CPU插座
SOCKET-478和SOCKET 462,SOCKET 370··表示CPU的类型的管脚数。
3.内存插槽
DIMM0,DIMM1,和DDR1,DDR2,DDR3···表示使用的内存类型
4.电源接口
AT__1或AT__PWR ···20针AT__电源接口
AT__12V······CPU供电的专用12V接口(2黄2黑共4根)
AT__P5 ······内存供电接口(颜色为1红,2橙,3黑,共6根)
5.风扇接口
CPU-FATN1····· CPU风扇
PWR-FAN1······电源风扇
CAS-FAN1和CHASSIS FAN和SYS FAN等···表示机箱风扇电源接口
FRONTFAN ······前置机箱风扇
REARFAN ·······后置机箱风扇
6.机箱面板接口
P_PANEL或FRONT PNL1···前置面板接口
RESET或RST ······· 复位
PWR_SW或PW_ON ······电源开
PWR_LED·········电源指示灯
ACPI_LED·········高级电源管理状态指示灯
TUBRO_LED或TB_LED ····表示加速状态指示灯
HD_LED或IDE_LED ·····硬盘指示灯
SCSILED·········SCSI硬盘工作状态指示灯
HD+和HD-········硬盘指示灯的正负极,如MPD+和MPD-,PW+和PW-
SPEAKER和SPK······主板喇叭接口
BZ1··········峰鸣器
KB_LOCK和KEYLOCK···表示键盘锁接口
TUBROS/W·······加速转换开关接口
7.外设接口
LPT1和PARALL·····表示打印机接口
COM1和COM2······串行通讯端口,也是外围MODEM接口,老的方形鼠标接口
RJ45·········内置网卡接口
RJ11·········内置MODEM接口
USB或USB1及USB2,FNT USB等···表示主板前置或后置USB接口
MSE/KYBD······鼠标和键盘接口
CD_IN1和JCD···· 表示CD音频输入接口
AU___IN1和JAU__···· 表示线路音频输入接口
JAUDIO或AUDIO····表示板载音频输出接口。如果你的音箱有前置耳机和话筒插孔时,并且其接口符合板载AUDIO接口,这时你就可以方便的同时使用前置和后置音频输出,不必来回地拔来拔去。
F_AUDIO······· 前置音频输入输出接口
MODEMIN1······内置调制解调器输入接口
关于 DIY 硬件全新工包 科普知识
主板、显卡的全新工包是什么意思?
在DIY硬件中,工包基本会出现在主板和显卡以及电源上,尤其是主板和显卡。所谓的“工包”就是没有零售包装盒的产品,硬件单独只有一个防静电袋包装,也有的工包有牛皮纸简易的包装盒(非零售彩盒),通常这些产品会放置在一个大纸箱内,里面有纸片将每一个硬件隔开,全新工包就更好理解了,也就是全新并且没有零售包装盒的产品,非零售产品,工包产品价格相比零售产品的便宜不少。
在知名硬件品牌中,例如华硕、技嘉、微星等,也存在工包的主板和显卡产品,而这些工包产品主要是针对人群主要是网吧、DIY整机商等大批量采购装机的人群,价格便宜,安装的时候更方便,无需一个一个拆包装。
可能会有用户说,这和散片CPU是不是一个道理,也是没有包装,只有一个裸CPU,表面上是一个道理,但是大有不同。CPU散片主要在供货 渠道 、质保、包装不同,CPU性能、做工上没有差别,但是工包的显卡和主板在供货渠道是相同的,正规渠道流出的产品,主要是面向的群体不同,质保通常和零售产品是相同的,但是做工用料上相比零售产品存在差异,出现用料缩水的现象,这也是工包产品便宜的主要原因,不只是没有零售包装盒那么简单。
谈论到工包缩水产品,不得不说一下电脑整机,电脑整机为什么不推荐,从目前市场来看,鱼龙混杂,主要可以分为三类。
1、二手硬件组装而成的一台电脑
停产硬件组装的电脑,多为淘汰多年的i5、i7处理器,一般是intel第一代、二代、三代i5、i7处理器,型号一般是i5-750、i7-920、i5-2400、i5-3470等停产产品。要知道现在已经是intel第九代处理器了,每一代会有不同程度的升级,包括架构、工艺、核心、单核性能,虽然开头都是i5、i7型号,可以说已经淘汰历代i5、i7处理器还不如目前的低端产品,要知道,intel七代到八代已经有了40%性能提升,八代到九代也有着10%左右的性能提升。对于只认i5、i7处理器,而不知道代数的重要性的小白来说,被坑真的还蒙在鼓里,看起来型号是i5、i7开头,显得很高端,但是与新产品性能对比,可能也就是入门产品的性能水平。
2、洋垃圾硬件组装而成的一台电脑
洋垃圾其实也是二手,只是是服务器淘汰下来的产品,它的优势就是核心多,洋垃圾硬件组装而成的电脑可以说是最可以“唬人”,什么六核十二线程什么吊打i5、i7,什么丧尽天良的性能对比图等,在忽悠小白面前什么假话都说尽了。通常这些CPU基本都是E5、E、__开头的型号,号称是i5级、i7级、i9级,总之能写多夸张就写多夸张。这些洋垃圾虽然具有核心数量和线程数较多,但是架构偏老,工艺落后、发热量大,单核性能偏弱,论性能来说,还不如目前在售的入门级CPU。一般在主板上会搭配淘汰魔改的__58、__79主板,像__58、__79这种LGA1366、LGA 2011接口的主板早淘汰了,市面上根本没有全新货,intel更不可能生产淘汰产品,都是小工厂回收的__79、__58芯片进行翻新的“新主板”,这类主机除了机箱是新的, 其它 不可能是新的。
3、缩水工包硬件组装而成的一台电脑
说到这里,又进行关于工包硬件的主题了,这种主机虽然采用的是全新目前在售的硬件,但是“水”依然很深,首先CPU不用说肯定是散片,甚至会掺杂杂牌或者三线品牌的产品,这一切都是为了降低成本。相信不少用户发现有些电脑整机采用华硕等知名的主板,整机出现之类的知名品牌,像主板、显卡、电源之类基本是工包产品,就拿华硕主板为例,号称华硕四大神兽,例如DRAGON (龙)、 PI__IU (貔貅) 、BASALT (玄武) 、KYLIN (麒麟),这些也可以称之为电商专供,其实就是工包,例如华硕B365M-BASALT(有些电商很聪明,直接不写,就直接写华硕B360M或者华硕B365M,不敢写后缀的基本都是这种类型),都是属于工包主板,价格比较低,在做工用料、供电相数、接口等方面有一定缩水,用料能省都省了,都是为了降低整机预算,而这些“工包”产品,被不少用户称之为“缩水”产品。
就像如下网上某款整机的主板,型号为华硕B365M-BASALT,就是属于工包产品。
我们来看下工包的华硕B365M-BASALT和零售的华硕 TUF B365M-PLUS GAMING主板有什么区别吧,如下图所示。
从主板外观上来看,相信大家可以一目了然,工包主板在没有散热装甲,无疑在散热和颜值上会差点,尺寸上,工包主板也缩小了不少,虽然都是基于M-AT__板型,华硕B365M-BASALT尺寸只有22.6 厘米 __ 18.5 厘米,而零售版的华硕 TUF B365M-PLUS GAMING尺寸为24.4 厘米 __ 24.1 厘米,尺寸上的缩水就意味着主板布局更加紧凑,例如少了两根内存插槽、一根显卡插槽、一个M.2插槽、两个sata接口等等,总之基本能省都省了,做工用料基本一目了然,就不一一介绍了。还有尤为重要的供电部分,工包只有5相供电,而零售版的拥有7相供电,包括采用的电容等采用都是有所不同的。
而工包显卡也类似主板这样,主要是用料上的“缩水”,与零售版可能会存在用料、散热、RGB灯效、PCB板、供电、显示接口支持等区别。最大的区别主要反映在散热和超频能力上,散热会相对差一些,超频能力弱一些,如果零售最便宜的版本,称之为丐版,那工包显卡一定是丐中丐,丐中的霸主!
就像某彩虹家的网驰版本显卡,就是属于工包产品,如下图所示,这款显卡虽然是拥有定位中高端的RT__2060芯片,但是做工用料看起来甚至还不如千元级的显卡。
电脑主板基础实用知识相关文章:
★ 电脑主板的基础知识大全
★ 电脑主板基础知识大全
★ 主板常用基础知识讲解
★ 主板基础应用知识大全
★ 电脑主板的常用知识
★ 电脑主板应用知识大全
★ 小白主板基础知识扫盲
★ 电脑主板实用冷门知识
★ 电脑主板的科普知识大全
★ 【电脑硬件知识】:新手必备的四大电脑硬件基础常识
在学delphi的中途再加java会不会太难
程序的能力是靠时间积累的.
使用不同的语言是表达形式.
你用DELPHI,再学JAVA,是换一种程序表达形式.
别担心,我这里有delphi里面的组件,的所有教程.
Delphi的编码规范
Santch
1.规范简介
本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2.单元的格式
2.1 基本要求
2.1.1 缩进
缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用Tab。因为Tab会因为用户所作的设置不同而产生不同的效果。当遇到begin 或进入判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯增加一级, 当遇到end或退出判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯减少一级。
2.1.2 Begin…End
begin语句和end语句在源程序中要独占一行,例如:
for I := 0 to 10 do begin //不正确的用法
end;
for I := 0 to 10 do //正确的用法
begin
end;
2.1.3空格
在操作符及逻辑判断符号的两端添加空格,例如:I := I + 1;,a and b 等,
但添加括号时不需要空格。
例如:if ( ab )and( a错误的用法
if (a b) and (a c) then //正确的用法
2.1.4 变量
尽量不用缩写,尽量用名词,如有多个单词则每个单词的第一个字符一定要大写;见名知意
所有模块内全局变量必须用‘F’为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。
2.2单元说明
新建每一个新单元文件时,请先按如下格式定制单元说明
{*******************************************************
Copyright?(c)?2000-2004?*********公司技术开发部
Project:---该单元所属的项目
Module:---该单元所属的功能模块
Describe:---该单元的功能
Author:---创建人
Date:---创建日期
Version版本号:
History`s Modification:---修改历史区域
{*************************
Modify No:---修改编号
Modifier:---修改人
DateTime:---修改时间
Cause:---修改原因
Modify No:---修改编号
Modifier:---修改人
DateTime:---修改时间
Cause:---修改原因
*************************}
*******************************************************}
2.3 过程与函数的说明
{*******************************************************
PrcedureeName/FunctionName:
Input: a---输入参数说明,b---输入参数说明,c---输入参数说明
Output: x---输出参数说明
Const: s---常量说明,t---常量说明
var: x---变量说明, j---变量说明
Describe:----功能描述
若该过程或函数不是该单元创建人所撰写请在此后再加上以下几项内容:
Author:
Date:
*******************************************************}
3.控件的命名
控件的名称可使用以下简写,但所用简写于控件名称之间药添加‘_’:
Standard Tab
mm TMainMenu
pm TPopupMenu
mmi TMainMenuItem
pmi TPopupMenuItem
lbl TLabel
edt TEdit ; TSpinEdit ; TMaskEdit
mem TMemo
btn TButton ; TBitBtn ; TSpeedButton ; TSpinButton
cb TCheckBox
rb TRadioButton
lb TListBox
cb TComboBox
scb TScrollBar
gb TGroupBox
rg TRadioGroup
pnl TPanel
cl TCommandList
Additional Tab
sg TStringGrid
dg TDrawGrid
img TImage
shp TShape
bvl TBevel
sbx TScrollBox
clb TCheckListbox
spl TSplitter
stx TStaticText
cht TChart
Win32 Tab
tbc TTabControl
pgc TPageControl
il TImageList
re TRichEdit
tbr TTrackBar
prb TProgressBar
ud TUpDown
hk THotKey
ani TAnimate
dtp TDateTimePicker
tv TTreeView
lv TListView
hdr THeaderControl
stb TStatusBar
tlb TToolBar
clb TCoolBar
System Tab
tm ??TTimer
pb ??TPaintBox
mp ?TMediaPlayer
olec ?TOleContainer
ddcc ?TDDEClientConv
ddci ?TDDEClientItem
ddsc ?TDDEServerConv
ddsi ?TDDEServerItem
?
Samples Tab
gg?? TGauge
cg?? TColorGrid
spb?
spe?
dol? TDirectoryOutline
cal? TCalendar
ibea? TIBEventAlerter
?
ActiveX Tab
cfx? TChartFX
vsp?? TVSSpell
f1b?? TF1Book
vtc?? TVTChart
grp?? TGraph
?
Win31 Tab
dbll?? TDBLookupList
dblc?? TDBLookupCombo
ts???? TTabSet
ol???? TOutline
tnb??? TTabbedNoteBook
nb???? TNoteBook
hdr??? THeader
flb??? TFileListBox
dlb??? TDirectoryListBox
dcb?? TDriveComboBox
fcb?? TFilterComboBox
Midas Tab
prv?? TProvider
cds?? TClientDataSet
qcds?? TQueryClientDataSet
dcom? TDCOMConnection
olee?? TOleEnterpriseConnection
sck?? TSocketConnection
rms?? TRemoteServer
mid?? TmidasConnection
Internet Tab
csk ?TClientSocket
ssk ?TServerSocket
wbd ?TWebDispatcher
pp ???TPageProducer
tp ???TQueryTableProducer
dstp? ?TDataSetTableProducer
nmdt ??TNMDayTime
nec ???TNMEcho
nf ????TNMFinger
nftp ???TNMFtp
nhttp ??TNMHttp
nMsg ??TNMMsg
nmsg ??TNMMSGServ
nntp ???TNMNNTP
npop ???TNMPop3
nuup ???TNMUUProcessor
smtp ???TNMSMTP
nst ????TNMStrm
nsts ???TNMStrmServ
ntm ???TNMTime
nudp ??TNMUdp
psk ???TPowerSock
ngs ???TNMGeneralServer
html? ?THtml
url? ??TNMUrl
sml ??TSimpleMail
Data Access Tab
ds? ?TDataSource
tbl? ?TTable
qry? ?TQuery
sp ??TStoredProc
db ??TDataBase
ssn? ?TSession
bm ??TBatchMove
usql ??TUpdateSQL
Data Controls Tab
dbg? ?TDBGrid
dbn ??TDBNavigator
dbt ??TDBText
dbe ??TDBEdit
dbm? ?TDBMemo
dbi ??TDBImage
dblb ??TDBListBox
dbcb? ?TDBComboBox
dbch? ?TDBCheckBox
dbrg ??TDBRadioGroup
dbll ??TDBLookupListBox
dblc ??TDBLookupComboBox
dbre ??TDBRichEdit
dbcg ??TDBCtrlGrid
dbch ??TDBChart
Decision Cube Tab
dcb ??TDecisionCube
dcq ??TDecisionQuery
dcs ??TDecisionSource
dcp ??TDecisionPivot
dcg ??TDecisionGrid
dcgr ?TDecisionGraph
QReport Tab
qr ??TQuickReport
qrsd ?TQRSubDetail
qrb ??TQRBand
qrcb ??TQRChildBand
qrg ??TQRGroup
qrl ??TQRLabel
qrt ??TQRText
qre ??TQRExpr
qrs? ?TQRSysData
qrm ??TQRMemo
qrrt ??TQRRichText
qrdr? ?TQRDBRichText
qrsh ??TQRShape
qri ???TQRImage
qrdi ??TQRDBMImage
qrcr? ?TQRCompositeReport
qrp ??TQRPreview
qrch TQRChart
Dialogs Tab
OpenDialog ???????TOpenDialog
SaveDialog ???????TSaveDialog
OpenPictureDialog ?TOpenPictureDialog
SavePictureDialog ??TSavePictureDialog
FontDialog ????????TFontDialog
ColorDialog ???????TColorDialog
PrintDialog ????????TPrintDialog
PrinterSetupDialog? ?TPrintSetupDialog
FindDialog ?????????TFindDialog
ReplaceDialog ??????TReplaceDialog
4.修改的要求
4.1修改历史记录
对源文件进行经过批准的修改时,修改者应在程序文件头加入修改历史项。在以后的每一次修改时,修改者都必须在该项目中填写下列信息:
Modifier:
DateTime:
Cause:
Comment:
4.2新增代码行
新增代码行的前后应有注释行说明。
// ab 修改人; 修改时间; 修改说明。
新增代码行
// ae
4.3删除代码行
删除代码行的前后用注释行说明。
//db 修改人,修改时间,修改说明。
//要删除的代码行(将要删除的语句进行注释)
//de
4.4修改代码行
修改代码行以删除代码行后在新增代码行的方式进行。
//mb 修改人,修改时间,修改说明。
//pre 修改前的代码行
修改后的代码行
//me
5.文件的命名
项目文件必须使用一个有意义的名字。例如: Delphi中系统信息的项目文件被命名为 SysInfo.dpr。
3.7.2 Form 文件
同Form的名称相一致:例如:Form的名称为frrmMain则Form文件的名称就为frmMain.dfm。对应的Unit文件就是frmMain.pas
3.7.3 Data Module 文件
data module文件的命名应该有意义,并且使用‘DM’作为前缀。例如: 用户data module 被命名为‘dmCustomers.dfm’。 对应的Unit文件就是rdmCustomers.pas
3.7.4 Remote Data Module 文件
remote data module文件的命名应该有意义,并且使用‘RDM’作为前缀。例如:用户remote data module 被命名为‘rdmCustomers.dfm’。 对应的Unit文件就是rdmCustomers.pas
3.7.5普通 Unit文件
unit文件的命名应该有意义,并且使用‘u’作为前缀。例如: 通用unit 被命名为‘uGeneral.pas’。
祝你好运!!!!!!!!!!!!!!!!!!
单片机对讲机原理
方案一 以单片机为核心处理器的DMR对讲机方案(MSP430F149+AMBE1000)
1.工作原理
发射时,由麦克送来的模拟语音经CSP1027进行A/D转换,由声码器AMBE1000进行语音压缩,交单片机MSP430F149进行协议填充组帧,送到CC1101进行调制后发射。接收时,由CC1101解调出来的码流经MSP430F149进行帧恢复,交由声码器进行解压,数据经CSP1027进行D/A转换为模拟语音信号。
2.关键器件
微控制器采用TI公司的MSP430F149,它是16位超低功耗、混合信号微控制器,采用“冯·诺依曼”结构,可用JTAG(一种标准测试接口)进行仿真调试。
芯片的电源电压为(1.8~3.6)V,在RAM数据保持方式下耗电仅0.1uA,活动模式耗电250 uA/MIPS(每秒百万条指令数)。运算时由于本单片机采用16位RISC(精简指令集计算机),一个时钟周期可以执行一条指令,而传统的单片机要12个时钟周期才执行一条指令。工作在8MHz的晶振频率时,指令速度可达8MIPS,而同样这个指令速度,16位处理器比8位处理器高远不止两倍。
概述
声码器AMBE1000在国内已有产品,价格比较合理。CC1101的灵敏度为-116dBm(1.2kbps,1%数据包误码率,工作在433MHz时),与国内的对讲机可用灵敏度-120dBm相比偏低,但符合欧盟的CE标准规定小于-107dBm.另外,射频模块的功率输出仅12dBm(16mW),所以本方案仅适用短距离范围的通信。提高灵敏度可考虑用器件ADF7021作为射频模块。
方案二 以DSP+MCU为核心处理器的对讲机方案
1.工作原理
方案以MSP430为中心系统来完成数据的收、发控制等工作,系统采用MSP430中 USART模块的SPI同步通信模式。在接收过程中,首先接收来自射频芯片的FSK数据,解调后由MSP430将数据帧的同步域、尾域、ID域以及命令字节去除后,数据发至C5402进行去压缩处理,数据交AIC23进行D/A转换为语音信号。在发送过程中,首先由AIC23进行A/D转换,数据交C5402将语音压缩,再由微控制器MSP430进行协议填充,加上头域、尾域、ID域以及命令字节形成数据帧,然后控制射频模块将数据发送。
2.关键器件
TMS320C5402是TI公司于1996年推出的一种定点DSP芯片,采用先进的修正哈佛结构和8总线结构,使处理器的性能大大提高。其独立的程序和数据总线允许同时访问程序存储器和数据存储器,实现高速并行操作。如,可以在一条指令中同时执行3次读操作和1次写操作。TMS320C5402的运行速度为40MIPS,指令周期为25ns.此外,还可以在数据总线与程序总线之间相互传送数据。从而使处理器具有单个周期内同时执行算术运算、逻辑运算、位移操作、乘法累加运算以及访问程序、数据存储等强大功能。
概述
采用DSP方案时,免去选用语音芯片声码器的烦恼,提高了数字对讲机对语音处理的能力,可让语音编码的算法尽量优化,从而使对讲机语音信号的处理更具通用性和扩展性。本方案是以DSP为开发平台,经过连续可变斜率增量(CVSD)调制编解码得到语音信号的清晰度和自然度好,但软件开发工作量大。CC1000不支持4FSK调制与解调,本方案不适用于DMR与dPMR协议。另外CC1000的接收可用灵敏度为-110dBm,国内对讲机厂家可能嫌低。
方案三 以单片机为核心处理器的dPMR对讲机方案(CMX618+CMX7141)
1.工作原理
发射时,麦克送来的模拟语音经CMX618内部进行增益调节,A/D转换和压缩处理,然后通过SPI(串行外围设备接口)进入CMX7141基带处理器,在微控制器LPC2138的控制和管理下经CMX7141芯片内部进行信道编码,dPMR协议栈打包,数字滤波以及4FSK调制,调制编码后的语音数据经CMX7141芯片的MOD1/2管脚分别输出给外部的发射VCO和压控温补参考时钟,经两点调制输出射频载波给发射功放,并到天线输出。
接收时,CMX7141对基于超外差射频接收模块送来的4FSK解调信号在微控制器LPC2138的控制和管理下进行4FSK解调,dPMR拆包,信道解码,最终得到语音编码数据,经SPI串口送给CMX618进行语音解压缩并恢复语音信号。
2.关键器件
语音编解码片CMX618是CML微电子(新加坡)私人有限公司的产品,芯片由音频压缩/解压器、RALCWI编解码器、前向纠错编解码器和其他特殊功能模块几部分组成。
RALCWI是一种鲁棒的先进的复杂性波形插入技术,与其他语音编解码技术不同,它使用独有的信号分解和参数编码方法,可确保在较高的压缩率下有较好的语音质量。
在声码器中,采用RALCWI技术实现的语音质量与编码速率在4kbps以上的标准声码器话音质量相当。
概述
本方案优点是开发时的灵活性高,模拟与数字可双模设计,且同一个硬件开发平台能满足不同的数字对讲机标准,支持多种语音声码器,射频的接收灵敏度可做得较高达到-118dBm(误码率为1%时)。发射功率0.5W,功率容易提升。
缺点是前期的软件开发成本高并有一定难度,射频模块ATB010只支持dPMR的EN301,166标准,不支持DMR.
方案四 以MCU+DSP的DMR对讲机方案(MSP430FG4619+VC5510)
1.工作原理
发射时,由麦克送来的模拟语音经模数转换器AD73311采样成数字信号,AMBE2000对语音数字信号进行压缩编码,数字信号由VC5510进行DMR通信协议填充组成帧信号和4FSK的调频波成形,最后由微控制器MCU进行D/A转换,送往射频模块进行发射调制,实现发射。
接收时,MCU将射频模块送来已解调数据进行A/D转换,经VC5510进行拆帧,交AMBE2000进行解压,数据由AD73311数模转换为语音信号。
微控制器MSP430FG4619是整个系统的控制中心,人机接口如键盘、显示器与MCU直接连接。微控制器实现对射频模块的控制,包括基带信号的发送与接收、射频频率点的控制、信道检测等,MCU还负责DMR协议的高层信令控制、人机接口的互通等。
另外,请注意微控制器还要完成基带信号的AD/DA转换功能。
2.关键器件
AMBE2000TM声码器是美国语音公司DVSI推出的一款适应性强、高性能、单芯片的语音压缩编解码器。它能在低速率下提供优良的语音质量,并实现了实时的、全双工的标准设定的AMBE语音压缩软件算法。
大量的评估显示,这款声码器具有在一般数据速率下提供同数字蜂窝系统一样性能的能力。AMBE在2.4kbps速率下保持自然语音质量和清晰度,由于AMBE算法复杂性低,所以它能够完全集成在成本低、功耗低的芯片上。
概述
方案简单,实用。
软件开发中,微控制器和数字处理器的程序对DMR协议的分层必须有清晰的概念,正确的程序设计是硬件实现的保证。声码器的选用有较大的余地。
方案五 以ARM+DSP的DMR对讲机方案
1.工作原理
发射时,由麦克送来的话音信号由数模转换器AD73311进行采样,数据由声码器进行压缩,OMAP5910内的DSP与ARM对压缩的数据进行协议添加与控制,形成4FSK波形,数模转换器AIC23将4FSK数字波形模拟化后进行射频调制,调频载波由天线发射。
接收时,射频模块对接收的模拟信号进行解调,模拟信号交AIC23进行数字化处理,OMAP5910对接收到的数据进行信道解码和拆帧,帧信号交声码器进行解压,数据由AD73311还原为模拟语音信号。
2.关键器件
OMAP5910是一款嵌入式双核处理器,它集成了高性能的ARM925、TMS320C55x DSP核和已经得到的广泛应用的各种接口与外设,具有较强的处理能力、较低的功耗和较高的信价比。ARM处理器内核用于DMR协议的处理与系统控制,DSP内核用于完成数字信号的实时处理。
OMAP5910及其设计套件具有多个目标应用市场,提供多媒体功能、改善人机界面并延长电池寿命。
概述
从技术上讲,双核处理器方案与前面介绍的DSP+MCU相比,可以降低系统体积,减少电路的复杂性,对通信协议能作较好的兼容,升级空间大。声码器的应用有可选国产芯片的余地。
缺点是前期的软件开发工作量大,ARM与DSP间的协调工作要深入研究,以免浪费处理器的资源。此外,由于OMAP的功能十分强大,该平台还可以有更多的应用,如加入视频、娱乐等功能。
方案六
1.工作原理
发射时,麦克送来的模拟语音经WM8758B进行A/D转换,送到SCT3252进行压缩处理,经SCT3252进行dPMR协议处理后送到WM8758B的D/A转换单元调制成4FSK信号,经两点调制输出射频载波给发射功放,送天线输出。
接收时,WM8758B对射频模拟信号进行A/D转换,送到SCT3252进行4FSK解调,dPMR拆包,信道解码,最终得到语音编码数据,经解码处理后把语音数据送到WM8758B进行D/A转换,经由外部放大电路送入喇叭还原成话音。
2.关键器件
SCT3252是上海士康公司生产的语音编解码及dPMR协议栈处理芯片。具有较好的语音质量及较高的接收灵敏度(可达-126dBm)。
概述
本方案的特点是语音编解码及dPMR协议栈都集成在SCT3252中,大大减少了控制单元MCU的工作量,另外SCT3252为LQFP100封装,焊接方便。整个方案简单,软件升级的空间大。本方案可以实现数模兼容,通过开关可方便进行数字与模拟通信之间的切换。
WM8758B只起模数转换作用,厂家认为,把它集成进SCT3252是指日可待的事。
JAVA中怎么给下拉组件添加事件监听,使在下来菜单中所选的返回到文本组件中?
你的程序我帮你改好了,你看看吧。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test_4 implements ItemListener{
String str[]={"目标","技能","经验","教育背景","证书"};
JTextField text=new JTextField(10);
JComboBox cbx=new JComboBox(str);
JFrame m=new JFrame("习题4");
test_4(){
Container c=m.getContentPane();
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m.setSize(300,300);
m.setVisible(true);
//int i=0;
JPanel pnl=new JPanel();
JPanel pnl1=new JPanel();
pnl.setBackground(Color.yellow);
pnl.setSize(100, 100);
pnl.setLocation(5, 5);
c.add(pnl,BorderLayout.NORTH);
pnl1.setSize(110, 110);
pnl1.setBackground(Color.pink);
pnl1.setLocation(50, 50);
c.add(pnl1,BorderLayout.CENTER);
cbx.setSize(20, 20);
pnl.add(cbx);
text.setSize(100,100);
text.setHorizontalAlignment(JTextField.CENTER);
pnl1.add(text);
//cbx.addComponentListener(m);
cbx.addItemListener(this);
}
public static void main(String[] args) {
new test_4();
}
public void itemStateChanged(ItemEvent arg0) {
text.setText((String)cbx.getSelectedItem());
}
}