导航:首页 > 操作系统 > 单片机程序题

单片机程序题

发布时间:2022-04-24 13:41:14

1. 单片机编程

程序如下:
MOV DPTR, #buf
MOV R2, #50
LOOP:
MOVX A, @DPTR ;取出数字.
JNB ACC.7, NEXT ;为正数,转移.
CPL A ;取反.
INC A ;加一.
SETB ACC.7 ;重写负号.
MOVX @DPTR, A ;送回.
NEXT:
INC DPTR
DJNZ R2, LOOP
SJMP $
END

2. 单片机的编程题目

#include
#include
//右移函数需要此头文件intrins.h
大小写不限
sbit
t=p3^3
//p3^3是指你单片机实际连接的方式,你根据实际情况改一下
main()
{
int
i=0;
int
a;
while(1)
{
while(t==0);
//若脉冲一直为低电平,程序停在此处,
//每当高电平来临,跳出此句话,执行下面的语句
i++;
if(i==1000)
{
a<<1;
i=0;
}
}
}
/*推荐郭天祥的《十天学会单片机》视频教程,
共13集,5.13g大,很清晰。我大二的时候连数电和模电都没学,也能看懂这个。学了之后就对单片机很了解了。但要买块单片机来学那个教程。
该教程可在迅雷下载到,我原来是在淘宝网买的dvd光盘,有些书店里也有这个教程。
学完之后就会用单片机做东西了!
只要你学过c语言,就很容易学会单片机!
*/

3. 单片机程序题

#include<reg52.h> //包含52单片机寄存器定义的头文件
static unsigned char n;
sbit P17=P1^7;
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
n=0;
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT1=0; //选择低电平来触发外中断
while(1); //无限循环,
}
/**************************************************************
函数功能:外中断T1的中断服务程序
**************************************************************/
void int1(void) interrupt 0 using 0 //外中断1的中断编号为0
{
n++;
if (n==2)
{P17=~P17; //每产生一次中断请求,P17取反一次。
n=0;}

}

4. 关于51单片机的一个简单程序题

POP DPH ;sp-1=51
POP DPL
MOV DPTR,#4000H;sp-1=50
RL A ;a*2=04h
MOV B,A ;保护a
MOVC A,@A+DPTR ;查表a= 【4004h】=30
PUSH A ;a入栈,sp+1=51
MOV A,B ;恢复a
INC A ;a+1=5
MOVC A,@A+DPTR ;查表 a=【4005h】=50
PUSH A ;a入栈 sp+1=52
RET ;程序返回,sp-2=50,并且把52·51里的值出栈给pc pc=5030

ORG 4000H
DB 10H,80H,30H,50H,30H,50H

注意 ret 与reti 的作用 调用子程序时先保护pc即把pc压入栈,ret用于子程序最后来恢复pc值,所以在子程序里不能乱用栈,必须让sp指向原pc值的保存处,一般来说,有一个push必须跟一个pop,这两个指令必须一起成对出,否则就会改变pc值

5. 关于单片机程序题。。。

这个有点太简单了
#include<REG51.H>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint i) //1ms延时程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
P3=0xff>>i;//先亮一个,再2个......
delayms(1000);
}
}
}
如果只亮一个LED,则应改为:
P3=~(0x80>>i);

6. 单片机的题,程序题

如果我没有猜错的话,第三行程序是:
ORG 0080H
这是编程者自己定义的,可以在64K范围内任意地址,当然最好是大于等于0030H,因为这之前一般是中断向量的入口地址。其余的就可以任意支配了。

7. 单片机程序分析题

设R0=20H,R1=25H,(20H)=70H,(21H)=80H,(22H)=A0H,(22H)=A0H,(25H)=A0H(26H)=6FH,(27H)=76H,下列程序执行后,
CLR C ;CY=0
MOV R2,#3 ;R2=03H R2=02H R2=01H
LOOP:
MOV A,@R0 ;A=70H A=80H A=A0H
ADDC A,@R1 ;CY=1,A=10H CY=0,A=F0H CY=1,A=16H
MOV @R0,A ;(20H)=10H (21H)=F0H (22H)=16H
INC R0 ;R0=21H R0=22H R0=23H
INC R1 ;R1=26H R1=27H R1=28H
DJNZ R2,LOOP ;
JNC NEXT ;
MOV @R0,#01H ; 23H=01H
SJMP $
NEXT: DEC R0 ;
SJMP $
结果:(20H)=10H ,(21H)=F0H ,(22H)=16H ,(23H)=01H ,(A)=16H ,(CY)=1 .

