单片机信息网:深圳市今科电子有限公司
网站地图 RSS订阅
高级搜索 收藏本站
会员中心 欢迎投稿
首页 | 业界动态 | 解决方案 | 技术文献 | 下载中心 | 单片机学习 | 单片机原理 | 单片机编程 | 单片机设计 | 单片机开发 | 技术专题 | 单片机论坛 |单片机博客| 联系我们
单片机新闻 | 单片机学习 | 单片机编程 | 单片机设计 | 单片机开发 | 单片机原理 | 单片机解密 | 芯片解密 | IC解密 | 单片机方案 | 51单片机 | AVR单片机 | PIC单片机
单片机程序实例大全 | 潜入式系统 | PCB设计 | 单片机资料下载 | 工具/软件下载 | 技术经验分享 | 单片机技术人生 | IC资料下载 | 数字电路 | 模拟电路 | 单片机空间
当前位置:主页>其它类>经验分享>文章内容
为什么要从汇编转到C-写给单片机初学者
来源:单片机信息网 作者: 发布时间:2008-03-15 阅读次数: 【大 中 小】【收藏本文】 【打印

为什么要从汇编转到C-写给单片机初学者


8051 是传统 CISC 架构微控制器的代表,而 PIC 则是现代 RISC 架构微控制器的佳作。虽然说 RISC 架构是公认未来微控制器的主流,但是 8051 借着累积多年的发展环境与资源,特别是 C Compiler 的成熟,在未来仍然有相当大的想象空间。希望这是一本可以活用的交互式电子书,以讨论及分享 KEIL C51 的程序设计经验为目的。
目前的内容有 …

内存
8051 特有的内存型态
特殊资料型态
指定绝对地址的变量
隐藏的初始化程序

程序范例

软件仿真的 Single Master I2C 接口程序

下载 KEIL C51 试用版

8051 特有的内存型态

code 以 MOVC @A+DPTR 读取的程序内存
data 可以直接存取的内部数据存储器
idata 以 Mov @Rn 存取的内部数据存储器
bdata 可以位寻址(Bit Addressable)的内部存储器
xdata 以 MOVX @DPTR 存取的外部数据存储器
pdata 以 MOVX @Rn 存取的外部数据存储器

特殊资料型态

bit 一般位(bit)变量
sbit 绝对寻址的位(bit)变量

语法
sbit my_flag = location; (location 范围从 0x00 ~ 0x7F)

范例
sbit EA = 0xAF;

或是配合 bdata 宣告的位(bit)变量
char bdata my_flags;
sbit flag0 = my_flags ^ 0;

(注意 sbit 前不可以加 static)

sfr 特殊功能缓存器(Special Function Register)

语法
sfr my_sfr = location; (location 范围从 0x80 ~ 0xFF)

范例
sfr P0 = 0x80;

指定绝对地址的变量


在单一模块内可以使用下面的语法宣告
[memory_space] type variable_name _at_ location

范例
pdata char my_pdata _at_ 0x80;

如果该变量必须为多个模块所使用(Global Variable)则以

抽象指针(Abstract Pointer)的方式在标头档(Header File)定义较为方便。

#define variable_name *((data_type *) location)

范例
#define my_pdata *((char pdata *) 0x80)

(注意 char 与 pdata 的顺序)

ABSACC.H 提供了下列方便的宏(Macro)定义。


#define CBYTE ((unsigned char volatile code *) 0)
#define DBYTE ((unsigned char volatile data *) 0)
#define PBYTE ((unsigned char volatile pdata *) 0)
#define XBYTE ((unsigned char volatile xdata *) 0)
#define CWORD ((unsigned int volatile code *) 0)
#define DWORD ((unsigned int volatile data *) 0)
#define PWORD ((unsigned int volatile pdata *) 0)
#define XWORD ((unsigned int volatile xdata *) 0)

隐藏的初始化程序

80C51 在电源重置后(Power On Reset)所执行的第一个程序模块并不是使用者的主程序
main(),而是一个隐藏在 KEIL-C51 标准链接库中称为 startup.a51 的程序模块。
startup.a51 的主要工作是把包含 idata、xdata、pdata 在内的内存区块清除为 0,并
且初始化递归指针。接着 startup.a51 被执行的仍然是一个隐藏在 KEIL-C51 标准链接库
中称为 init.a51 的程序模块。而 init.a51 的主要工作则是初始化具有非零初始值设定的
变量。

