导航:首页 > 编程语言 > 51编程中文

51编程中文

发布时间:2022-08-19 00:42:45

㈠ 51单片机编程

用仿真图来实现,很容易,P2口接8个LED灯,把41H送P2口,由8个LED灯显示出来即可。

仿真图如下

汇编程序

MOV P2,#41H

SJMP $

㈡ 51单片机编程软件英文版怎样改成中文版

开源软件mcu8051ide 功能不是一般的强,用c语言编程,界面不输给商业软件,而且提供多种模拟器件如:led 数码管,矩阵数码管(8×8)按键,矩阵按键,甚至温度传感器。开源的没有任何限制,完全免费,自动生成多种烧录文件(我们一般就用.HEX的)感觉keil c弱爆了。

㈢ 51单片机编程软件中文版谁有

开源软件mcu8051ide 功能不是一般的强,用c语言编程,界面不输给商业软件,而且提供多种模拟器件如:led 数码管,矩阵数码管(8×8)按键,矩阵按键,甚至温度传感器。开源的没有任何限制,完全免费,自动生成多种烧录文件(我们一般就用.HEX的)感觉keil c弱爆了。
安装方法,下载sdcc(mcu8051ide是基于sdcc的)和mcu 8051 ide都安装好就可以啦,头文件在sdcc的安装文件夹内(include)有些关键字要加两个连在一起的下划线比如 __interrup, __code.
头文件与keil的不通用,比如定义P0口
在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 这个P0^1的不行,但sdcc里面有很多头文件8051.h 80c51.h 80c52.h等等 基本满足要求,给stc单片机编程不用改,加一点特殊的就可以。这样优秀的开源软件不用真的是白不用啊。一般开源软件没有中文版,而这款软件居然可以选择中文,在配置里面有简体中文。爽到极点啊,真怀疑是不是国内高手开发的。

㈣ 用51单片机编程

单片机中只有一条语句是对进制调整的
DA A 对累加器A的结果进行十进制调整
如果随意对一个累加器A中的二进制数据进行“二进制转十进制”调整是没有任何实际意义的!

DA调整的对象是ADD或ADDC以后的结果,而且是BCD码相加以后才能够加以调整,否则没有实际意义!

比如,现在我想执行12D+39D也就是两个十进制数相加这样一个加法(有时候程序处理的需要,数据在单片机中是以BCD码的形式存储的,也就是12H和39H(十六进制),但我们可以人为将它们看为12D和39D(十进制),而且还希望相加以后的结果为51H,也就是说符合十进制运算规则12+39=51,而不是4BH的结果),但这样的十进制加法运算在单片机中是不能够直接实现的。因为单片机只能够执行二进制加法指令,也就是所有的运算都按照二进制中的规则进行!

于是就出现了DA调整指令!

现在12H+39H,将12H放于A中,执行 ADD A,#39H指令,则结果为4BH,这不是我们希望的51H的数据形式!!这时执行DA A 指令后,就会将A中的数据调整为51H(具体调整过程和原理你可以详细看书,如果单片机书中讲的不详细,那么微机原理中一定说的非常详细),而我们按照BCD码规则就将其看为51D,符合我们的要求!

