- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-51单片机原理与应用_4
随着单片机技术的不断发展,以单片机C语言为主流的高级语言也不断被更多的单片机爱好者和工程师所喜爱。 C51是专门针对51系列单片机而设计的C语言。完全遵循C语言的规则。 使用C51肯定要使用到编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。 KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS-51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软 VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。 单片机C语言的优越性 无须懂得单片机的具体硬件和指令集,也能够编出符合硬件实际的专业水平的程序; 不同函数的数据实行覆盖,有效利用片上有限的RAM空间; 提供专门针对51单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址; C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性; 提供small、compact、large等编译模式,以适应片上存储器的大小; 中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办; 程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏; 提供常用的标准函数库,以供用户直接使用; 有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉; 可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。 头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发; 向打印机输出字符串WELCOME的程序如下: # include absacc.h # include reg51.h # define uchar unsigned char # define COM8255 XBYTE[0x007f ] /* 命令口地址 */ # define PA8255 XBYTE[ 0x007c] /* 口A地址 */ # define PC8255 XBYTE[ 0x007e] /* 口C 地址 */ void toprn ( uchar *p ) / * 打印字符串函数 */ { while ( * p!= \0) {while (( 0x80 PC8255 )! =0 ) ; /* 查询等待打印机的BUSY状态*/ PA8255 = * p ; /* 输出字符 */ COM8255 = 0x00 ; /* 模拟STB脉冲 */ COM8255=0x01 ; p++ ; } } void main ( void ) { uchar idata prn [ ]= WELCOME; /* 设测试用字符串 */ COM8255=0x8e ; /* 输出方式选择命令 */ toprn ( prn ) ; /* 打印字符串 */ } 例 EPROM编程器。 由8031扩展1片EPROM2716、2片SRAM6116及1片8255构成EPROM编程器,编程对象是EPROM2732。扩展编程系统中2716用来存放固化用监控程序,用户的待固化程序放在2片6116中。8255的口A作编程器数据口,口B输出2732的低8位地址,PC3~PC0输出2732高4位地址,PC7作2732启动保持控制器与PGM连接。 译码地址为:6116(1):0800H;6116(2):1000H~17FFH;8255的口A:07FCH;口B:07FDH;口C:07FEH;命令口:07FFH。 8255的口A、口B、口C均工作在方式0输出,方式选择命令字为80H;2732的启动编程和停止编程,由PC7的复位/置位控制,当PC7=0时启动编程,PC7=1时,编程无效。 EPROM编程如下所示,参数为RAM起始地址、EPROM起始地址和编程字节数。 # include absacc.h # include reg51.h # define COM8255
文档评论(0)