在完成上述的初始化程序之后,80C51 的控制权才会交给 main() 开始执行使用者的程序。
研究在 C51\Lib 目录下相关模块的汇编程序码,使用者将会对 KEIL-C51 的架构有进
一步的了解,同时更能掌握不同的高阶应用技巧。

程序范例
软件仿真的 Single Master I2C 接口程序:C51-I2C.C
缓存器库(Register Bank)切换的应用

缓存器库(Register Bank)切换的最大应用是在中断程序的处理。一般的软件设计会在程
式进入中断之后,利用切换缓存器库的方式保持主程序 R0 ~ R7 缓存器的内容,不受中断
程序的影响而改变。

上一篇:为什么选择AVR单片机?   下一篇:单片机初学者必看

标签:汇编 C 单片机 初学者 点此搜索本站更多相关信息...搜索更多相关内容..

您可能还感兴趣的内容: 深圳今科电子单片机解密、IC解密服务 今科电子单解机、IC解密业务是怎样的流程?

此页的访问者还关注了下面这些相关资讯


·单片机初学者必看
·怎样成为单片机高手?
·80C51系列单片机仿真器选购指南
·写给想学单片机的同学们
·单片机课程设计心得体会
·嵌入式工程师的软硬件道路三步曲
·单片机应用编程技巧
·PIC中档单片机的中断总结
·值得注意的单片机控制板的设计原则
·51单片机使用点滴
·RFID系统设计:小心,再小心!
·给从事嵌入式开发的同学指路:嵌入式人才的发展方向
·大学生应该学习哪些电子知识?
·单片机开发中应掌握的几个基本技巧
·了解嵌入式系统设计的总成本
·单片机系统设计的误区与对策
·如何选择适合的MCU?七大思路指点迷津
·硬件工程师必杀技
·关于硬件设计的几点小窍门之低功耗设计


版权声明:
( 更多版权详述 | 隐私政策 )

