当前位置:首页 » 编程软件 » a单片机编程

a单片机编程

发布时间: 2022-11-08 05:20:54

A. 单片机编程用六中方法使a中内容清零

为什么用6中方法呢?直接给a赋值0,即a=0;或者,将一个变量b赋值给a,即a=b(当然赋值前b的值为0,b可以是程序中定义的变量、单片机的寄存器、寄存器的某一位);或者,将一个变量b取反赋值给a,即a=b(当然赋值前b的值为非0,b可以是程序中定义的变量、单片机的寄存器、寄存器的某一位);等等
a=0;
a=a&&0;
a=!1;

B. 关于单片机编写程序 将A中的二进制数变换成3为BCD码 并将百,十,个位数分别防御内部RAM的50H 51H 52H中

这程序也写的太复杂了!既然51单片机有DIV指令,并且只是把A中的数字转变为BCD,那就用DIV直接运算:
MOV A,#0FDH
MOV B,#100
DIV AB
MOV 50H,A
MOV A,B
MOB B,#10
DIV AB
MOV 51H,A
MOV 52H,B
计算完成,这样50H就是百位数,51H是十位数,52H是个位数

C. 单片机编程将累加器A中的二进制数变成BCD码,并将百、十、个位数分别写入内部RAM中的50H、51H、52H中。

mov b,#10

div ab

mov 50h,a

mov a,b

da a

mov 52h,a

anl 52h,#0fh

swap a

anl a,#0fh

mov 51h,a

end

D. 利用单片机编程:a.开机后从LED1到LED8依次点亮后全熄灭,状态变化时间间隔为1秒;

#include <REG51.h> //51头文件
/*********************************************************************************************/
#define DY_PORT P1 //设置LED连接的I/O组
#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域:0~65535)
/*********************************************************************************************
bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED
#define [代替名] [原名] //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1
sbit [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1;
unsigned char [自定义名] ; //定义一个0~255的整数变量.例:unsigned char a;
unsigned int [自定义名] ; //定义一个0~65535的整数变量
/*********************************************************************************************/
void delay (unsigned int a){ // 1ms延时程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600
} //AT89C51单片机在外部晶振为12MHz时i值上限为125
}
/*********************************************************************************************/
void main(void){
unsigned int i;
unsigned int temp;
while(1){
temp=0x01;
for(i=0;i<8;i++){ //8个流水灯逐个闪动
DY_PORT=~temp;
delay(DY_SPEED); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++){ //8个流水灯反向逐个闪动
DY_PORT=~temp;
delay(DY_SPEED); //调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++){ //8个流水灯依次全部点亮
DY_PORT=temp;
delay(DY_SPEED); //调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++){ //8个流水灯依次反向全部点亮
DY_PORT=temp;
delay(DY_SPEED); //调用延时函数
temp>>=1;
}
}
}

E. 单片机编程将累加器A中的二进制数变成BCD码,并将百、十、个位数分别写入内部RAM中的50H、51H、52H中。

这程序也写的太复杂了!既然51单片机有div指令,并且只是把a中的数字转变为bcd,那就用div直接运算:
mov
a,#0fdh
mov
b,#100
div
ab
mov
50h,a
mov
a,b
mob
b,#10
div
ab
mov
51h,a
mov
52h,b
计算完成,这样50h就是百位数,51h是十位数,52h是个位数

F. 单片机编程中R6,R7,R0,A是什么

楼上误解了,没看清题意,楼上说的那几个是PIC单片机的,楼主说的是51单片机的
R6R7R0是51单片机中的工作寄存器组中的成员用于存放数据,这样的工作寄存器组共有四组,由程序状态字PSW中的RS0、RS1控制,
A是累加器,几乎是一个万能的数据寄存器,单片机一大部分的运算需要通过它来完成,

热点内容
我的世界服务器崩了重启 发布:2025-05-14 16:09:37 浏览:44
android深拷贝 发布:2025-05-14 16:09:35 浏览:153
cf电脑版转服务器神器还在吗 发布:2025-05-14 16:09:02 浏览:211
百度文库服务器如何搭建 发布:2025-05-14 16:09:00 浏览:248
安卓微信删除的好友怎么找回 发布:2025-05-14 16:08:56 浏览:706
iphone的访问限制密码忘记了怎么办 发布:2025-05-14 16:08:56 浏览:184
php对象转换成数组 发布:2025-05-14 16:07:55 浏览:27
java服务端缓存 发布:2025-05-14 15:53:37 浏览:105
php判断postget 发布:2025-05-14 15:34:24 浏览:357
linux查看电脑配置 发布:2025-05-14 15:32:07 浏览:317