❶ 用单片机实现
1、用if或swich语句分支判断,一一对应输出。
2、用楼上的办法,将输出量按照输入0-7的顺序放在一个数组内,使用时,将输入量作为数组下标值,P0口再输出这个元素值:
unsigned char ABC[]={127,191,223... ...};
unsigned char INPUT;
INPUT=P1&7;
P0=ABC[INPUT];
3、将128这个数右移(输入值+1),然后按位取反,P0口输出这个数。
❷ 用单片机实现六个功能,选择什么单片机比较好
问问题要问清楚,这也体现了个人修学素养。
用单片机实现六个功能,哪六个功能?如果是键盘扫描、LED闪烁、数码管驱动、串口通信、定时信号输出、蜂鸣器报警,普通51单片机就可以完成。
如果是普通51单片机不能胜任的,可以选择功能强大的32位ARM单片机。
❸ 用51单片机实现音乐播放的原理是什么
需要写一段程序。
如果是简单的音乐,编乐谱推蜂鸣器就可以;如果是mp3/wav之类的音乐,需要芯片自带解码模块,或者使用外部解码芯片,还需要dac将声音推出来。
声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。
❹ 如果自己需要用单片机,但是要实现一些功能,该怎么做
应该用板子单独DIY。不知道怎么连说明你软硬件知识都还不够,继续努力学
❺ 用51单片机实现时钟功能程序
anEQUP0;
weiEQUP2;
keyBITP3.7;
ORG0000H
AJMPMAIN;绝对转移指令,2kb范围(11位)内跳转LJMP16位64kb范围内跳转
;短转移指令的功能是先使程序计数器PC加1两次(即:取出指令码),然后把加2后的地址和rel相加作为目标转移地址。因此,短转移指令是一条相对转移指令,是一条双字节双周期指令
ORG0030H;指明后面的程序从程序存储器的0030H单元开始存放
DELAY200US:;@11.0592MHz
NOP
NOP
NOP
PUSH30H
PUSH31H
MOV30H,#2
MOV31H,#179
NEXT:
DJNZ31H,NEXT
DJNZ30H,NEXT
POP31H
POP30H
RET
ORG0060H
;DISPLAY子程序
DISPLAY:
PUSHACC;不能写A,此处ACC代表地址,push后跟地址,代表把地址内的内容压入栈中
PUSH00H;R0
PUSH06H;R6
PUSH07H;R7
PUSH83H;DPH
PUSH82H;DPL
MOVR6,#01H;位选数据,01指的是缓冲区最低位数据
MOVR7,#08H;循环次数
FLAG:
MOVan,#0x00;消影
MOVA,R6
CPLA;取反
MOVwei,A;位选
MOVA,#disBufDat
ADDA,R7
SUBBA,#0X08
MOVR0,A
MOVA,@R0;读出要显示的数据到A
MOVDPTR,#disTab
MOVCA,@A+DPTR;从rom取数据,取出要显示的数据对应的段码
MOVan,A;段选
MOVA,R6
RLA
MOVR6,A;更新下一次位选
LCALLDELAY200US
DJNZR7,FLAG
POP82H;DPL
POP83H;DPH
POP07H
POP06H
POP00H
POPACC
RET
ORG0100H
;定时器中断0初始化
T0_INIT:
MOVTMOD,#0X01
MOVTH0,#0X3C
MOVTL0,#0XB0
SETBEA
SETBTR0
SETBET0
RET
ORG0130H
;T0中断处理程序
INT_TIMERE0:
PUSHACC
SETBRS0
MOVTH0,#0X3C
MOVTL0,#0XB0
INCR0
MOVA,R0
SUBBA,#0X14
JBCY,SECFLAG
MOVR0,#0x00
INCsec
SECFLAG:
CLRRS0
POPACC
RETI
ORG000BH;定时器/计数器T0入口地址
LJMPINT_TIMERE0;跳转到定时器/计数器中断服务程序中去
disTab:DB0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40;0-f,空白,横杠的段选数据
disBufDatEQU47H;定义显示缓冲数据变量区,8个
disBufDatHeadEQU40H//单片机上显示在最左边
secEQU48H
;主程序
ORG0180H
MAIN:
MOVSP,#0X60;将0x60到0x7f设为堆栈区
LCALLT0_INIT
MOVdisBufDatHead,#0X00
MOVdisBufDatHead+1,#0X00
MOVdisBufDatHead+2,#0X11
MOVdisBufDatHead+3,#0X11
MOVdisBufDatHead+4,#0X11
MOVdisBufDatHead+5,#0X11
MOVdisBufDatHead+6,#0X11
MOVdisBufDatHead+7,#0X11
MOVsec,#0X3A
WHILE:
JBkey,KEYSCAN
MOVsec,0x00
KEYSCAN:
MOVA,sec
SUBBA,#3CH;超过60s归零
JBCY,CLEAR
MOVsec,#0X00;clr加ram地址无效
CLEAR:
MOVA,sec
MOVB,#0AH
DIVAB;A/B,商存到A中,余数存B中
MOVdisBufDatHead,A
MOVdisBufDatHead+1,B
LCALLDISPLAY
LJMPWHILE;循环
END;
(5)用单片机实现扩展阅读
51机器周期和指令周期
1、机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12个时钟振荡周期,也就是说如果51单片机采用12MHz晶振,那么执行一个机器周期就只需要1μs;如果采用的是6MHz的晶振,那么执行一个机器周期就需要2μs。
2、指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。在51单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个机器周期),四周期指令(执行这条指令需要四个机器周期)。
除了乘、除两条指令是四周期指令,其余均为单周期或双周期指令。也就是说,如果51单片机采用的是12MHz晶振,那么它执行一条指令一般只需1~2微秒的时间;如果采用的是6MH晶振,执行一条指令一般就需2~4微秒的时间。
❻ 神经网络如何用单片机实现
用单片机开发神经网络应用主要考虑三个方向:
1)网络本身,神网本质上是一组矩阵,矩阵在单片机中的表现可以通过数组来实现;
2)输入输出,神网的应用就是把输入阵列与网络本身的矩阵点乘叉乘后算术求和,产生输出矩阵,把输入输出的算法做到单片机里也不是难事;
3)训练,神网的权值矩阵都是训练出来的,采用诸如前向或反向的算法,可以做离线也可以做在线,如果做离线就没有必要把算法实现在单片机内,PC上就可以做,然后导入矩阵即可;如果做在线则是相对较难的技术,需要在单片机上实现,对于单片机本身的资源要求也较高。
简单说,1)是基础,也最容易;1)+2)就已经是神经网络的应用了,也容易实现;1)+2)+Matlab神经网络离线训练是易于实现,且富有弹性的应用方式;1)+2)+在线训练基本上就是具备自己学习能力的机器人,这是学术界一直探索的方向。
希望能给你一些启发,研究神网对我来说已经是五六年前的过去了,还是很怀念那时候的激情,个人认为这将是二十一世纪后期最有影响力的技术之一。
❼ 用单片机可以实现与电脑程序的通信吗
当然可以了,
你单片机程序写一个接收串口的程序,然后按接收到的数据进行相应的处理。完全没有问题,以前我们做过一个产品就是这样处理的!
其实最简单的方法就是用一个串口助手从电脑上给你单片机传数据,让你单片机电路来执行!
❽ 单片机可以做什么
借花献佛:
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
智能仪器
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。 例如精密的测量设备(电压表、功率计,示波器,各种分析仪)。
工业控制
单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
家用电器
现在的家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。
网络和通信
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
医用设备领域
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
模块化系统
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
汽车电子
单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、abs防抱死系统、制动系统、胎压检测等。
此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。
❾ 单片机如何实现具体的控制的
建议你仔细看看它的一些IO端口结构图,然后配合看这些端口的控制和数据寄存器,以及端口相关的汇编指令.注意哦,一定要看汇编的指令才有用,C的看不出来.
实际上,最终端口的输入和输出,都是由端口对应的数据寄存器来控制的.
输入的时候,端口上所呈现的外部电路的状态,就呈现在输入寄存器里,用单片机的程序读出来,就是表示该状态的数据.比如说读到了0xF0,就表示该端口的高4条IO处于高电平,低4条IO处于低电平.
同样的,输出的时候,就是单片机的程序将数据写入到端口的输出寄存器里,这样就可以在对应的端口上呈现出对应的状态,用于控制外部的电路.同样的,比如说你输出一个0x0F,就表示将该端口的高4条IO置为低电平,而低4条IO置为高电平.
当然,单片机的结构有很多种,有些单片机不分输入和输出寄存器,有些单片机也没有控制寄存器,但也有很多单片机具有这些寄存器.
控制寄存器的作用,是配置端口的各种功能和模式.
比如说要将某端口的某几条IO引脚设为带弱上拉的输入,那么就应该打开弱上拉寄存器的对应几bit,并且打开输入输出控制寄存器的对应几bit,部分片子还需要关闭输入状态,这样就将该端口的指定几条IO引脚配置为了输入状态.而输出的配置也类似,无非就是几个寄存器的值不同.
配置好了之后,这些端口和这些IO就可以完成实际的输入和输出控制了.
如果是标准的MCS51单片机,例如AT89C51/52之类的,则端口要简单得许多,没有这么多的控制寄存器,也部分输入和输出寄存器.建议你找它们的用户手册仔细看看端口结构那一部分.
一般来说,这些资料要在"用户手册"中才有,普通的"数据手册"里面不一定有.
希望以上回答能让你大致了解单片机是如何实现具体控制的了.
❿ 利用51单片机实现以下功能
这个可以用MSC51单片机来实现啊!
你是要做成 PCB板吗?
可以和我们联系啊
[email protected]
========================================
如果有不详细的地方,请继续提问!
软件开发(VB / VC++/PLC/组态软件)、单片机设计
松下伺服 PLC:
松下伺服:
MHMD082G1U+MCDHT3520
MHMD042G1U+MBDHT2510
西门子 触摸屏 PLC 变频器:
CPU224 CPU226 CPU313 CPU314 CPU315, SMART 1000
PRO-FACE触摸屏:
三菱 PLC: FX1N FX2N /