1、凡本网注明“来源:单片机信息网”或“单片机论坛”的文字、图片和音视频作品,版权均属深圳市今科电子有限公司所有,任何媒体、网站或个人未经本网书面授权不得转载、链接、转贴或以其他方式使用;已经本网书面授权的,在使用时必须注明“来源:单片机信息网”或“单片机论坛””。
2、本网未注明“来源:单片机信息网”或“单片机论坛”的作品均为转载稿,本网转载稿件只为传递更多信息,并不意味着认同其观点或真实性。如其他媒体、网站或个人转载使用,必须保留本网注明的“稿件来源”,并自负法律责任。
3、对于单片机信息网通过单片机论坛发布的作品,本网受著作权人委托禁止任何媒体、网站或个人在未经书面授权的情况下转载使用。
4、为维护自身权益、尊重作者版权,单片机信息网特委托深圳市律师协会为本网站法律顾问。对于违反本声明的,单片机信息网律师将依法追究其责任;对于刊载作品涉及版权等问题的,请作者在两周内与网站管理或张朝阳律师联系。
责任编辑:今科电子
双击复制本文网址,发送给您QQ/MSN上的朋友:
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
§最新评论
今科热门解密系列
·PIC芯片DSP系列单片机解密PIC芯
·Freescale单片机解密飞思卡尔芯
·飞思卡尔(Freescale)单片机解密/
·pic18f系列单片机解密
·三星(Samsung)系列单片机极速解
·飞林Feeling芯片系列MCU单片机/I
·MICROCHIP微芯(PIC)系列单片机/M
·单片机破解的常用方法及应对策略
·IC卡预付费电度表的安全及防范技
·单片机解密 单片机解密方法 单片
·PHILIPS系列单片机解密
·独家STC单片机解密
·我对红外遥控信号的解码思路
·51系列单片机解密(数分钟搞定)
·芯片解密业务流程介绍
·单片机解密后提供什么文件?
·单片机解密后为何要提供厂家的专
·芯片是如何被解密的?
·SST系列MCU单片机/IC/芯片解密
·INTEL系列单片机/IC/芯片解密
·ISSI系列MCU单片机IC破解芯片解
·ZILOG系列MCU单片机IC破解芯片解
·MOTOROLA系列MCU单片机IC破解芯
·LG(HYUNDAI系列MCU单片机/IC破
·MCPLD/EPLD系列MCU单片机IC破解
·新茂系列MCU单片机IC破解芯片解
·PHILIPS系列MCU单片机IC破解芯片
·MXIC系列MCU单片机IC破解芯片解
·(ATMEL)51系列MCU单片机IC破解芯
·华邦芯片系列MCU单片机/IC/芯片
·(MICROCHIP)微芯(PIC)系列MCU单
·CYPRESS系列MCU单片机IC破解芯芯
·Sinowealih系列MCU单片机IC破解
·Tenx系列MCU单片机IC破解芯片解
·松翰(SONIX)系列MCU单片机IC破解
·义隆(EMC)系列MCU单片机IC破解
·合泰(HOLTEK)系列MCU单片机IC破
·麦肯(MDT)系列mcu单片机IC破解芯
·今科单片机解密服务
·单片机程序开发
热点技术文章文献
·单片机课程设计心得体会
·单片机应用编程技巧
·怎样成为单片机高手?
·单片机开发中应掌握的几个基本技
·单片机初学者必看
·嵌入式工程师的软硬件道路三步曲
·给从事嵌入式开发的同学指路:嵌
·80C51系列单片机仿真器选购指南
·大学生应该学习哪些电子知识?
·写给想学单片机的同学们
·51单片机使用点滴
·硬件工程师必杀技
·值得注意的单片机控制板的设计原
·关于硬件设计的几点小窍门之低功
·如何选择适合的MCU?七大思路指
·了解嵌入式系统设计的总成本
·RFID系统设计:小心,再小心!
·单片机系统设计的误区与对策
·PIC中档单片机的中断总结
今科推荐产品
·51系列单片机解密(数分钟搞定)
·今科单片机解密服务
·单片机程序开发
·小家电(厨卫电器)系列产品
·灯饰控制系列产品
·四键遥控器系列产品
·红外遥控器系列产品
相关技术文献资讯
·单片机初学者必看
·怎样成为单片机高手?
·80C51系列单片机仿真器选购指南
·写给想学单片机的同学们
·单片机课程设计心得体会
·嵌入式工程师的软硬件道路三步曲
·单片机应用编程技巧
·PIC中档单片机的中断总结
·值得注意的单片机控制板的设计原
·51单片机使用点滴
·RFID系统设计:小心,再小心!
·给从事嵌入式开发的同学指路:嵌
·大学生应该学习哪些电子知识?
·单片机开发中应掌握的几个基本技
·了解嵌入式系统设计的总成本
·单片机系统设计的误区与对策
·如何选择适合的MCU?七大思路指
·硬件工程师必杀技
·关于硬件设计的几点小窍门之低功
论坛最新讨论资讯
芯片解密常见问题
· 什么是单片机?
· 单片机要如何加密?
· 单片机芯片是如何被解密的?
· 单片机解密后提供什么文件?
· 芯片解密为何用专用格式文档?
· 芯片解密是怎样的业务流程?
首页 - 隐私政策 - 版权申明 - 网站地图 - 产品中心 - IC解密中心 - 企业文化 - 代理加盟 - 公司简介 - 人才招聘 - 常见问题 - 我要投稿 - 联系我们 - 返回顶部
[单片机信息网] .© 2006-2009 版权所有,严禁非法复制与建立镜像.运营商:[今科电子] 公司地址:中国.深圳/上海 E-Mail:renbangent#126.com sales#techmcu.com(换#为@)
深圳公司 电话热线:+86 0755-82964200 82964201 82964700 传真:0755-82964432 支持手机:13684994966 业务QQ: 501995683 联系人:王小姐 张小姐(工程师) 罗先生(高工)
上海公司 电话热线:+86 021-63062380 15001885509   传真:+86 021-63062380-6   技术支持:15001885509 业务QQ:xxxxxxxx   联系人:郑小姐(业务) 陆工(工程师)
Optimized for 1024x768 to Firefox,Opera and MS-IE6 or higher,Template designed by: Berlin Lee.Web Support[FuAn Network] ICP Record No.:07053756 Webmaster