① 单片机的现状也发展前景
转自:嵌入开发技术论坛 计算机系统的发展已明显地朝三个方向发展;这三个方向就是:巨型化,单片化,网络化。以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embedded microcontroller)。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。 在本文,介绍单片机的最新技术进步,包括数字单片机的工艺及技术,模糊单片机的工艺及技术,单片机的可靠性技术,以及以单片机为核心的嵌入式系统。 数字单片机的技术发展 数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。下面分别就这四个方面说明单片机的技术进步状况。 1、 内部结构的进步 单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/D转换器,D /A转换器,串行通信接口,Watchdog电路,LCD控制器等。 有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ 系列等。特别是在单片机C167CS-32FM中,内部还含有2个CAN。因此,这类单片机十分容易构成网络。特别是在控制,系统较为复杂时,构成一个控制网络十分有用。 为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统。有的单片机内部设置了专门用于变频控制的脉宽调制控制电路,这些单片机有Fujitsu公司的MB89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在这些单片机中,脉宽调制电路有6个通道输出,可产生三相脉宽调制交流电压,并内部含死区控制等功能。 特别引人注目的是:现在有的单片机已采用所谓的三核(TrCore)结构。这是一种建立在系统级芯片(System on a chip)概念上的结构。这种单片机由三个核组成:一个是微控制器和DSP核,一个是数据和程序存储器核,最后一个是外围专用集成电路(ASIC)。这种单片机的最大特点在于把DSP和微控制器同时做在一个片上。虽然从结构定义上讲,DSP是单片机的一种类型,但其作用主要反映在高速计算和特殊处理如快速傅立叶变换等上面。把它和传统单片机结合集成大大提高了单片机的功能。这是目前单片机最大的进步之一。这种单片机最典型的有Infineon公司的TC10GP;Hitachi公司的SH7410,SH7612等。这些单片机都是高档单片机,MCU都是32位的,而DSP采用16或32位结构,工作频率一般在60MHz以上。 2、 功耗、封装及电源电压的进步 现在新的单片机的功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲,节电等工作方式。Philips公司的单片机P87LPC762是一个很典型的例子,在空闲时,其功耗为1.5 mA,而在节电方式中,其功耗只有0.5mA。而在功耗上最令人惊叹的是TI公司的单片机MSP430系列,它是一个 16位的系列,有超低功耗工作方式。它的低功耗方式有LPM1、LPM3、LPM4三种。当电源为3V时,如果工作于 LMP1方式,即使外围电路处于活动,由于CPU不活动,振荡器处于1~4MHz,这时功耗只有50?A。在LPM3 时,振荡器处于32kHz,这时功耗只有1.3?A。在LPM4时,CPU、外围及振荡器32kHz都不活动,则功耗只有0.1?A。 现在单片机的封装水平已大大提高,随着贴片工艺的出现,单片机也大量采用了各种合符贴片工艺的封装方式出现,以大量减少体积。在这种形势中,Microchip公司推出的8引脚的单片机特别引人注目。这是PIC12CXXX系列。它含有0.5~2K程序存储器,25~128字节数据存储器,6个I/O端口以及一个定时器,有的还含4道A/D ,完全可以满足一些低档系统的应用。扩大电源电压范围以及在较低电压下仍然
② 谁能给我解释一下以下的单片机程序
ORG 0000H
LJMP MAIN
ORG 0100H ;主程序地址
MAIN: JNB P1.0,P10 ;哪个键按下,显示哪个波形
JNB P1.1,P11
JNB P1.2,P12
JNB P1.3,P13
LJMP MAIN ;没有键按下返回主程序循环
P10: MOV R7,#00H ;方波波形,R7为特征码,放00,表示方波
LCALL SQU ;调用方波波形函数
LJMP MAIN ;调用完返回主程序循环
P11: MOV R7,#01H ;01表示SAW波
LCALL SAW
LJMP MAIN
P12: MOV R7,#02H
LCALL TRI
LJMP MAIN
P13: MOV R7,#03H
LCALL SIN
LJMP MAIN
SQU: JNB P1.1,N1 ;方波函数,如果有其他键按下
JNB P1.2,N2 ;退出程序
JNB P1.3,N3
LJMP SSQU ;没有键按下,到SSQU函数产生方波
N1: MOV R7,#01H ;哪个键按下就在R7中记下特征码
LJMP TC0
N2: MOV R7,#02H
LJMP TC0
N3: MOV R7,#03H
LJMP TC0
SSQU: CJNE R7,#00H,TC0 ;R7不为0退出
MOV R0,#00H ;R0中放00
MOV DPTR,#7FFFH ;这个应该是DAC0832的地址
K00: MOV A,#0FFH ;A中放FF,高电平
MOVX @DPTR,A ;A到0832转换
MOV P0,#0FFH ;这一句不怎么懂,感觉可以去掉
MOV P2,#0FFH ;值P2输入方式,P2是通过拨码按钮改
MOV A,P2 ;变数值,P2越大,波形周期越小
CPL A
MOV R3,A
L00: DEC R3
CJNE R3,#255,L00 ;这个循环改变周期
INC R0
INC R0
CJNE R0,#254,K00 ;高电平波循环127次
MOV R0,#00H
K01: MOV A,#00H ;低电平,跟高电平差不多
MOVX @DPTR,A
MOV P0,#00H
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L01: DEC R3
CJNE R3,#255,L01
INC R0
INC R0
CJNE R0,#254,K01
LJMP SQU ;显示完一个波形,回到方波函数开始,判断有无其他按键
TC0: RET ;返回主函数
SAW: JNB P1.0,N4 ;判断有无其他按键,同方波
JNB P1.2,N5
JNB P1.3,N6
LJMP SSAW
N4: MOV R7,#00H
LJMP TC1
N5: MOV R7,#02H
LJMP TC1
N6: MOV R7,#03H
LJMP TC1
SSAW: CJNE R7,#01H,TC1 ;特征码不是01 退出
MOV R0,#0FFH ;RO中放即将输出的值
MOV DPTR,#7FFFH
K10: MOV A,R0 ;锯齿波的每个值
MOVX @DPTR,A ;输出
MOV P0,R0
MOV P2,#0FFH ;通过P2改变周期
MOV A,P2
CPL A
MOV R3,A
L10: DEC R3
CJNE R3,#255,L10
INC R0 ;通过R0加1 来显示锯齿波的斜坡
CJNE R0,#255,K10 ;RO不等于255,循环锯齿波的每个值
LJMP SAW ;等于255,完成一个锯齿波周期,回锯齿波开始
TC1: RET ;退出
TRI: JNB P1.0,N7 ;三角波,类似于两个相反的锯齿波
JNB P1.1,N8
JNB P1.3,N9
LJMP TTRI
N7: MOV R7,#00H
LJMP TC2
N8: MOV R7,#01H
LJMP TC2
N9: MOV R7,#03H
LJMP TC2
TTRI: CJNE R7,#02H,TC2
MOV R0,#00H
MOV DPTR,#7FFFH
K20: MOV A,R0
MOVX @DPTR,A
MOV P0,R0
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L20: DEC R3
CJNE R3,#255,L20
INC R0
INC R0
CJNE R0,#254,K20
K21: MOV A,R0
MOVX @DPTR,A
MOV P0,R0
MOV P2,#0FFH
MOV A,P2
CPL A
MOV R3,A
L21: DEC R3
CJNE R3,#255,L21
DEC R0
DEC R0
CJNE R0,#0,K21
LJMP TRI
TC2: RET
SIN: JNB P1.0,N10 ;正弦波,是通过存储在代码区的一个数
JNB P1.1,N11 ;组来显示值的
JNB P1.2,N12
LJMP SSIN
N10: MOV R7,#00H
LJMP TC3
N11: MOV R7,#01H
LJMP TC3
N12: MOV R7,#02H
LJMP TC3
SSIN: CJNE R7,#03H,TC3
MOV R0,#00H
MOV DPTR,#7FFFH
K30: MOV A,R0
MOV DPTR,#TAB ;数组的地址
MOVC A,@A+DPTR ;把第R0个数放到A中
MOV DPTR,#7FFFH
MOVX @DPTR,A ;输出A
MOV P0,A
INC R0 ;RO加1
MOV P2,#0FFH ;周期
MOV A,P2
CPL A
MOV R3,A
L30: DEC R3
CJNE R3,#255,L30
CJNE R0,#255,K30 ;不等于255表示一个周期内,跳到K30
LJMP SIN ;等于表示显示完一个周期,到SIN开始
TC3: RET ;退出
TAB: DB ;定义正弦函数的各个值
看了你的图和你的程序,感觉你的图画得简单了一点,特别是0832地址,控制信号都没接,看起来还在调试,建议P2口做地址总线,这样,编程比较方便,你可以把P3口做周期.或者把P1口的其他口做控制总线,这样要对0832时序比较熟悉才行.
我平时是用C开发的,很少用汇编,如果有什么错误,可以共同探讨.
③ 脑洞大开,单片机有没有多核的
以前有个湖南华芯,有双核 三核 51单片机,但是倒闭停产了。当时觉得价格,性能都不错,就是编程器麻烦,明明支持ISP,偏偏官方文档写的不清不楚,还不提供技术支持,弄得很多地方都不能用。
④ 学好单片机找什么工作
问题一:学单片机以后可以从事什么工作? 工业自动化
可以利用单片机来完成一些程序
单片机已经应用到了各个领域
小到家电大到航天飞机
最简单的 商店门头上的LED显示文字的 就是单片机做出来的
不错的专业 加油
问题二:问一下各位单片机答人学单片机有前途么 没什么优势,单片机相对于通用计算机而言学科差距很大,即使对于电科和自动化来言单片机也是非常基础的工具,没有比较高层次的人是仅通过单片机来找工作的,当然设计单片机或者开发板的除外。
单片机虽然现在可以用高级语言编程,单实质上一般是通过软件翻译工具译成汇编写到片子里的,所以单片机的应用主要是低级的工程控制或者是简单算法,和你的专业是完全脱节的,如果做这个等于你的计算机白学,而软件开发也不可能用到单片机这种东西。
即使你舍弃专业单一的从事单片机开发,那也是不可取的,单片机对于自动化有点像科学计算器相对于数学,一般做技术含量高一些的工作不会太考虑单片机方面的东西,只要算法或者控制思想能够达到要求,具体的活都是底层的技术工人干的,至于技术工人是用这种或者那种控制芯片,采用什么样的编程方法等问题一般不会太关心。就像搞数学的高层技术人员弄出来针对性的公式算法,接下来怎么代入数据来算或者用哪个品牌什么型号的计算器来算,这个虽然他们都懂但是不可能去做,因为这种工作付一中专生即可。
归根结底是没有对单片机应用做好定位:低层次的劳动干的再好也是低层次的劳动,很烂的电锯设计人员也比最好的伐木工人有优势。另外您所参加的单片机校园实践活动这些并非厂像电科或者自动化那个层次对单片机的使用。比如你所定义的智能车,自动化定义的智能是有自学习或者通俗一点能自己适应工作环境的含义的,在飞思卡尔汽车设计比赛当中也有人用单片机控制的,但是必须要提出新的智能控制理论或者建立新的智能控制算法并写出论文才敢定义智能二字;再比如机器人,也有用单片机设计的,但是往往都会提出新的平衡算法和力学方程,或者是对硬件比如滤波器,单片机时钟电路,接口等做出突破性的改进才算取得成果,并非是简单的接个数字电路再配点外设写个程序接上好使就行。
所谓的专攻单片机的也有,而且成果很丰硕,但是不适合你的专业。比如吉林大学做的博硕系列开发板就很有市场占有率,再比如我有个老师,提出了一些时钟信号误差规避算法和采用老式通用计算机CPU外接TTL电路设计专有单片机的思想。这些工作对于您的专业很不对口,如果让您设计一款单片机开发板或者给你一些硬件条件让您做一款符合工作环境的专用单片机的话肯定比较困难,所以按部就班的做好自己专业的工作才是正道,虽然条条大路通罗马,但是每个专业都有自己的路,走别人的路就成了歪门邪道了。
问题三:学好单片机出来工作好找吗 你要是学的特好,肯定能找到好工作
问题四:单片机 学精了 可以找什么工作 说实话,要看运气,看关系,看能力。
不论你在学校里多牛X,参加什么电子设计大赛。拿过什么奖项。没有用的。
学校里用的单片机,工业上都不会用。
现在51在工业上用的很少。FPGA\DSP、ARM用的比较多。
不过,工业上,对CAN\ 485\ TC/IP 这些传输协议看的比较重,你可以多学习一点。
对于51单片机,实在是没有必要在学习了。
如果要搞硬件,最好要学会ARM,还有操作系统,ucos,安卓,等主流系统,进入嵌入式行业。
另外,刚毕业的大学生,大公司一般一开始不会要你做研发。要有心理准备。
找一个对胃口,工资不错的工作真不容易。
总之,努力吧!
问题五:请问学好单片机具体能从事哪些工作? 工业自动化 可以利用单片机来完成一些程序 单片机已经应用到了各个领域 小到家电大到航天飞机 最简单的 商店门头上的LED显示文字的 就是单片机做出来的 不错的专业 加油
问题六:单片机学好了可以做哪些工作 简单点的做测试,单片机技术比较好的做研发,跟团队做项目,单片机的应用太广了,相信只要自己技术厉害,到哪都不怕
当然单片机学好也并非容易的事,一般初学者都不知道怎么学,入门学习借助吴鉴鹰单片机开发板,看视频教程,多动手多思考
后期转其他单片机开发板,突出精通一个,其他的要做到会用
问题七:学会51单片机能做什么工作? 学会51单片机可以做很多工作,简单列举一些吧。
1、工业控制领域方面,很多设备的底层控制都是采用51单片机实现的。
2、仪器仪表方面,51单片机由于成本低廉,所以很受该行业欢迎。
3、汽车行业,一辆汽车的控制MCU很多,51单片机也占有一席之地 。
4、通讯方面,51单片机在GPS、红外、射频等方面都有很广泛的应用。
5、航海航空,尽管ARM逐步储有了主导地位,但是各个模块的底层51单片机仍然再使用。
6、其他各个方面,其实作为最早大量使用的单片机之一,51单片机在各行各业都没有退出历史舞台,仍然在发挥作用。
问题八:学习单片机能找到什么样的工作 可以做设计,单片机应用领域特别广泛,比如电磁炉,可控电风扇,冰箱,洗衣机,数字电视,手机,电梯等等,主要看你对哪一个产品感兴趣
问题九:学习单片机有前途吗?想找一份单片机工程师的工作,需要学习哪些知识啊? 你好,单片机的学习肯定是有前途的,这个领域应用特别广,现在基本上找不到不应用单片机的领域。要做单片机工程师工作的话,需要会简单的模拟电子技术,数字电子技术,C语言程序设计能力 ,单片机基础知识,教程的话建议你去看一下吴鉴鹰单片机实战精讲,在很多论坛都有分享,里面源程序,原理图,Proteus仿真图都有,在里面能够看懂十个他的例程,找工作一点问题,要耐下心去学习。
问题十:学好单片机有什么用处啊,工作好找吗,一般工资多少 电子设计,嵌入式开发什么的,工资的话刚出来不高,除非你读书参加比赛然后有公司相中你可能工资就高一些,但是毕竟工资还是得靠年份和技术挂钩的
⑤ st单片机IO口类型FT、TC是什么意思
FT表示最大耐压5V。
TC表示标准3.3VI/O。
还有一些FM是FASTMODE的意思。
FM表示该IO口做I2C应用时支持400K速率,
FM+表示该IO口做I2C应用时支持高达1M的速率。
⑥ C语言控制单片机的详细原理是怎样的
C语言源程序----->C编译器----->汇编代码----->汇编器----->机器代码
所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器代码。
需要补充一点的是,单片机也是一种计算机,不要以为只有在PC机上才可以用C语言编程,C语言可以用作为任何计算机的编程语言,当然包括单片机,但有一个条件就是,你必需要有针对某种架构的计算机的C编译器。目前来讲,C语言的编译器种类非常多,有用于各种单片机以及微处理器架构的编译器版本,所以可以用C来做为单片机的编程语言。不同的是,你用TC或者VC编译得到的是X86(如Intel,AMD)的目标代码,只能在PC机上运行,而如果用单片机C编译器(比如Keil C)编译的代码是单片机代码,只能在特定的单片机上运行。目前C/C++是最流行的单片机/微处理器编程语言。