关于一个8051单片机的编程~求大神指导!!跪求!
题目有问题,八位并行输入怎么能构成8×8的矩阵?这个矩阵要16个脚才能组成
1、下个keil3软件,新建工程之后,新建文件,写文件名的时候,写.asm后缀的就是写汇编语言,写.c后缀的就是写C语言。
2、至于怎么编程,单片机编程,重点就是掌握单片机有哪些I/o口,哪些寄存器,哪些特殊寄存器。
3、推荐看一下视频《十天学会单片机》,搜一下都有的,对初学者非常有帮助。
4、另外补充一点,学单片机,光看书一年都学不会,边看边学,一个月就能入门了,所以最好弄一块板子,在上面跑跑程序。
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV DPTR,#NUMB ;将数据存放在表中
MOV R3,#6
MOV R4,#0
LOOP: MOV A,R4
MOVC A,@A+DPTR ;从表中取数
MOV TEMP,A ;将数据放入temp,此时
;第一个数的低位在temp的低三位
INC R4
MOV A,R4
MOVC A,@A+DPTR ;从表中取下一个数据
RR A
RR A
RR A
RR A ;循环移位,将这个数据的
;有效三位放到一个byte的456bit位
ORL A,TEMP ;生成符合数据
MOV P0,A ;将数据放到p0口,其中P0.0~P0.2接一个
;译码器,P0.4~P0.6接另一个译码器
INC R4
MOV R7,#0FFH
BACK: MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,BACK ;产生延时,具体时间需要
;结合自己单片机的机械周期进行改动
DJNZ R3,LOOP
SJMP MAIN
NUMB:
DB 00H,0AH,00H,0AH,00H,0AH,00H,04H,00H,04H,00H,04H
END
自己写一个啦 要是拿到一个东西就叫别人写 你这怎么学的好啊 你先一步步来 先显示一个数码管 在显示两个 在显示你的那一串学号 很简单的 慢慢来啊
高人帮我解析下这个8051单片机程序
ORG 0000H ;起始地址 LJMP MAIN ORG 000BH ;中断地址 LJMP CLOCK ORG 0050H MAIN: MOV R7,#14H ;寄存器R7载入20 MOV 27H,#00H MOV 28H,#00H MOV 29H,#00H ;27H 28H 29H 三个寄存器初始化,即秒,分,时 MOV TMOD,#01H ;Timer0 选作定时器,选用工作模式1 MOV TL0,#0B0H ...
已知8051单片机的fosc=12MHz,要求串行口工作于工作方式1下,波特率为9...
已知8051单片机的fosc=12MHz,要求串行口工作于工作方式1下,波特率为9600问(1)PCON中SMOD位设置 SMOD=0; 串口方式1,2,3时,波特率正常。 SMOD=1; 串口方式1,2,3时,波特率加倍。 这里可以设为0,也可以设置为1(2)T1工作于8位重装载方式(3)T1的初值TH1、TL1分别是FDH(S...
8051单片机的存储器分为几个部分?各部分的空间大小为多少
有两部份!!!一是数据存储器,二是特殊寄存器 8051片内数据存储器除RAM(00-7fh)之外,还有特殊功能寄存其SFR(80H-FFH),两者合起来共有256字节,但是能够真正用来当数据寄存器的只有128字节,也就是RAM。特殊寄存器是用来存储那些51中已经规定好 了的寄存器 ...
使用8051片内定时器0编写一个程序,从P1.0输出10KHZ的对称方波,fosc=6MH...
;晶振为12MHZ,每1ms取反一次就可实现周期为2ms的方波 ORG 0000H LJMP MAIN ORG 000BH LJMP B_T0 ORG 0030H MAIN: MOV TMOD,#01H ;方式1定时 MOV TH0,#0FCH ;定时1ms MOV TL0,#18H SETB EA ;打开定时器总中断 SETB ET0 ;打开定时器0中断 SETB TR0 ;打开定时器0 ...
8051单片机的存储器分为几个部分?各部分的空间大小为多少
分为外部存储器和内部存储器,外部存储器又分为ROM和RAM两部分,均为64K存储空间,共用P0,P2口地址线,需要靠地址锁存器来决定使用ROM还是RAM;内部存储器分为0~7F的RAM和80~FF的SFR特殊功能寄存器区;RAM中00~1F为工作寄存器区7个一组分成4组,有PSW中的RS0与RS1来决定使用哪一区,20~2F为位...
8051单片机中断源通常有哪几类?
8051单片机中断源通常分为三类,分别是:外部中断、定时中断和串行口中断。其中,外部中断和定时器中断可以自动清除,串行口中断不能自动清除。1、对于外部中断,CPU响应中断后,中断请求是自动撤除的,无需采取其他措施;2、对于定时器,CPU响应中断后,中断请求也是自动撤除的,无需采取其他措施;3、对于...
8051单片机片内数据存储器的三个存储区域是如何划分的
8051内部数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~...
给8051单片机扩展一片规格为27128 EPROM程序存储器,请画出系统连接图...
虽然简单,不作答,强烈谴责出这种题的老师,现在根本用不着扩展程序存储器。大容量单片机很便宜,扩展程序存储器只是白白增加成本,并降低系统可靠性和安全性。RAM同样也不用扩展。
8051单片机寄存器SFR有几个?可以为寻址的是哪些?
SFR具体有几个,这事没准,具体你要看你所用的单片机的型号,但是上限就128个。为什么这么说呢,因为51是一个内核,以这个内核为中心处理器做出来的单片机就叫51单片机,每个具体的单片机功能的多少不相同,比如,有的有AD转换功能,有的有PWM功能,有的什么都没有,例如AT89C51,有的功能很多,AD,...
某8051单片机系统有四个中断源:T0、T1、INT0、INT1。
TCON应该为01010101B 中断标志与中断控制寄存器 :TCON地址(88H)可位寻址(高四位控制计数与定时)(启动定时器)D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TR1、TR0是T1、T0的启动控制位,置1起动。置0停止定时\/计数器。
封师注射: 1、下个keil3软件,新建工程之后,新建文件,写文件名的时候,写.asm后缀的就是写汇编语言,写.c后缀的就是写C语言.2、至于怎么编程,单片机编程,重点就是掌握单片机有哪些I/o口,哪些寄存器,哪些特殊寄存器.3、推荐看一下视频《十天学会单片机》,搜一下都有的,对初学者非常有帮助.4、另外补充一点,学单片机,光看书一年都学不会,边看边学,一个月就能入门了,所以最好弄一块板子,在上面跑跑程序.
昌吉回族自治州18079614948: 求一道最简单的关于8051单片机的编程题及答案解析?
封师注射: 下面是一段子程序: ORG 30H POP DPH POP DPL MOV DPTR,#300H RL A MOV B,A MOVC A,@A+DPTR PUSH A MOV A,B INC A MOVC A,@A+DPTR PUSH A RET ORG 300H DB 10H,80H,30H,80H,50H,80H 已知子程序执行前: A=02H,SP=42H,(41H)=FFH,(42H)=FFH 当子程序执行后: 问:A=( ),SP=( ),(51H)=( ),(52H)=( ),PC=( ). 答案:A=80H , SP=40H , (51H)=50H , (52H)=80H , PC=8050H.
昌吉回族自治州18079614948: 有一个8051的单片机系统,编程实现 - ?
封师注射: “P0.0引脚输出7ms高电平、3ms低电平的周期信号”可以定时器来实现,P0.1引脚上输入的脉冲信号记个数用一个whil循环,查询法得到,不过对外部脉冲计数最好接在外部中断脚,那样会比较准确
昌吉回族自治州18079614948: 8051单片机编程 - ?
封师注射: 好久了,具体忘了,大致思路是给p1.0,p1.1的数值不一样,如果是01就第一个亮,第二个不亮;如果是10就相反.这个不难
昌吉回族自治州18079614948: 求8051单片机编程———实现由1到99相加 - ?
封师注射: 编一个实现该功能的子程序吧;结果存于R3R2中 SUM: MOV R0,#0 ;被加数清0 MOV R2,#0 ;结果清零 MOV R3,#0 ;结果清0 LP: INC R0 ;被加数+1 MOV A,R0 ;被加数送A ADD A,R2 ;A+R2 MOV R2,A ;结果送R2 XCH A,R3 ;结果高8位送A ADDC A,#0 ;带进位加 MOV R3,A ;结果送R3 CJNE R0,#99,LP ;不到99继续 RET
昌吉回族自治州18079614948: 哪位高手帮帮忙帮我编个程序,用8051单片机控制4位LED共阳数码管.. - ?
封师注射: #include<reg52.h> sbit KEY=P3^3; //定义按键输入端口 sbit LED=P1^2; //定义led输出端口,一个四个都是一样的定义方法 void main (void) {KEY=1; //按键输入端口电平置高 while (1) //主循环{ if(!KEY) //如果检测到低电平,说明按键按下LED=0;elseLED=1; //这里使用if判断,如果按键按下led点亮,否则熄灭//如果需要四个亮就写LED1=1;LED2=1,LED3=1;LED4=1;不过上面得先定义好这四个led的引脚 } }希望对你有帮助
昌吉回族自治州18079614948: C8051单片机编程问题 - ?
封师注射: 主程序main必须是一个死循环,这样程序才可能一直运行下去#include sbit L1=P2^4; void main() { while(1) L1=0; } //
昌吉回族自治州18079614948: 求各位懂单片机的说下c8051f120单片机写程序的具体步骤. - ?
封师注射: 如果是刚入门,就要先画个流程图.举个例子,比如你要用单片机和数码管,按键做个电子钟.步骤如下.1:写下你要实现的功能,时间显示,日期显示,闹钟功能等.2:画原理图,单片机和外围电路,确定单片机每个引脚的功能.3:画流程图,就是你单片机上电做什么,一般是这样:先初始化,然后读EEPROM,判断是 否 进入设置等,看你具体需要.4:根据流程图,写子函数,就是各个功能函数,比如时间显示函数,设置函数,读EEPROM函数等等.5:写主函数.6:调试各个子函数,主要是看是否有错误,功能是否正确.7:调试主函数,就是把所有功能都实验到.8:如有问题,修改程序,找问题.9:下载程序到单片机中,调试电路板.10:完成.
昌吉回族自治州18079614948: 用汇编语言写一个用8255扩展的8051单片机4*6键盘扫描程序 - ?
封师注射: P1口接4根线作为检测时输出,p2口接6跟线作为检测输入,键盘接上拉电阻,首先往p1口上送数据,检测p2口,无变化则检测下行,有变化直接读取键值表(键值表自设),送入内存变量,大概就是这个样子,很简单的
昌吉回族自治州18079614948: 8051单片机手工汇编具体操作方法 - ?
封师注射: 比如说,P1口是控制4*4键盘的,P1.0到P1.3是行控制(分别对应1到4行),P1.4到P1.7是列控制(对应1到4列).例如,你给P1口赋值,mov P1 #11H(也就是给P1.7和p1.3高电平,其余都是低电平),这是代表P1.7和P1.3相交的那个键位被按下,即4行4列的那个键(矩阵键盘最右下角那个键),由此我们可以通过P1口的值的情况来判定按键情况,从而进行编程控制.