【大学课件】单片机系统设计辅助软件.ppt
实例解读51单片机完全学习与应用All you need to know about the 8051 microcontroller,1,http:/,第4章 单片机系统设计辅助软件,2,第4章 单片机系统设计辅助软件,单片机系统,3,单片机系统由硬件和软件两部分构成。所以单片机系统的设计一般包括硬件设计和软件设计两方面。硬件实际就是单片机系统的电路,它是系统的运行平台;软件实际就是下载到单片机中的程序,它指挥着单片机如何控制外设发挥系统功能。Proteus软件可对设计好的电路和程序进行仿真,观察系统运行的现象、效果是不是与我们的初衷吻合。,第4章 单片机系统设计辅助软件,4.1.1 Proteus软件界面,4,从“开始”菜单的“程序”中找到一个名为“Proteus 7 Professional”的文件夹(假设安装的是Proteus 7),单击文件夹中的“”命令即可启动Proteus,并打开图示的软件界面。界面中有许多图标,各个图标实现的功能可参考附录D。,第4章 单片机系统设计辅助软件,4.1.1 Proteus软件界面,5,见本书光盘中的视频演示,第4章 单片机系统设计辅助软件,4.1.2 用Proteus仿真,6,见本书光盘中的视频演示,第4章 单片机系统设计辅助软件,4.2 Vision单片机程序开发,7,见本书光盘中的视频演示,第4章 单片机系统设计辅助软件,4.3 Vision的调试及仿真功能,8,见本书光盘中的视频演示,第4章 单片机系统设计辅助软件,4.4.1 下载器与单片机,9,AT89S51单片机的P1.5、P1.6、P1.7口除做一般I/O口外还肩负着下载程序的任务。如图示,在实际电路会为单片机系统添加一个下载接口,它与下载器的JTAG口连接,而下载器可插入计算机的USB口中,通过计算机上下载器附带的下载软件就可以把在Vision中生成的执行代码HEX文件下载到单片机中了。,第4章 单片机系统设计辅助软件,4.4.1 体验下载过程,10,见本书光盘中的视频演示,第4章 单片机系统设计辅助软件,4.5.1 需求分析,11,单片机控制着8支发光二极管,每一时刻只有一支发光二极管点亮,如图示,延时200ms后熄灭而与之相邻的发光二极管点亮。直到点亮最后一个发光二极管后又以相反的方向依次点亮发光二极管。,第4章 单片机系统设计辅助软件,4.5.2 电路设计,12,从单片机最简系统出发,给I/O口添加8支发光二极管,得系统电路如图示。当然,除了使用P2口外还可以使用P0、P1、P3完成这个实例。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,13,单片机的P2口依次输出低电平就可以实现流水灯的效果,如图示,相当于一个“0”在P2口的8个位中先向右“跑动”,再向左“跑动”。指令RRCA可让进位标志位C在累加器A中从左向右移动。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,14,进位标志位C:在单片机中有一个叫做“程序状态字”的特殊功能寄存器,英文缩写是PSW。PSW有8位(1个字节),如图示,最高位叫做进位标志位C,有时也标记为CY。其他位分别为辅助进位标志位(AC)、标志0(F0)、工作寄存器组别位1(RS1)、工作寄存器组别位0(RS0)、溢出标志(OV)、奇偶标志位(P)。单片机在执行加法(或减法)运算过程中如果有进位(或借位)则PSW中的进位标志位C被硬件自动置1,如果没有进位(或借位)则为0。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,15,累加器A:是单片机另一个1个字节长度的特殊功能寄存器,可以在单片机运行时存储数据,是一个相当重要的寄存器。它与程序状态字PSW不同的是,累加器A与程序运行的状态无关,可提供给用户任意使用。在汇编程序中,可以简单地把累加器A看成是一个变量,进行赋值、运算等操作。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,16,回到指令“RRCA”上,它让程序状态字PSW的进位标志位C在累加器A中右移一位。假设一开始进位标志位C=0且累加器A的8个位全为1,如图示。当执行指令“RRC A”时,C=0进入了A的最高位(最左侧),原来最高位的1被0“挤”到它右边的邻居位上,而这个邻居位则被“挤”到它的右边邻居位上,重复这个向右“挤”的过程,直到最低位(最右侧)被“挤出”累加器A,如图示,最低位被“挤出”来则进入了进位C中,使C=1。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,17,首先,“MOV R1,#8”指令把立即数8载入工作寄存器R1,此时R1=8。第2行“LOOP”是一个标号,“RRCA”让进位标志位C在累加器A中从左向右轮换一次。第3行“DJNZ R1,LOOP”将R1减1,看R1是不是等于0,如果不等于,则跳到“LOOP”标号处循环执行。这样一来,每执行一次“DJNZ R1,LOOP”,R1的值就少1,程序回到LOOP,进位标志位C在累加器A中从左向右轮换一次,完成一个循环。直到这个循环把R1减到0后,指令“DJNZ R1,LOOP”失效,程序转到这条指令的下一条指令开始执行。,第4章 单片机系统设计辅助软件,4.5.3 软件设计,18,第4章 单片机系统设计辅助软件,4.5.3 软件设计,19,