单片机控制系统运行与维护 任务1.2 单灯点亮设计与仿真 1.2单灯点亮.pptVIP

  • 20
  • 0
  • 约9.88千字
  • 约 53页
  • 2020-11-16 发布于北京
  • 举报

单片机控制系统运行与维护 任务1.2 单灯点亮设计与仿真 1.2单灯点亮.ppt

单灯点亮仿真操作步骤 Keil C51软件编写汇编程序 PROTEUS软件仿真电路图 如何进行单灯点亮仿真? C51程序结构 * 常用指令 (1)伪指令 伪指令: 为了方便对汇编语言源程序进行汇编,单片机指令系统允 许使用一些特定的指令为汇编程序提供相关信息。 ORG:起始地址 END:程序结束 * 起始地址伪指令ORG 格式: ORG 16位地址 功能:规定程序段或数据块的起始地址。 汇编过程中,机器检测到该语句时,便确认了汇编的起始地址,然后把ORG伪指令下一条指令的首字节机器码存入16位地址所指示的存储单元内,其他的后续指令字节或数据连续依次存入后面的存储单元中。在一个源程序中,可以多次使用ORG指令,以规定不同的程序段的起始位置。但所规定的地址应该是从小到大,而且不允许重叠。 * 汇编结束伪指令END 格式: END 功能:用来表示程序结束汇编的位置。 END一般用在汇编语言源程序的末尾,该伪指令后面的语句将不被汇编成机器码。一个汇编语言源程序可能有几个程序段组成,包括主程序和若干个子程序,但只能有一个END指令。 * 转移指令LJMP/AJMP/SJMP AT89S51的程序存储器中有5个特殊地址单元,用于中断程序的入口地址。因此在编写程序的时候要通过转移指令LJMP/AJMP/SJMP跳过这段区域。 目的 (1)长转移指令LJMP LJMP addr16 ;PC←addr16 (2)绝对转移指令AJMP AJMP addr11 ;PC ←(PC)+2, ;PC10~0 ← addr11 (3)短转移指令SJMP SJMP rel ;PC ←(PC)+2+ rel * 程序存储器 程序存储器 内部 外部 0000H 0FFFH (4K) 0000H FFFFH (64K) 0000H 0FFFH (4K) 0000H 0001H 0002H (PC) 0000H是程序执行的起始单元, 在这三个单元存放一条 无条件转移指令 中断5 中断4 中断3 中断2 中断1 0003H 000BH 0013H 001BH 0023H 002BH 外部中断0 定时器0中断 外部中断1 定时器1中断 串行口中断 8位 . . . 0FFFH 0FFEH EA=1 EA=0 程序存储器资源分布 中断入口地址 程序存储器用来存放编制好的始终保留的固定程序和表格常数。程序储存器以程序计数器 PC 作为地址指针,通过16位地址总线,可寻址的地址空间为64KB。 * 点亮一个发光二极管 【例1-1】利用单片机最小系统硬件电路,编程实现P1.0所连接的发光二极管点亮。 ORG 0000H LJMP START ORG 0050H START:CLR P1.0 SJMP $ ;$代表当前指令的起始地址 END * 汇编程序的汇编 汇编就是将汇编语言转换成机器语言的过程。 * 学习Keil μVision4 * 学习proteus (2)在keil下输入程序并编译,与proteus进行联调。 (1)在proteus仿真环境下画出电路图; 预处理命令 include 函数说明 long fun1( ); float fun2( ); 变量定义 int x,y; float z; 功能函数1 fun1( ) { 函数体… } 主函数 main( ) { 主函数体… } 功能函数2 fun2( ) { 函数体… } 程序的开始部分一般是预处理命令、函数说明和变量定义等,然后是主函数main( )及各功能函数。 * C51的函数 由“函数定义”和“函数体”两个部分组成。 C51基础 函数定义格式 类型 函数名(数据类型 形式参数1,数据类型 形式参数2,…) { 声明语句; 执行语句; } 例如:int max(int a,int b) * C51中的基本数据类型 1. 字符型char 字符型变量分为有符号和无符号两种,它们的长度为8位,占用1个字节。 有符号型用char(或signed char)表示。 无符号型用unsigned char表示。 2. 整型int 整型变量也分

文档评论(0)

1亿VIP精品文档

相关文档