有没有单片机牛逼的,求指导
国企里是不用单片机的,太低级了,怎么能显出其高科技呢,多数都用dsp,fpga,arm啦。哈哈
KEY EQU 20H ;伪指令定义语句,不参与汇编ORG 0000H ;复位后从0000H处开始执行
LJMP MAIN ;长转移到主程序
ORG 0003H ;外部中断0(引脚P3.2)INTO程序入口地址
LJMP INTER ;长转移到INTER处执行
ORG 0030H ;主程序从0030H处开始执行
MAIN:
SETB EA ;开中断总控
SETB EX0 ;允许响应外部中断0
LP:
MOV A,KEY 20H送入A累加器
CJNE A,#00,L1 若A不等于00H转到标号为L1处执行
X10:
MOV A,#0FFH A累加器置“ 1”
MOV R2,#08H 08H送入R2寄存器
CLR C PSW进位位清零
X101:CLR C PSW进位位清零
MOV R7,KEY 20H送入R7寄存器
CJNE R7,#00,LP R7不为零转到LP处执行
RLC A A左大环移
MOV P1,A A中内容送入P1端口
LCALL DELAY 调用子程序DELAY(长调用)
DJNZ R2,X101 R2寄存器减1不为零,转至X101处执行
L1:
CJNE A,#01,L2 若A不等于01H转到标号为L2处执行
X11:
MOV A,#0FFH A累加器置“ 1”
CLR C PSW进位位清零
MOV R2,#08H 08H送入R2寄存器
X110:
MOV R7,KEY 20H送入R7寄存器
CJNE R7,#01,LP R7不等于01H转到标号为LP处执行
RRC A A右大环移
MOV P1,A A中内容送入P1端口
ACALL DELAY 调用子程序DELAY(短调用)
DJNZ R2,X110 R2寄存器减1不为零,转至X110处执行
L2:
CJNE A,#02H,L3 若A不等于02H转到标号为L3处执行
MOV P1,#0FFH A累加器置“ 1”
L3:
CJNE A,#03H,XIEND 若A不等于03H转到标号为XIEND处执行
MOV P1,#00H P1端口清零
XIEND:
SJMP LP 转到标号为LP处执行(无条件转移)
INTER:
CLR EA 关中断总控
PUSH PSW 状态寄存器进栈
PUSH ACC A进栈(A累加器为直接寻址)
SETB EA 开中断总控
JB P2.0, LOOP1 P2.0等于“ 1”,循环(位操作指令)
MOV KEY ,#00H (20H)=00H
SJMP INTEND 短转移到INTEND
LOOP1:
JB P2.1, LOOP2 P2.1等于“ 1”,循环
MOV KEY ,#01H (20H)=01H
SJMP INTEND
LOOP2:
JB P2.2, LOOP3 P2.2等于“ 1”,循环
MOV KEY ,#02H (20H)=02H
SJMP INTEND
LOOP3:JB P2.3,INTEND P2.3等于“ 1”,循环
MOV KEY ,#03H (20H)=03H
SJMP INTEND 短转移到INTEND
INTEND:
CLR EA 关中断总控
POP ACC A出栈(A累加器为直接寻址)
POP PSW 状态寄存器出栈
SETB EA 开中断总控
RETI 中断返回
DELAY: (延时程序)
clr ET0 禁止响应定时/计数器T0中断
MOV R5,#28H
MOV R6,#32H
ABC:
MOV TMOD,#06H 设置T0工作于自启动、计数、方式2
MOV TH0,#06H
MOV TL0,#06H
SETB TR0 T0工作启动
JBC TF0,DELAY1 T0计数溢出,转至DELAY1处执行
DELAY1:
DJNZ R5, ABC R5寄存器减1不为零,转至ABC处执行
DJNZ R6, ABC R6寄存器减1不为零,转至ABC处执行
RET
END
这是简单看了你的程序后个人添加的注释,我没有看见你连的硬件电路,但是通过程序我可以得知该程序对应的硬件仿真电路。首先计算下你的延时时间,以机器周期为2us(时钟频率为6MHz)为例,ABC共循环28H*32H= 2000D=7D0H次,每次循环时间为(2+2+2+1+2+1)*FAH*2us=5000us=5ms也就是说,T0计数器每隔5ms溢出一次,ABC程序共执行2000次,所以共消耗时间10000ms=10s,程序刚开始停留于死循环中,只有当外部中断INTO来临时,执行中断程序,从中断程序INTER部分可以看出,若P2.0亮,则看下一位P2.1,若下一位不亮则执行INTEND程序,后面的自己去想吧,我提醒一下,要实现循环移位流水灯效果,不需要带进位环移,只需RL A RR A就可以了。
简单看了一下你的程序,你是想利用C,来实现循环移位的效果,就是流水灯的效果,
你的问题就出在使用C上,因为C的值会突然发生变化,这是因为你使用CJNE 这条判断指令
这条判断指令不但判断两个值是否相等,还会改变C的值,所以你的程序跑起来跟你想的不一样
举一个例子:CJNE R7,#2 ;当R7<2时,CY=1,当R7>=2时,CY=0。
你的程序中,C的值会有1变成0,所以你的灯会多亮一个
还有就是
X101:
CLR C
MOV R7,KEY
CJNE R7,#00,LP
RLC A
MOV P1,A
LCALL DELAY
DJNZ R2,X101
CLR C
你是不应该把C的值清零的,你用的是带进位的循环移位,不能把进位C清零啊,否则就错了
唉 我们 用的都是C语言写的
汇编有点头大啊
。。。
学习单片机实用还是学习PCB板设计实用?
这是两个不同的方向,你想做电路设计?还是编程?我只想说电路设计对模电的知识要求相当高,专门从事电路设计的人就是相当牛逼的,所以你自己好好考虑吧
工作几年后linux运维与单片机加上位机c#开发哪个工资高
如果容易那你那个待遇就高不到哪里去。另外 还是看你到什么水平了。linux维护到什么程度,比如几年后自己能移植系统,编写驱动等那就牛逼了,待遇低不了,蔑视单片机+上位机的。 单片机也是,你不仅能做硬件电路设计还能编程,更能编写上位机那也不错了。但是待遇这个天花板的顶没Linux那么高 ...
大学毕业1年了,一直从事单片机开发工作,想换成大数据云计算方向,求各位...
1、首先要有一定的准备。2、这是两个领域,看你哪个比较擅长。3、大数据、云计算不是哪个城市都领先的。4、建议多问问学长,但怎么转这个方向。
单片机为什么不到一年时间涨这么多?
可以简单理解成芯片尺寸越小,晶体管密度越大,芯片就越先进。目前全球制造芯片最牛逼的还是台积电,现在能量产的是5纳米。我们现在还没这么精密的光刻机,高端芯片还不能完全国产化。5.产能和需求不匹配 现在越来越多的产品都趋向智能化了,比如说平板、手表、手环、耳机、 汽车 等等太多了。全球疫情,...
单片机那么火,为什么?
单片机是个比较专业的领域,相比c语言更为细致的一类专业,所以问题较少;1.单片机能做的事情很多,比如:数字空调控制系统(属于嵌入式系统),工业自动化控制里的PLC(可编程序控制器)就是基于单片机开发的;2.单片机从发明的那天起就注定了会很流行,现在的生活讲究数字自动化控制,通用性计算机(家用...
单片机原理的应用范围
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等...
北京单片机待遇如何
这个水平在北京5000~6000应该没问题,不过北京的消费也高啊,尤其是房租太贵了,跟你挣三四千也差不多的。如有帮助请采纳,或点击右上角的满意,谢谢!!
51单片机的“51”是什么意思?
其实开始单片机就是 8031 没有程序的 后来有个8051 比较好用 比较牛逼 其他人纷纷 模仿 这种8位 的单片机 自然就把51当成了 标准 划时代的产品 后来就统称此类 单片机为 MCS-51系列 就像 冯诺依曼 哈佛 等结构
求从事嵌入式、电子相关专业的牛逼认证证书
放心把,只要你把你的项目经验都写出来,多写写你自己做了哪些驱动,实现了哪些API,做了哪些GUI,或者自己改过bootloader,或者自己精于哪些单片机等等这些东西写出来,面试时候也能讲出来,那就没有一点问题。有一些所谓的培训机构办的证,虽然有国家工信部的名字,但证书本身没有一点用处。
蓝桥杯的单片机比赛难不难啊,我大一的,被拉去参加了,好担心
重要的是掌握程度和对技术的理解程度,有句话叫“水到渠成”,到时候再去研究工资的事情也不晚。2、学习嵌入式编程有必要从51单片机开始吗?我原本来在读大学的时候,有很多同学听说学习ARM很牛逼,于是就跑到图书馆借了一两本关于ARM的书,学一两天后发现跟自己想的不太像,于是学着学着就慢慢放弃...
植逄小儿: 楼下几位真是吹牛不上税啊.把RAM跟ROM搞错了吧,有8K以上ROM的不少,但有大容量RAM的真心不多,标准51才128B,52才是256B. 我研究过上百种的单片机,主要是51和AVR两个系列,现在我知道的拥有8K RAM的只有ATmega2560,这是AVR系列中最高端的版本.其他的比如ATmega16,32等等,都没有. 51系列中,现在做得比较多的STC,所有单片机中,最多也只有4K多一些,只有你需求的一半.
柯城区19811356332: 求单片机高手给我指导啊····?
植逄小儿: main() { unsigned int LedNumVal=1 ; //定义变量 while(1) { // 将字模送到P0口显示 P0 = LED7Code[LedNumVa]&0x7f; //LED7 0x7f为小数点 共阴和共阳此处也是不一样 delay(150); //调用延时程序 LedNumVa++; } } 你这样写,delay(150)...
柯城区19811356332: 有没有比74LS05还好的单片机??
植逄小儿: 拜托,74LS05不是单片机,是OC门,也就是集电极输出的非门,说白了就是一个反相器,这个编程器中是用它来做缓冲和电压变换的.
柯城区19811356332: 常用的单片机有哪些? - ?
植逄小儿: 一般来说,8位单片机最常用的是三个系列: 1、51系列:以intel MCS51为核心,很多公司都买了它的核心,生产自己的51单片机,主要有ATMEL公司(AT89S52等等),STC公司的(比如STC89C52RC),华邦,摩托罗拉,ST都有生产. ...
柯城区19811356332: 单片机求指导?
植逄小儿: 先从8051系列单片机学起吧,最简单最常用的,此外就是学习编程语言建议你:汇编和c语言都要学.此类的数很多的,在学校图书馆找找看吧.
柯城区19811356332: ARM架构的单片机是目前性能最高,最先进的吗?如果不是,那么目前性能最高的单片机是什么架构? - ?
植逄小儿: 看你怎么定义单片机了,ARM只是一个公司的名称,ARM下面很很多系列,很多型号,现在手机里面比较热的A15,还有刚推出的Cortex-A50,很牛逼 性能肯定跟桌面PC没得比啦.....
柯城区19811356332: 有没有单片机学的好的.能不能帮我看看这个程序怎么编写.谢谢 - ?
植逄小儿: 貌似刚刚回答了#include#define uchar unsigned char main() { uchar num=0,key,i; while(1) { key=P0; if(key!=0xff) { for(i=0;i { if((key&0x01)==0)num++; key=key>>1; } key=P0; if(num else P1=0xff; } } }
柯城区19811356332: 想自学单片机或者嵌入式,希望有人带我一下 - ?
植逄小儿: 自学单片机 没有人指导是比较痛苦的.需要付出很多精力.因为单片机要会的东西非常多:1:电子技术,数模电2:Protel3:c语言4:单片机原理我建议:你去找个工作做.哪怕单位不给你一分钱,也去工作.我在这行有工作8年了.有个群你可以进来讨论.58479839我的qq50174447
柯城区19811356332: 51单片机编程求指导...?
植逄小儿: 嘿嘿 楼上的老兄给出的程序也不对呀 看上去挺工整的,错误好几出啊,是得不到正确结果的.其实算法很简单,只要熟悉一下单片机的加法指令和循环移位指令,自己就可以编写出来.1 算法: 就是使用指针 连续对20H开始的连续4个单字节二...
柯城区19811356332: 求帮助!求单片机高手!可不可以帮我把汇编程序中中文字给改了,成为可以运行的程序啊?谢谢!十万火急! - ?
植逄小儿: 1 可以用可编译 中文 编译软件 2 把中文 改成 字符串 如 主程序 改成 MIN 可以用 替换 法 这样 所有相同的(中文串)全部 替换 成 字符串 ,用一般编译软件就可以了 自己动手 才会 有收获喔.