也就是说加数和被加数都是BCD码的形式,最大也只可能是99H,也就是我们十进制数中的99,只有这样才会有实际的意义!
所以DA A指令只用于十进制BCD码加法指令以后,否则是没有实际意义的!
在单片机中数据就是以二进制存放的也可以说是以16进制存放(4位二进制就是16进制),所以一般来说在单片机只有二进制转十进制才有意义,通过单片机将十进制转二进制是没意义的。 这个一般都是我们自己把一个十进制数转成二进制再送给单片机处理。
非得编写程序的话 程序如下
----------------------------------------------------------------------
;二进制整数(2位)转换为十进制整数(组合BCD码)
;入口: R3,R4
;出口: R0
IBTD22 : MOV A,R0
PUSH A
MOV R7,#03H
CLR A
IBD221 : MOV @R0,A
INC R0
DJNZ R7,IBD221
POP A
MOV R0,A
MOV R7,#10H
IBD222 : PUSH A
CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV B,#03H
IBD223 : MOV A,@R0
ADDC A,@R0
DA A
MOV @R0,A
INC R0
DJNZ B,IBD223
POP A
MOV R0,A
DJNZ
--------------------------------------------------
;二进制整数(M位)转换为十进制整数(组合BCD码)
;入口: R1,M,N
;出口: R0
IBTDMN : MOV A,R0
MOV R2,A
MOV A,R1
MOV R3,A
MOV B,N
CLR A
IBDMN1 : MOV @R0,A
INC R0
DJNZ B,IBDMN1
MOV A,M
SWAP A
RR A
CLR C
MOV R7,A
IBDMN2 : MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV B,M
IBDMN3 : MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ B,IBDMN3
MOV B,N
IBDMN4 : MOV A,@R0
ADDC A,@R0
DA A
JNB ACC.4,IBDMN5
SETB C
CLR ACC.4
IBDMN5 : MOV @R0,A
INC R0
DJNZ B,IBDMN4
DJNZ R7,IBDMN2
MOV A,R2
MOV R0,A
RET
----------------------------------------------------------------
BCD整数转换为二进制整数(1位)
;入口: R0(高位地址),R7
;出口: R4
IDTB1: CLR A
MOV R4,A
IDB11: MOV A,R4
MOV B,#0AH
MUL AB
ADD A,@R0
INC R0
MOV R4,A
DJNZ R7,IDB11
RET
------------------------------------------
;BCD整数转换为二进制整数(N位)
;入口: R1(高位地址),M,N
;出口: R0
IDTBMN : MOV A,R0
MOV R2,A
MOV B,N
CLR A
IDBMN1 : MOV @R0,A
INC R0
DJNZ B,IDBMN1
MOV A,R2
MOV R0,A
MOV A,M
MOV NCNT,A
IDBMN2 : MOV R7,N
CLR A
CLR F0
IDBMN3 : XCH A,@R0
MOV B,#0AH
MUL AB
MOV C,F0
ADDC A,@R0
MOV F0,C
MOV @R0,A
INC R0
MOV A,B
DJNZ R7,IDBMN3
MOV A,R2
MOV R0,A
MOV A,@R1
INC R1
ADD A,@R0
MOV @R0,A
DJNZ NCNT,IDBMN2
RET
----------------------------------------------------------
NDIV31 : MOV A,R2
MOV B,R7
DIV AB
PUSH A
MOV R2,B
MOV B,#10H
NDV311 : CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV F0,C
CLR C
SUBB A,R7
JB F0,NDV312
JC NDV313
NDV312 : MOV R2,A
INC R4
NDV313 : DJNZ B,NDV311
POP A
CLR OV
JZ NDV314
SETB OV
NDV314 : XCH A,R2
MOV R7,A
RET

㈤ 51单片机编程,用C语言。

给你一个矩阵键盘的参考程序
行列扫描:通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。
/****************************************************************************
*函数名 :KeyDown
*函数功能 : 检测有按键按下并读取键值
*输入 : 无
*输出 : 无
****************************************************************************/
voidKeyDown(void)
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//读取按键是否按下
{
Delay10ms();//延时10ms进行消抖
if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
{
GPIO_KEY=0X0F; //测试列
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//测试行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0))//按键松手检测
{
Delay10ms();
a++;
}
}
}
}

㈥ 求Kei|51单片机编程软件中文版

这位朋友你好,我也是自学单片机出来的,我英语也不好,不过用这个Kei|51单片机编程软件也不难,第一步,建立项目,第二步,建立文件,第三步,编译调试,里面的设置看一下中文说明就可以了,网上很多的,希望能帮到你

㈦ 求51单片机编程方式

按钮要接在单片机的中断引脚上,如P3.2和P3.3.
然后开中断:如
EX0=1 //开外部中断1
EA =1 //开总中断
IT0=1//下降沿触发
p0到p2的控制可以在中断程序中,也可以在主程序中。

㈧ 51单片机编程问题(汇编语言)

;
ORG0000H
JMPMAIN
ORG000BH
JMPTC0S
ORG001BH
JMPTC1S
MAIN:
MOVTMOD,#61H
MOVTH1,#0F6H
MOVTL1,#0F6H
SETBTR1

SETBET1
SETBET0
SETBEA

CLRP1.7
SJMP$
;
TC1S:;收到了10个脉冲,发生T1计数中断
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0;令T0定时50ms
SETBP1.7
RETI

TC0S:;到了50ms
CLRP1.7
CLRTR0
RETI
END

㈨ 51单片机编程

程序修改如下:
#include<reg51.h>
unsignedcharLedChar[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90
};
voidmain()
{
unsignedchari=0;
while(1)
{
P2=0xfe;
P0=LedChar[2];
for(i=0;i<300;i++);
P2=0xfd;//亲,这里有错误
P0=LedChar[1];
for(i=0;i<300;i++);
}

}

阅读全文

与51编程中文相关的资料

热点内容
香港男女出轨开房遇见的电影名字 浏览:372
单片机stm使用说明书 浏览:641
手机百度android开发 浏览:957
男主怀孕生子女尊 浏览:296
邵氏3级电影 浏览:320
男主角叫安迪的电影 浏览:77
建德盛德电影院今日电影 浏览:89
谁有在线观看的网站 浏览:643
午夜不卡电影 浏览:760
python字符串unicode编码 浏览:6
电影加密的软件 浏览:728
鬼王镜奴的古装电影 浏览:35
python3module 浏览:497
韩国李彩谭作品 浏览:931
python爬虫gif 浏览:861
重生收母 浏览:539
都市之开局被10个老婆宠成 浏览:233
程序员两年应该多少工资 浏览:964
极盗者2在线免费观看 浏览:854
男男电影免费观看推荐 浏览:361