分析过程参照注释

8. 求解单片机编程题目

一、将(0~99)的100个连续十进制数,依次存入首地址为2000H的RAM区的存储单元中去。
MOV DPTR, #2000H
MOV A, #0
MOV R1, #100
LOOP:
MOVX @DPTR, A
INC A
INC DPTR
DJNZ R1, LOOP

SJMP $

二、定时/计数器进行初始化编程。
MOV TMOD, #01010001B
MOV TH1, #(65536-10000)/256
MOV TL1, #(65536-10000)%256
MOV TH0, #(65536-50000)/256
MOV TL0, #(65536-50000)%256
SETB TR1
SETB TR0
SETB ET1
SETB ET0
SETB EA
SETB PT1
CLR PT0

SJMP $

9. 51单片机编程题.

将内部RAM的[91H 90H]单元的值,
和 R1R0相加,
和,存放在内部RAM的[7FH 7EH]单元。
程序如下:
MOVA,R0
MOVR0,#90H
ADDA,@R0
MOV7EH,A
MOVA,R1
INCR0
ADDCA,@R0
MOV7FH,A
END

没错的,可以采纳了。

10. 一道单片机的编程题

现假定左边是地址,右边的是内容
1.它的功能是以50H为首地址,个数为0AH个的RAM全部清零

2.机器码
7A 0A··········MOV R2,#0AH
mov rn的机器码是01111xxx,其中xxx由Rn的地址来决定,相应地,R0~R7二进制地址为000~111
那么R2就是010,后面的数据就跟着mov rn的机器码后面

7850··········MOV R0,#50H
E4 ···········CLR A;
机器码固定
F6 ·········LOOP:MOV @R0,A

mov @rn,a机器码为1111011n
n就是Rn的n
所以间接寄存器寻址只能是R1或R0

08 ············INC R0
inc rn机器码为00001xxx
xxx同理为Rn的物理地址

DA__ ···········DJNZ R2,LOOP
djnz rn机器码11011xxx
xxx同理为RN的物理地址
loop为8位地址标号
机器码是以loop为首的第一个指令离loop的单元数
所以djnz r2,loop的loop不能放在此后超过255字节的程序空间单元
题中loop:后面跟有MOV @R0,A占1个内部ram单元,INC R0占1个内部ram单元,DJNZ R2占1个内部ram单元(由机器码可得),所以255-3=252=FCH
即机器码为DAFC

···········DONE:

3.对于第三个问题,楼上的方法有误
,R0和R2有可能在00H~A0H
而且你只是把0~10放入50H~5AH单元
所以可以这样
SETB RS1
SETB RS0;R0工作在18H单元
MOV A,#50H
MOV R2,#10
MOV R0,#0
LOOP:
MOV @R0,A
INC A
INC R0
DJNZ R2,LOOP

经仿真无误

阅读全文

与单片机程序题相关的资料

热点内容
凡科建站怎么弄服务器 浏览:939
苹果手机怎么设置app播放 浏览:202
下载网站源码用什么浏览器 浏览:241
六线谱pdf 浏览:156
linuxmysqlsock 浏览:239
人教版数学pdf下载 浏览:460
文档安全加密系统 浏览:491
数控铣床编程简单数字 浏览:788
编程电缆如何重启 浏览:121
myqq命令行发消息 浏览:365
日产逍客怎么使用app升窗 浏览:503
安卓系统怎么快速删除微信内容 浏览:653
csharppython 浏览:409
程序员脖子按摩仪 浏览:562
小米桌面文件夹乱码怎么回事 浏览:858
点歌台app怎么连接 浏览:318
大学电脑编程学什么好 浏览:348
上哪里取消应用加密 浏览:172
电气控制与可编程控制器pdf 浏览:87
cad图纸不能跨文件夹粘贴 浏览:256