导航:首页 > 编程语言 > 单片机语言编程题

单片机语言编程题

发布时间:2022-08-07 02:55:58

1. 单片机C语言程序设计题

这是两个题啊。哈哈好做,第一个有C语言的冒泡法排序,第二个用中断,读,输出就可以

2. 两道单片机编程题目,用汇编语言

第一题:

ASC:
PUSH ACC
ANL A,#0FH
ADD A,#30H
MOV R2,A
POP ACC
ANL A,#0F0H
SWAP A
ADD A,#30H
MOV R3,A
RET
第二题:
BCDZH:
MOV R0,#20H
MOV R1,#30H
MOV R2,#16
LOOP:
MOV A,@R0
MOV B,A
INC R0
MOV A,@R0
SWAP A
ORL A,B
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP
RET

3. 《单片机C语言程序设计》编程练习题,求助

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit kai=P3^5;
sbit an=P3^3;
sbit beep=P3^2;
sbit wela1=P1^7;
sbit wela2=P1^6;
void delay(uint z);
void display();
uchar code table[]={0xc0,0xf9,0xa4};
uchar a;
uint dier;
void main()
{
EX1=1;
IT1=1;
a=0xfe;
EA=1;
kai=0;
while(1)
{
dier=1;
display();
a=_crol_(a,1);
P0=a;
delay(100);
if(a==0xfe)
// beep=0;
if(a!=0xfe)
beep=1;

}
}
void delay(uint z)
{
uintx,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
void display()
{
P0=0xff;
wela1=0;
P0=0x8c;
delay(1);
wela1=1;
delay(1);

P0=0xff;
wela2=0;
P0=table[dier];
delay(1);
wela2=1;
delay(1);

}

void wbzd1() interrupt 2
{
uintk;
EX1=0;
for(k=0;k<100;k++)
{
dier=2;
display();
a=_cror_(a,1);
P0=a;
delay(100);
if(a==0x7f)
// beep=0;
if(a!=0x7f)
beep=1;
}
EX1=1;

}

4. 单片机编程题,请给出正确的编程语言,谢谢

ORG 0000H
AJMP START
ORG 000BH
AJMP INT0
START: MOV TMOD,#10H
SETB EA
SETB ET0
MOV TH0,#B1H
MOV TL0,#E0H ;40MS延时初始值
MOV R0,#01H ;R0用来标志中断里定时器应该赋谁(高低电平)的初值的值
SETB P1.7 ;起始输出高电平
SETB TR0
HERE: SJPM HERE ;等待中断
INT0: MOV A,R0
JNZ GAO
SETB P1.7
MOV TH0,#0B1H
MOV TL0,#0E0H
SETB TR0
INC R0
SJMP NEXT
GAO: CLR P1.7
MOV TH0,#0B9H
MOV TL0,#B0H ;36MS延时初值
SETB TR0
INC R0
CJNE R0,#11,NEXT ;十次36MS延时之后清R0
CLR R0
NEXT: RETI
自己看看对不对吧
用两个定时器的话(一个定时高电平一个定时周期或者一个定时高电平一个定时低电平),可以省掉R0的,程序会比较简单

5. mcs 51 单片机汇编语言编程题

TEMP EQU 50H ;临时变量
SGM_H EQU 51H ;求和的高8位,以及平均值
SGM_L EQU 52H ;求和的低8位,以及平均值的余数

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
LCALL MM ;排序子程序
LCALL AVG ;平均值子程序
SJMP $

MM:
MOV R0,#40H
LP_1:
MOV A,R0
MOV R1,A
MOV TEMP,@R0
LP_2:
INC R1
MOV A,@R1
CJNE A,TEMP,NEXT1
NEXT1:
JNC NEXT2
MOV @R0,A
MOV @R1,TEMP
MOV TEMP,@R0
NEXT2:
CJNE R1,#4FH,LP_2
INC R0
CJNE R0,#4FH,LP_1
RET

AVG:
MOV R0,#41H
MOV A,@R0
MOV SGM_H,#00H
LP_3:
CLR C
INC R0
ADD A,@R0
JNC NEXT3
INC SGM_H
NEXT3:
CJNE R0,#4EH,LP_3
MOV SGM_L,A

;以上部分是求和
SWAP A
ANL A,#0FH
MOV R1,A
MOV A,SGM_H
SWAP A
ADD A,R1
MOV B,#14D
DIV AB
SWAP A
MOV SGM_H,A
MOV A,B
SWAP A
MOV R1,A
MOV A,SGM_L
ANL A,#0FH
ADD A,R1
MOV B,#14D
DIV AB
ADD A,SGM_H
MOV SGM_H,A
MOV SGM_L,B
;以上部分是16位除以8位的除法
RET

解题思路是先排序,得到最大值与最小值,然后求平均值。
以上供参考。

6. 单片机复习题(C语言)

一. 填空题
1. MCS-51单片机是____8____位机,其最大程序容量可达___64_____K字节,有_____4___个并行口和____32____条I/O管脚。
2. MCS-51单片机正常工作所必须的外部硬件电路是___电源_____、___时钟_____、__复位______。
3. MCS-51单片机复位电平是___高_____电平,正常工作时复位端为__低______电平,复位后并所有行口的输出为____高____电平。
4. MCS-51单片机内部结构中,四个基本功能单元分别是___CPU_____、__RAM______、____ROM____、___定时器计数器I/O口_____;三个扩展功能单元分别是____?____、___?____、___?_____。
5. MCS-51单片机内部RAM四个分区分别是__00H到1FH(R0-R7)可位寻址____、____ _ 20H-2FH___、_30H-7FH__ _____、__80H-FFH______。
6. MCS-51单片机___P0_____口没有内部上拉电阻;并行口作为输入口使用时必须保证该端口场效应管__开漏______,即向该端口写___0xff_____,此时该端口的输出锁存器Q端为___1(高电平)_____。
7. MCS-51单片机计数器工作在方式1和方式2的最大计数值分别是_____65536______、___256________。
8. MCS-51单片机若单片机的主时钟振荡频率为6MHz,定时器工作在方式1和方式2的最大定时时间分别是_____自己算!!______ms、___不懂看书!!________us。基本指令周期是___0.5-2_______us。
9. MCS-51单片机的五个中断源分别是___INT0______、__T0_______、_____INT1_____、___T1______、___UART_______。
10. 编写程序常用的三种程序结构是 __顺序结构_______、__循环结构_______、___选择结构_______。
11. C语言语法中,数据类型unsigned char 定义的是____8_____位无符号数;数据类型unsigned int定义的是___16______位无符号数。对8位和16位有符号数,定义数据类型关键词为___signed char______、____short_____。
12. 单片机上电后是从主函数void main()的___0x0000H______位置运行。
13. 单片机C语言编程时必须有的固定结构的语句是#include <reg51.h>、void main()以及____while_____。
14. keil 集成开发软件的三个主要功能是___编译______、__调试_______、___仿真______。
15. 十进制数100对应的十六进制数是____64_____、二进制数是___01100100______。

二. 读程序题
默认有关变量x、y、z、a、b、c、i均为unsigned int (8为无符号数)(这个是不是打错了)请写出局部程序运行后的结果,用十进制表示。
1. x = ___6___, y = ___3___, z = __11____ , a = ___5___, b = ___15___, c = ___252___。
x = 50/8; y = 100%12; z = 240+26;
a = z>>1; b = x | z; c = ~y;
2. x = _183_____, y = __10____, z = __11____ , a = __10____, b = __10____, c = ___10___。
x = 0xa5 ^ 0x12; y = 5*2; z = y++
a = --z; b = a & y; c = (a+z)/2;
3. x = ___6___, y = __12____, i = ___3___。
x=0;y=0;
for (i=1;i<=3;i++){
x = x+i;
y = y + i*2;
}
4. x = __20____, y = ___10___, z = ___81___ , a = __8____, b = ____9__,
c = __48____, i = ___8___。
a=0;
if (!a){
x=20; y=x<<2; z=y++;
}else{
x=10; y=x<<2; z=y++;
}
i=2<<2; y=10;
if (i>3 && y){
a=y & 0x0c;
b=++i;
c=x^y;
}
随便做的,有些东东忘了!不懂的自己回去看看书去。

7. 求解一道单片机C语言编程题,急

#include"AT89X52.h"

sbit BUTTON = P1^1;
sbite LED = P1^0;
unsigned int reg;
void main(void)
{
while(1)
{
if (!BUTTON)
{
reg= 5000;
while(--reg);
if (!BUTTON)
{
LED = ~LED;
while(!BUTTON);
}
}
}
}

8. 单片机C语言编程问题

蜂鸣器以400ms频率发声,以200ms频率发声。。。
----
这是不可能的。
频率单位,是 Hz,不是 ms。

任何人,都作不到《以400ms频率发声》。

出题人,基本概念,他都不清楚。
这样的题目,就别琢磨了。
----------------
如果说,400ms 是周期,还像回事。

但是,这时的频率,是 2.5Hz,人,是听不见的。
----------------
如果楼主,自己规定几个合理的频率,
编写一个程序,还不难。

http://..com/question/465662388.html
http://..com/question/135695899.html

可以参考。

9. 【51单片机汇编语言编程题】片内RAM区30H~3FH单元中存16个8位无符号数,将它们对5求余,

CLR A
MOV 40H,A
MOV 41H,A
MOV 42H,A
MOV 43H,A
MOV 44H,A
MOV R0,#30H
LOOP:
MOV A,@R0
MOV B,#5
DIV AB
XCH A,B
ADD A,#40H
MOV R1,A
INC @R1
INC R0
CJNE R0,#40H,LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END

10. 单片机C语言设计编程题

#include sbit pluse=P1^0; void t0isr() interrupt 1 { TH1=(65536-10000)/256; TL1=(65536-10000)%256; pluse=~pluse; } main() { TMOD=0x10; TH1=(65536-10000)/256; TL1=(65536-10000)%256; TR1=1; ET1=1; EA=1; while(1); }

阅读全文

与单片机语言编程题相关的资料

热点内容
证券技术分析pdf 浏览:775
linux命令连接oracle 浏览:200
垫江停车收费桩怎么上App 浏览:133
好兴动app还款怎么登录不上去了 浏览:665
郑州云服务器托管 浏览:722
服务器地址跟踪 浏览:980
免费google云服务器 浏览:516
摘译和编译的英文 浏览:359
热泵压缩机选型 浏览:121
op手机微信加密如何解除 浏览:386
如何在王牌战争找到高爆率服务器 浏览:13
江浙小学语文辅导课用什么APP 浏览:99
新梦幻大陆服务器地址 浏览:241
网吧服务器怎么更换壁纸 浏览:530
linux命令方法 浏览:332
linux下载freetype 浏览:123
程序员入驻平台 浏览:327
程序员大战外挂 浏览:745
html实例教程pdf 浏览:157
linux命令开放所有权限 浏览:575