请问这段汇编语言转成C语言如何写?单片机的

LCD_init:
CALL DELAY_10MS ;延时15MS
CALL DELAY_10MS
CALL DELAY_10MS
MOV A,#30H ;显示模式设置(不检测忙信号)
CALL LCD_write_cmd_N ;共三次
CALL DELAY_10MS
MOV A,#30H
CALL LCD_write_cmd_N
CALL DELAY_10MS
MOV A,#30H
CALL LCD_write_cmd
MOV A,#38H ;显示模式设置(以后均检测忙信号)
CALL LCD_write_cmd
MOV A,#08H ;显示关闭
CALL LCD_write_cmd
MOV A,#01H ;显示清屏
CALL LCD_write_cmd
MOV A,#00001100b ;显示光标移动设置
CALL LCD_write_cmd
MOV A,#00000110b ;显示开及光标设置
CALL LCD_write_cmd

RET
LCD_write_cmd: ;送控制字子程序(检测忙信号)
CALL WAITIDLE
LCD_write_cmd_N: ;送控制字子程序(不检测忙信号)
CLR LCD_RS ;RS=0 RW=0 E=高脉冲
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_E
NOP
CLR LCD_E
RET
LCD_write_data: ;写字符子程序
CALL WAITIDLE
SETB LCD_RS ;RS=1 RW=0 E=高脉冲
CLR LCD_RW
MOV LCD_DATA,A
SETB LCD_E
NOP
CLR LCD_E
RET
WAITIDLE:
PUSH ACC ;正常读写操作之前必须检测LCD控制器状态
MOV LCD_DATA,#0FFH
CLR LCD_RS ;RS=0 RW=1 E=高电平
SETB LCD_RW
SETB LCD_E
WTD_PA: NOP ;DB7: 0 LCD控制器空闲
JB LCD_BUSY,WTD_PA ; 1 LCD控制器忙
CLR LCD_E
POP ACC
RET
delay_10ms:
mov r7,#100
delay_10ms_l0:
mov r6,#100
delay_10ms_l1:
djnz r6,delay_10ms_l1
nop
djnz r7,delay_10ms_l0
ret

void LCD_init(void)
{
delay_10ms();
delay_10ms();
delay_10ms();
lcd_write_cmd_N(0x30);
delay_10ms();
lcd_write_cmd_N(0x30);
delay_10ms();
lcd_write_cmd(0x30);
lcd_write_cmd(0x38);
lcd_write_cmd(0x08);
lcd_write_cmd(0x01);
lcd_write_cmd(0x0c);
lcd_write_cmd(0x06);
}
void lcd_write_cmd(unsigned char cmd)
{
waitidle();
lcd_write_cmd_N(cmd);
}
void lcd_write_cmd_N(unsigned char cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_DATA=cmd;
LCD_E=1;
_nop_();
LCD_E=0;
}
void lcd_write_data(unsigned char dat)
{
waitidle();
LCD_RS=1;
LCD_RS=0
LCD_DATA=dat;
LCD_E=1;
_nop_();
LCD_E=0;
}
void waitidle(void)
{
LCD_DATA=0xff;
LCD_RS=0;
LCD_RW=1;
LCD_E=1;
while(LCD_BUSY)
{
_nop_();
}
LCD_E=0;
}
void delay_10ms(void)
{
unsigned char i,j;
for(i=0;i<15;i++)
for(j=0;j<125;j++);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-20
网上有反汇编软件,你试试,谢谢

51单片机汇编语言转c语言 急!!!
如下即可:已经测试成功。别忘了采纳。

怎样能将汇编语言转换成c语言
1、打开IAR FOR STM8工程。2、编一段C语言的延时程序,作为例子。3、如何在目前实例上,添加我们的汇编。4、编译一下是否可以编译通过,编译提示OK。5、进入仿真界面,是否可以运行。把断点设在汇编的程序上,运行后,可以在断点处停止,说明仿真也是正常的。

单片机stc 这段汇编语言代码怎么改成C语言的,这是网上找的pwm播放声 ...
这是一个内部带PWM脉宽调制输出的单片机,该程序执行后,蜂鸣器发出类似“嘀--”的音,这个程序非常简单,就是通过定时器0的中断不停的向16位的PWM寄存器送入80h,一直到_end,共32个数据,可用51的任何一个定时器来模拟完成,如将t0设置成16位模式,计数值为0-65535,在0-20000的时候输出高电平,20...

汇编语言和c语言混编 用keil怎么写入单片机啊?
1. 在Keil的左侧项目列表中,找到并选中包含汇编代码的C文件。2. 右键点击所选文件,选择“Option for File”选项。3. 在弹出的对话框右侧区域,会看到五个复选框。初始状态,这些复选框前的勾均为灰色。4. 点击“Generate Assembler SRC File”和“Assembler SRC File”这两个选项,直到它们的勾变...

c51单片机汇编ASM转化成C语言
首先说下功能:这是一个计数器,每秒计数一次,从0开始,计数到99后复位0,然后再反复执行。。数码管是共阴型的,由P20,P21作为片选信号控制亮灭。P20、P21为0时,选中数码管,送入相应的段码,即可显示。程序如下:include <reg51.h> unsigned char shiwei,gewei,count,times;uusigned char code ...

怎么把烧录好的单片机程序读取出来成c语言
2、分析反汇编代码:通过分析反汇编代码,了解程序的结构和逻辑,可以查看函数、变量、循环、条件语句等,并尝试理解程序的功能和算法。3、编写C语言代码:根据对反汇编代码的分析,编写C语言代码来实现相同的功能,需要注意的是,由于反汇编代码是从二进制代码生成的,并不是原始的C语言代码,因此在编写C...

c51转换成c语言?
首先,你列出这是51单片机的汇编程序,可以称为A51程序,不宜称为C51程序。其次,你这个程序并不完整。大概可以译为:sbit P17 = P1^7;unsigned char gucR0;void main(){ P17=1;TMOD = 0x01;TH0 = 0xFE;TL0 = 0x0C;gucR0 = 7;ET0 = 1;EA = 1;TR0 = 1;while(1);} void ISR...

请帮忙解释下这段汇编语言的意思: DELAY:MOV R7,#250 D1:MOV R6,#25...
以上汇编转化为C语言为:void delay() { for(R7=250;R7>0;R7--)for(R6=250;R6>0;R6--);} 这是执行一段延时。原理是:执行一个语句需要消耗1到2个机器时间,除法的更长;1个机器时间和晶振频率有关,一般单片机都是t=12\/f,比如当晶振频率是12MHz的时候,1个机器时间是t=12\/12MHz=1us...

...如何将汇编与C语言结合起来一起编写单片机的程序
在混合编程中,最常用也是最实用的方法是在C语言中加入部分汇编语言的代码,分为两种方法。方法1)在Keil C51的函数中直接插入汇编语句 方法2)按照Keil C51接口规则,编写汇编模块 方法1是利用编译控制命令#pragma asm(用来标识所插入的汇编语句的起始位置) 和 #pragma endasm (用来标识所插入的汇编...

如何将单片机HEX文件转换成C语言或汇编
1、.hex是二进文件。.asm是汇编文件。是C编译器产生的。如果谁把汇编语言还原成C,几乎不太可能,如有这时间功夫,C程序自已都可早早重新编好了。2、可以用反向工程hex2c:开始—>运行—>输入CMD 找到hex2c.exe所在文件夹路径 输入 hex2c <hex文件名称.hex> <生成c文件名称.c> ...

相似回答
大家正在搜