专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51汇编与C全面周立功
2019-03-24 17:07
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
11542
19
1451
书上系统时钟例程能看懂,但后面对该例程的优化看不明白了。怎么将下面这段代码与时钟系统的c程序连接起来呢?我试了好长时间,一直没成功。
CSEG AT 0400H
bcdmap: DB '0' ,'0'
DB '0' ,'1'
DB '0' ,'2'
...
DB '5' ,'7'
DB '5' ,'8'
DB '5' ,'9'
END 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
xuyiyi
1楼-- · 2019-03-25 15:17
先把文件标号改了,这个?C_STARTUP是Keil C入口保留标号。
这个也要去掉,没用
CSEG AT 0
加载中...
xuyiyi
2楼-- · 2019-03-25 18:59
给个简单格式
$NOMOD51
NAME _READ_ROM_DPTR1
/**********************************************************************************************
// 从@DPTR1中读出1byte EEPROM或FLASH数据送ACC, DPTR1++
; input : ACC
; 使 用 :ACC, DPTR1
; output :
用 途 :中颖SH79/88/89F51系列MCU
作 者 :许意义
21ic ID :LAOXU
中颖论坛 : bbs.21ic.com
日 期 : 2011-10-15
**********************************************************************************************/
INSCON EQU 86H ;
?PR?_READ_ROM_DPTR1?READ_ROM_DPTR1 SEGMENT CODE
PUBLIC _READ_ROM_DPTR1
RSEG ?PR?_READ_ROM_DPTR1?READ_ROM_DPTR1
_READ_ROM_DPTR1: MOV INSCON,#01H
CLR A
MOVC A,@A+DPTR // @DPTR1
INC DPTR // DPTR1++
INC INSCON
RET
END
加载中...
xuyiyi
3楼-- · 2019-03-25 20:38
精彩回答 2 元偷偷看……
加载中...
xuyiyi
4楼-- · 2019-03-25 21:50
也可在连接时指定该表头的重定位地址,这样,经Keil C编译后,这段表格即重定位在指定地址。
帮你写了一个DEMO, 将这段表格重定位在指定地址0x400 上,你参考一下。
123.rar
(12.78 KB, 下载次数: 3)
2013-12-11 19:39 上传 点击文件名下载附件
加载中...
xuyiyi
5楼-- · 2019-03-25 22:08
#include <REG51.h>
char code bcdmap[60][2]={
"00", "01","02", "03","04", "05","06", "07","08", "09","10", "11","12", "13","14",
"15","16", "17","18", "19","20", "21","22", "23","24", "25","26", "27","28", "29",
"30", "31","32", "33","34", "35","36", "37","38", "39","40", "41","42", "43","44",
"45","46", "47","48", "49","50", "51","52", "53","54", "55","56", "57","58", "59"};
void main()
{ char a[10];
a[0] = bcdmap[0][0];
a[1] = bcdmap[1][0];
a[2] = bcdmap[2][0];
a[3] = bcdmap[3][0];
a[4] = bcdmap[4][0];
a[5] = bcdmap[5][1];
a[6] = bcdmap[6][1];
a[7] = bcdmap[7][1];
a[8] = bcdmap[8][1];
a[9] = bcdmap[9][1];
while(1) ;
}
重定位设置:
加载中...
hfjzy0702
6楼-- · 2019-03-25 22:14
精彩回答 2 元偷偷看……
加载中...
上一页
1
2
3
4
下一页
一周热门
更多
>
相关问题
相关文章
基于51单片机的计算器设计
0个评论
51单片机300个proteus仿真实例下载
0个评论
51单片机 蜂鸣器
0个评论
51单片机驱动RC522模块
0个评论
基于51单片机的指纹密码锁
0个评论
AT89C51单片机制作简易密码锁
0个评论
51单片机汇编语言计数器
0个评论
51单片机精确延时设计
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
这个也要去掉,没用
CSEG AT 0
$NOMOD51
NAME _READ_ROM_DPTR1
/**********************************************************************************************
// 从@DPTR1中读出1byte EEPROM或FLASH数据送ACC, DPTR1++
; input : ACC
; 使 用 :ACC, DPTR1
; output :
用 途 :中颖SH79/88/89F51系列MCU
作 者 :许意义
21ic ID :LAOXU
中颖论坛 : bbs.21ic.com
日 期 : 2011-10-15
**********************************************************************************************/
INSCON EQU 86H ;
?PR?_READ_ROM_DPTR1?READ_ROM_DPTR1 SEGMENT CODE
PUBLIC _READ_ROM_DPTR1
RSEG ?PR?_READ_ROM_DPTR1?READ_ROM_DPTR1
_READ_ROM_DPTR1: MOV INSCON,#01H
CLR A
MOVC A,@A+DPTR // @DPTR1
INC DPTR // DPTR1++
INC INSCON
RET
END
帮你写了一个DEMO, 将这段表格重定位在指定地址0x400 上,你参考一下。
char code bcdmap[60][2]={
"00", "01","02", "03","04", "05","06", "07","08", "09","10", "11","12", "13","14",
"15","16", "17","18", "19","20", "21","22", "23","24", "25","26", "27","28", "29",
"30", "31","32", "33","34", "35","36", "37","38", "39","40", "41","42", "43","44",
"45","46", "47","48", "49","50", "51","52", "53","54", "55","56", "57","58", "59"};
void main()
{ char a[10];
a[0] = bcdmap[0][0];
a[1] = bcdmap[1][0];
a[2] = bcdmap[2][0];
a[3] = bcdmap[3][0];
a[4] = bcdmap[4][0];
a[5] = bcdmap[5][1];
a[6] = bcdmap[6][1];
a[7] = bcdmap[7][1];
a[8] = bcdmap[8][1];
a[9] = bcdmap[9][1];
while(1) ;
}
重定位设置:
一周热门 更多>