求大牛,请将C语言程序变为汇编程序,开发箱是周立功的,

barren13 2011-05-15 11:44:07
//128*64LCD液晶显示万年历时钟,求改为汇编语言程序
#include "reg52.h"
#include "VIIC_C51.H" //包含VI2C软件包
#include "zlg7290.h"
#define PCF8563 0xA2 //定义器件地址
#define WRADDR 0x00 //定义写单元首地址
#define RDADDR 0x02 //定义读单元首地址

sbit KEY_INT=P3^2;
sbit RST=P1^0;
unsigned char disp_buf[8]={0,0,0,0,0,0,0,0}; //显示缓存
unsigned char KEY; //保存键值
bit swich_date=0;
unsigned char display_time(unsigned char *sd)
{
sd[0]=sd[0]&0x7f; //秒屏蔽保留位
sd[1]=sd[1]&0x7f; //分屏蔽保留位
sd[2]=sd[2]&0x3f; //时屏蔽保留位
disp_buf[0]=(sd[0]%16);
disp_buf[1]=(sd[0]/16);
disp_buf[2]=31;
disp_buf[3]=(sd[1]%16);
disp_buf[4]=(sd[1]/16);
disp_buf[5]=31;
disp_buf[6]=(sd[2]%16);
disp_buf[7]=(sd[2]/16);
ZLG7290_SendBuf(disp_buf,8);
return 0;
}
unsigned char display_date(unsigned char *sd)
{
sd[0]=sd[0]&0x3f; //日屏蔽保留位
sd[2]=sd[2]&0x1f; //月屏蔽保留位
disp_buf[0]=(sd[0]%16);
disp_buf[1]=(sd[0]/16);
disp_buf[2]=(sd[2]%16)+0x80; //后面加小数点
disp_buf[3]=(sd[2]/16);
disp_buf[4]=(sd[3]%16)+0x80; //后面加小数点
disp_buf[5]=(sd[3]/16);
disp_buf[6]=0;
disp_buf[7]=2;
ZLG7290_SendBuf(disp_buf,8);
return 0;
}
unsigned char DelayNS(unsigned char no)
{
unsigned char i,j; //延时参数
for(;no>0;no--)
for(i=0;i<100;i++)
for(j=0;j<100;j++);
return 0;
}
void main()
{
unsigned char code td[9]={0x00,0x12,0x00,0x30,0x12,0x06,0x05,0x02,0x04}; //定义初始化字
unsigned char rd[7];
RST=0;
DelayNS(1);
RST=1; //初始化PCF8563,如果需要的话可以去掉
ISendStr(PCF8563,WRADDR,td,0x5);
DelayNS(1); //初始化PCF8563,如果需要的话可以去掉
ISendStr(PCF8563,WRADDR+5,&td[5],0x4);
while(1)
{
DelayNS(1);
IRcvStr(PCF8563,RDADDR,rd,0x7); //读现在的时、分、秒
DelayNS(1);
if(swich_date)
display_date(rd+3); //调显示日期子程序
else
display_time(rd); //调显示时间子程序
if(KEY_INT==0)
{
KEY=ZLG7290_GetKey();
if(KEY==1)
swich_date=~swich_date;
}
}
}
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kool86 2011-05-20
  • 打赏
  • 举报
回复
KEIL软件中有个选项,可以自动控制生成汇编程序
liang7143 2011-05-17
  • 打赏
  • 举报
回复
如果是keil

在C文件的开头加入 如下语句(生成同文件名,后缀为src的汇编文件)

#pragma src

也可以指定生成汇编文件的文件名 xxx.xxx
#pragma src(xxx.xxx)
barren13 2011-05-16
  • 打赏
  • 举报
回复
keil里面有直接转换的功能吗?求指导
空影 2011-05-16
  • 打赏
  • 举报
回复
在keil下点击仿真进行单步执行,就会有一个对应的汇编窗口
AnYidan 2011-05-16
  • 打赏
  • 举报
回复
单片机的 ide 中肯定有汇编的选项
  • 打赏
  • 举报
回复
在keil中debug下拉菜单中的第一个(好像是第一个)条目 点击一下就出现了 与c语言是对应的
ycbx1569 2011-05-16
  • 打赏
  • 举报
回复
点击调试按钮就会出现汇编代码而且与C一一对应 K4
schlafenhamster 2011-05-16
  • 打赏
  • 举报
回复
.lst带机器码就是汇编
zzu65 2011-05-16
  • 打赏
  • 举报
回复
恩,keil里面是有个反汇编,在调试状态下可以选择显示出来
周立功单片机的好多例程都同时带C和汇编,既然这个只有C,那你就看看其他有汇编的学习学习,把这个改成汇编版的,我觉得这样收获会更大一些,虽然现在很少使用汇编了,但能用汇编编程对硬件很有帮助,其实这个程序应该不难吧
Frankfu001 2011-05-16
  • 打赏
  • 举报
回复
记得好像没有,只是反汇编的内容

1,069

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