第19章单片机应用系统设计.ppt

上传人:hyn****60 文档编号:87474000 上传时间:2023-04-16 格式:PPT 页数:170 大小:1.70MB
返回 下载 相关 举报
第19章单片机应用系统设计.ppt_第1页
第1页 / 共170页
第19章单片机应用系统设计.ppt_第2页
第2页 / 共170页
点击查看更多>>
资源描述

《第19章单片机应用系统设计.ppt》由会员分享,可在线阅读,更多相关《第19章单片机应用系统设计.ppt(170页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第19章章 单片机应用系统设计单片机应用系统设计19.1软件编译与调试软件编译与调试19.2十字路口交通灯模拟控制器设计十字路口交通灯模拟控制器设计19.3单片机与单片机与PC机的串口通讯设计机的串口通讯设计19.4语音报站系统设计语音报站系统设计19.1 软件编译与调试软件编译与调试 19.1.1WAVE600的使用的使用1建立新程序建立新程序1)选择菜单:文件)选择菜单:文件|新建文件,如新建文件,如图图19-1所示。所示。2)在出现的源程序窗口中输入所需编写的程序,如)在出现的源程序窗口中输入所需编写的程序,如图图19-2所示。所示。3)保存程序,选择菜单)保存程序,选择菜单文件文件|

2、保存文件保存文件,保存时文件名称,保存时文件名称必须带上后缀名必须带上后缀名“.ASM”,如,如图图19-3所示。所示。4)建立新项目,选择菜单)建立新项目,选择菜单:文件:文件|新建项目,如新建项目,如图图19-4所所示。示。5)在弹出的窗口中,加入模块文件,选择刚才保存的文件)在弹出的窗口中,加入模块文件,选择刚才保存的文件jtxhd.asm,如,如图图19-5所示。所示。下一页返回19.1 软件编译与调试软件编译与调试6)加入包含文件,若没有包含文件,则可按取消键,此处按)加入包含文件,若没有包含文件,则可按取消键,此处按取消键。如取消键。如图图19-6所示。所示。7)保存项目。在保存项

3、目对话框中输入项目名称,注意此处)保存项目。在保存项目对话框中输入项目名称,注意此处无须添加后缀名,软件会自动将后缀名设成无须添加后缀名,软件会自动将后缀名设成“.PRJ”。按保。按保存键将项目存在与你的源程序相同的文件夹下。如存键将项目存在与你的源程序相同的文件夹下。如图图19-7所所示。示。2调试程序调试程序1)仿真器设置,选择菜单:设置)仿真器设置,选择菜单:设置|仿真器设置,在弹出的仿真器设置,在弹出的“仿真器设置仿真器设置”对话框中,按对话框中,按图图19-8设置,选择设置,选择“使用伟福软使用伟福软件模拟器件模拟器”。点击。点击“好好”“好好”结束仿真器设置。结束仿真器设置。上一页

4、 下一页返回19.1 软件编译与调试软件编译与调试2)双击项目中)双击项目中JTXHD.ASM文件,选择菜单:项目文件,选择菜单:项目|编译,编译,出现编译信息见出现编译信息见图图19-9。3)点击,或按)点击,或按F8,程序单步执行。即按一次执行一条指令。程序单步执行。即按一次执行一条指令。其他执行方法见其他执行方法见图图19-10。4)在所需设置断点的指令上右键设置断点,如)在所需设置断点的指令上右键设置断点,如图图19-11所所示。设置断点的目的是使程序执行到该处,达到调试程序的示。设置断点的目的是使程序执行到该处,达到调试程序的目的。目的。5)查看结果,选择菜单:窗口)查看结果,选择菜

5、单:窗口|数据窗口数据窗口|DATA,如,如图图19-12、图图19-13,其他窗口见,其他窗口见图图19-14所示。所示。上一页 下一页返回19.1 软件编译与调试软件编译与调试19.1.2KeilC的使用的使用1建立工程建立工程1)新建工程。点击)新建工程。点击Project菜单,选择弹出的下拉式菜单中菜单,选择弹出的下拉式菜单中的的NewProject如如图图19-15。接着弹出一个名为。接着弹出一个名为“CreateNewProject”的对话框,如的对话框,如图图19-16,先选择一个合适,先选择一个合适的文件夹准备来存放工程文件,如的文件夹准备来存放工程文件,如“C51”是新建的文

6、件夹。是新建的文件夹。在在“文件名文件名”中输入您的第一个程序项目名称,这里我们用中输入您的第一个程序项目名称,这里我们用“test”,“保存保存”后的文件扩展名为后的文件扩展名为uv2,这是,这是KEILuVision2项目文件扩展名。项目文件扩展名。2)选择单片机:)选择单片机:KeilC51提示选择提示选择CPU器件。在这里我器件。在这里我们选择们选择Atmel公司的公司的AT89S51。此时屏幕如。此时屏幕如图图19-17所示。所示。一个空的一个空的KeilC51工程建立完毕。工程建立完毕。上一页 下一页返回19.1 软件编译与调试软件编译与调试3)首先我们要在项目中创建新的程序文件或

7、加入旧程序文件。)首先我们要在项目中创建新的程序文件或加入旧程序文件。点击点击图图19-18中中1的新建文件的快捷按钮,在的新建文件的快捷按钮,在2中出现一个中出现一个名为名为“Textn”(其中(其中n表示序号)的文档,或通过菜单表示序号)的文档,或通过菜单File-New或快捷键或快捷键Ctrl+N来实现。来实现。点击图点击图19-18中的中的3保存新建的程序,也可以用菜单保存新建的程序,也可以用菜单File|Save或快捷键或快捷键Ctrl+S进行保存。因是新文件所以保进行保存。因是新文件所以保存时会弹出如存时会弹出如图图19-19的文件操作窗口,我们把第一个汇编的文件操作窗口,我们把第

8、一个汇编语言编写的程序命名为语言编写的程序命名为test1.asm,保存在项目所在的目录,保存在项目所在的目录中。注意:扩展名中。注意:扩展名“.asm”不可省略。不可省略。上一页 下一页返回19.1 软件编译与调试软件编译与调试4)添加源程序文件到工程中。现在,一个空的源程序文件)添加源程序文件到工程中。现在,一个空的源程序文件“test1.asm”已经建立,但是这个文件与刚才新建的工程之已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。单间并没有什么内在联系。我们需要把它添加到工程中去。单击击KeilC51软件左边项目工作窗口软件左边项目工作窗口“T

9、arget1”上的上的“”,将其展开。然后右击,将其展开。然后右击“SourceGroup1”文件夹,会弹出文件夹,会弹出如如图图19-20所示的选择菜单。单击其中的所示的选择菜单。单击其中的“AddFilestoGroupSourceGroup1”项,将弹出如项,将弹出如图图19-21所示所示的对话框。的对话框。请在文件类型下拉列表中选择请在文件类型下拉列表中选择Asmsourcefile源文件,再源文件,再选择刚刚保存的文件选择刚刚保存的文件“test1.asm”,按,按ADD按钮(请不要按钮(请不要多次点击多次点击“Add”按钮),最后按按钮),最后按“Close”按钮,程序文件按钮,程

10、序文件已加到项目中了。这时可以点击已加到项目中了。这时可以点击SourceGroup1文件夹图文件夹图标左边的标左边的“+”展开后查看。展开后查看。5)输入程序(略)输入程序(略)上一页 下一页返回19.1 软件编译与调试软件编译与调试6)单击)单击KeilC51工具栏的工具栏的“”图标,弹出名为图标,弹出名为“OptionsforTargetTarget1”的对话框。单击的对话框。单击“Output”标签页,选中标签页,选中“CreateHEXFile”项,然后项,然后“确确定定”。参见。参见图图19-22。7)编译程序)编译程序图图19-23中中1、2、3都是编译按钮,不同是都是编译按钮,

11、不同是1是用于编译单个文件;是用于编译单个文件;2是编译当前项目,如果先前编译过一是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的;编译的;3是重新编译,每点击一次均会再次编译链接一次,是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在不管程序是否有改动。在3右边的是停止编译按钮,只有点击右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。了前三个中的任一个,停止按钮才会生效。上一页 下一页返回19.1 软件编译与调试软件编译与调试8)编译后的结果会生成)编译后的结果会

12、生成IntelHEX格式的程序文件格式的程序文件“test1.hex”,如,如图图19-24。该文件可以被专门的芯片烧。该文件可以被专门的芯片烧写工具(例如写工具(例如Top2004编程器)载入并最终烧录到具体的编程器)载入并最终烧录到具体的芯片中。芯片安装到自己的电路板上,通电,就可以运行里芯片中。芯片安装到自己的电路板上,通电,就可以运行里面的程序了。面的程序了。2调试程序调试程序1)进入仿真状态)进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下,仍然按数最好配置一下,仍然按“”图标进入编译环境设置,如图标进

13、入编译环境设置,如图图19-25,找到,找到“target”下的下的“Xtal(MHz)”项,填入合项,填入合适的晶振频率,比如适的晶振频率,比如12。最后点击。最后点击“确定确定”。进入仿真状态。进入仿真状态很简单,直接点击工具栏红色的很简单,直接点击工具栏红色的“”图标。图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试2)仿真窗口)仿真窗口(1)源程序窗口)源程序窗口KeilC51调试界面的中间是源程序窗口。黄色箭头调试界面的中间是源程序窗口。黄色箭头“”所指为当前即将执行的代码。以深灰色标记的程序行是可以所指为当前即将执行的代码。以深灰色标记的程序行是可以执行的代码(当然,

14、在调试过程中未必一定要去执行)。以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、空浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或行、标号或ROM数据表。以绿色标记的程序行表示曾经执数据表。以绿色标记的程序行表示曾经执行过的代码。如行过的代码。如图图19-26所示。所示。上一页 下一页返回19.1 软件编译与调试软件编译与调试(2)寄存器窗口)寄存器窗口KeilC51调试界面的左边是寄存器窗口。调试界面的左边是寄存器窗口。8051的工作寄的工作寄存器(存器(R0R7)和系统寄存器()和系统寄存器(a、b、sp、dptr、PC

15、、psw)都列出来了。)都列出来了。Value栏显示的是寄存器的当前数值。栏显示的是寄存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击景标记。单击psw寄存器左边的寄存器左边的“”,展开后还可以看到,展开后还可以看到其每一位的情况。其每一位的情况。(3)汇编窗口)汇编窗口单击工具栏的单击工具栏的“”图标,源程序窗口会自动切换成汇编窗图标,源程序窗口会自动切换成汇编窗口。在汇编窗口里,我们可以看到每条指令的存储地址和编口。在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击码等信息。再次单击“”,回

16、到源程序窗口。,回到源程序窗口。上一页 下一页返回19.1 软件编译与调试软件编译与调试(4)存储器窗口)存储器窗口单击工具栏的单击工具栏的“”图标,将显示出存储器窗口。图标,将显示出存储器窗口。51单片单片机的存储器分为多个不同的存储空间,如果要观察代码存储机的存储器分为多个不同的存储空间,如果要观察代码存储器,就在地址栏器,就在地址栏“Address:”内输入内输入“C:地址地址”,例如:,例如:C:0080H;如果要观察外部数据存储器,就输入;如果要观察外部数据存储器,就输入“X:地址地址”;如果要观察内部数据存储器,则可以输入;如果要观察内部数据存储器,则可以输入“I:地址地址”。拖动

17、存储器窗口右边的滚动条还可以观察输入地址附近的存拖动存储器窗口右边的滚动条还可以观察输入地址附近的存储单元。储单元。存储器窗口有存储器窗口有“Memory#1Memory#4”共共4个观察子窗,个观察子窗,您可以用来分别观察代码存储器、内部数据存储器和外部数您可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择单元,选择“ModifyMemoryat”项,弹出修改对话框,项,弹出修改对话框,可以随意修改存储单元的内容。可以随意修改存储单元的内容。上一页 下一页返回

18、19.1 软件编译与调试软件编译与调试(5)变量观察和堆栈窗口)变量观察和堆栈窗口单击工具栏的单击工具栏的“”图标,将显示变量观察和堆栈窗口图标,将显示变量观察和堆栈窗口(Watch&CallStackWindow)。在)。在Locals标签页,标签页,会自动显示局部变量的名称和数值。在会自动显示局部变量的名称和数值。在C语言程序的函数中,语言程序的函数中,每一对花括号每一对花括号“”内定义变量都是局部变量,能够自动显内定义变量都是局部变量,能够自动显示。示。在在“Watch”标签页内,先用鼠标点击一次标签页内,先用鼠标点击一次“typeF2toedit”,再按功能键,再按功能键“F2”,输入

19、所要观察的局部或全局变,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。量的名称,回车后就能显示出当前数值。在在“CallStack”标签页内,可以实时地观察到堆栈的使用标签页内,可以实时地观察到堆栈的使用情况。情况。上一页 下一页返回19.1 软件编译与调试软件编译与调试3)程序的运行控制)程序的运行控制KeilC51能够实现程序单步和全速运行,具体由工具栏上能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:的按钮来实现:(1)复位按钮)复位按钮“”:单击此图标,能够使程序复位,程:单击此图标,能够使程序复位,程序将从地址序将从地址C:0000H处执行。处执行。(2)全速

20、运行)全速运行“”:单击此图标,能够使程序全速运行。:单击此图标,能够使程序全速运行。(3)停止运行)停止运行“”:该图标原来是灰色(不可操作),:该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。如果要停下来,则可以在进入全速运行状态后会变成红色。如果要停下来,则可以按此图标。按此图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试(4)单步进入)单步进入“”:按此图标可以实现程序的单步执行。:按此图标可以实现程序的单步执行。在遇到函数调用时,会跟踪进入函数体。在遇到函数调用时,会跟踪进入函数体。(5)单步跳过)单步跳过“”:也是单步执行,但是遇到函数时,:也是单步执行

21、,但是遇到函数时,视作视作“1条指令条指令”来执行,不会跟踪进入。来执行,不会跟踪进入。(6)单步跳出单步跳出“”:在调试程序时,如果希望从某个函数:在调试程序时,如果希望从某个函数中提前返回,则可以按此图标。中提前返回,则可以按此图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试(7)执行到光标执行到光标“”:用鼠标单击某条可执行的代码(深:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然后按此图标,则程序开始全速执行,灰色标记的程序行)。然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。如果单击不可执行当遇到光标所在的行时,会自动停下来。如果单击不可执行

22、的程序行(有浅灰色标记),试图让程序执行到该行,是不的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,允许的,“”图标也会立即变成灰色,不让你操作。图标也会立即变成灰色,不让你操作。上一页 下一页返回19.1 软件编译与调试软件编译与调试(8)设置设置/清除断点清除断点“”:KeilC51支持断点设置功能。支持断点设置功能。单击需要设置断点的行,再单击此图标,我们会看到该行被单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小方块标记。当程序全速运行时遇到断点,便会一个红色的小方块标记。当程序全速运行时遇到断点,便会自动停下来。自动停下来。KeilC51允许在同一个程序里

23、设置多个断点。允许在同一个程序里设置多个断点。清除某个断点的方法是,将光标停在该行上,再按一次清除某个断点的方法是,将光标停在该行上,再按一次“”图标。另外一种设置图标。另外一种设置/清除断点的快捷方法是,用鼠标在目清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,您不妨试一试。标程序行的空白处双击,您不妨试一试。(9)清除所有断点清除所有断点“”:如果设置了多个断点,想一并清:如果设置了多个断点,想一并清除,则可以按此图标。除,则可以按此图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试4)外围设备访问)外围设备访问KeilC51的一大特色是在仿真调试时支持对外围设备的访的一

24、大特色是在仿真调试时支持对外围设备的访问。问。单击菜单单击菜单“Peripherals”,会弹出外围设备菜单。在,会弹出外围设备菜单。在Peripherals菜单里列出了标准菜单里列出了标准51的外围设备(相对于的外围设备(相对于CPU内核而言):中断、内核而言):中断、I/O端口、串行口和定时器等。端口、串行口和定时器等。现在执行菜单现在执行菜单“Peripherals|I/O-Ports|Port1”,弹,弹出出P1端口的界面见端口的界面见图图19-27。在位。在位07中,用中,用表示高表示高电平,无电平,无表示低电平。执行菜单表示低电平。执行菜单“Peripherals|Timer|Ti

25、mer0”,弹出定时器,弹出定时器T0的界面。参见的界面。参见图图19-28。上一页 下一页返回19.1 软件编译与调试软件编译与调试单击开启单击开启关闭调试模式按钮,我们使用关闭调试模式按钮,我们使用Peripherals菜单菜单选择选择I/O-PortsP1,打开,打开P1调试窗口,再按运行键,调试窗口,再按运行键,这时就可以看到这时就可以看到P1中不断循环状态,空为中不断循环状态,空为“0”,打钩为,打钩为“1”。如。如图图19-29。要停止程序运行回到文件编辑模式中,。要停止程序运行回到文件编辑模式中,就要先按停止按钮,再按开启就要先按停止按钮,再按开启关闭调试模式按钮。关闭调试模式按

26、钮。19.1.3TOP2004通用通用USB编程器的编程器的使用使用TOP2004通用编程器(通用编程器(图图19-30)直接采用)直接采用USB接口通讯接口通讯和供电,可以工作在和供电,可以工作在Win98SE/Me/2000/XP操作系统,操作系统,无须外接电源,编程速度快,支持无须外接电源,编程速度快,支持2.5V6.5V器件,软件器件,软件升级灵活。升级灵活。上一页 下一页返回19.1 软件编译与调试软件编译与调试1编程器软件的安装编程器软件的安装1)请务必断开编程器,不要连接编程器)请务必断开编程器,不要连接编程器2)运行配套光盘中)运行配套光盘中TOPWIN目录内的目录内的SETU

27、P.EXE文件,文件,按照提示进行安装按照提示进行安装3)最后按)最后按“确认确认”重启电脑重启电脑4)电脑重启完成后,用配套的)电脑重启完成后,用配套的USB电缆连接编程器,电脑电缆连接编程器,电脑会提示会提示“找到新硬件找到新硬件”按照提示自动搜索软件,一直完成按照提示自动搜索软件,一直完成USB初始化安装初始化安装5)光盘中)光盘中TOPWIN10.EXE是中文界面的编程器软件,可是中文界面的编程器软件,可以进行安装以进行安装上一页 下一页返回19.1 软件编译与调试软件编译与调试6)运行)运行“开始开始-程序程序-TOPWIN”软件会出现软件会出现“正在初始化正在初始化USB接口,需要

28、接口,需要310秒秒”的界面,随后进入专用编程软件的界面,随后进入专用编程软件7)如果因为安装次序不正确引起的或者其他原因造成安装失)如果因为安装次序不正确引起的或者其他原因造成安装失败,可以点击:我的电脑败,可以点击:我的电脑-右键右键“属性属性”-硬件硬件-设备管理器设备管理器-JUNGO中有黄色感叹号的选中按中有黄色感叹号的选中按DEL删除,然后再重复以删除,然后再重复以上上16步骤即可。步骤即可。8)编程器的专用软件界面见)编程器的专用软件界面见图图19-31.2读写芯片的步骤读写芯片的步骤1)将)将51芯片插入插座,注意方向芯片插入插座,注意方向上一页 下一页返回19.1 软件编译与

29、调试软件编译与调试2)运行编程器软件)运行编程器软件3)型号)型号选择选择ATMEL89S514)读写)读写擦除擦除显示正常结束显示正常结束5)读写)读写读器件读器件工作区显示全工作区显示全FF退出退出6)装载装载选择文件选择文件(*.hex)在工作区显示装载的文件的在工作区显示装载的文件的十六进制代码十六进制代码7)读写读写写器件写器件显示写入完成显示写入完成退出退出8)完成,取出芯片,放入实验板验证。完成,取出芯片,放入实验板验证。上一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计19.2.1电路设计要求电路设计要求某十字路口,如下某十字路口,如下图图19-32所

30、示,设计一个十字路口交通灯所示,设计一个十字路口交通灯信号控制器,指挥交通车的通行。要求如下:信号控制器,指挥交通车的通行。要求如下:1东西通道和南北通道交替通行,东西通道每次放行东西通道和南北通道交替通行,东西通道每次放行30秒,秒,南北通道每次放行南北通道每次放行20秒。秒。2绿灯亮表示可以通行,红灯亮表示禁止通行。绿灯亮表示可以通行,红灯亮表示禁止通行。3每次绿灯变红灯时,黄灯先亮每次绿灯变红灯时,黄灯先亮5秒(此时另一干道上的红秒(此时另一干道上的红灯不变)。灯不变)。4十字路口要有数字显示,作为时间提示,以便人们更直观十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体

31、要求东西通道、南北通道通行时间及黄灯地把握时间。具体要求东西通道、南北通道通行时间及黄灯亮的时间均以秒为单位作减计数。亮的时间均以秒为单位作减计数。5在黄灯亮时,原红灯按在黄灯亮时,原红灯按1Hz的频率闪烁。的频率闪烁。下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计19.2.2电路设计目的电路设计目的熟悉单片机控制功能熟悉单片机控制功能熟悉单片机定时功能、工作方式、定时器中断、外中断、串熟悉单片机定时功能、工作方式、定时器中断、外中断、串口工作方式口工作方式熟悉显示数字的方法熟悉显示数字的方法熟练字型码的用法熟练字型码的用法19.2.3硬件电路设计及工作原理硬件电

32、路设计及工作原理1电路设计电路设计根据电路设计要求,设计出根据电路设计要求,设计出图图19-33所示电路。所示电路。上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计2电路原理电路原理该控制器采用该控制器采用AT89S51芯片作为主控芯片,利用芯片作为主控芯片,利用P1口控制口控制驱动芯片驱动芯片74LS240(八反相缓冲器(八反相缓冲器/线驱动器线驱动器/线接收器三线接收器三态门)驱动发光二极管态门)驱动发光二极管LED模拟来实际交通灯。倒计时显示模拟来实际交通灯。倒计时显示部分利用单片机的串行口实现。串行口工作在方式部分利用单片机的串行口实现。串行口工作在

33、方式0时,通过时,通过外接移位寄存器外接移位寄存器74LS164实现串并转换。需要显示的数据实现串并转换。需要显示的数据经经RXD端输出,经过端输出,经过74LS164串并转换输出到共阳极的串并转换输出到共阳极的LED数码显示管显示。利用数码显示管显示。利用T0定时器进行定时器进行1秒定时。根据需秒定时。根据需要设计外围电路与单片机接口。要设计外围电路与单片机接口。1)相关知识一:)相关知识一:AT89S51一般教科书以一般教科书以AT89C51讲述的较多,而讲述的较多,而AT89S51可与可与AT89C51兼容,相同的部分本书就不加以详细讲述,这里兼容,相同的部分本书就不加以详细讲述,这里主

34、要介绍一下两者不同点。主要介绍一下两者不同点。上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计(1)89S51与与89C51的不同之处的不同之处(2)89S51相对于相对于89C51增加的新功能增加的新功能2)相关知识二:)相关知识二:74LS2407LS240内部结构及引脚图见内部结构及引脚图见图图19-34,74LS240的真的真值表见值表见表表19-1,管脚使能见,管脚使能见表表19-2.74LS240输入和输输入和输出内部电路结构:见出内部电路结构:见图图19-35,由内部结构可以看出,由内部结构可以看出74LS240有较大的驱动能力。有较大的驱动能

35、力。3)相关知识三:)相关知识三:74LS164本例采用本例采用74LS164把串行口逐位输出的数据进行串并转换把串行口逐位输出的数据进行串并转换进而控制进而控制LED的显示。的显示。74LS164的封装如下的封装如下图图19-36所示,所示,图图19-37为为74LS164内部逻辑图,内部逻辑图,图图19-38为时序图为时序图.上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计5)单片机最小系统原理如单片机最小系统原理如图图19-39所示。所示。6)模拟交通灯驱动电路()模拟交通灯驱动电路(图图19-40)DS1DS3、DS4DS6分别模拟东西方向和南北方向

36、的分别模拟东西方向和南北方向的两组灯。两组灯。7)红黄绿灯时间显示电路)红黄绿灯时间显示电路LED采用共阳极,利用采用共阳极,利用510电阻限流,显示的数据由串口提电阻限流,显示的数据由串口提供,即串口工作在移位寄存器工作方式,并利用供,即串口工作在移位寄存器工作方式,并利用74LS164把逐位移出的数据转化为八位并行输出的数据,作为把逐位移出的数据转化为八位并行输出的数据,作为LED的的字形码。具体电路如字形码。具体电路如图图19-41.上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计19.2.4软件设计软件设计1利用定时器定时利用定时器定时1S1)定时)

37、定时/计数器的四种工作方式计数器的四种工作方式工作方式工作方式0:定时:定时/计数器的工作方式计数器的工作方式0称之为称之为13位定时位定时/计计数器方式。它由数器方式。它由TL(0/1)的低)的低5位和位和TH(0/1)的)的8位位构成构成13位的计数器,此时位的计数器,此时TL(0/1)的高)的高3位未用。位未用。工作方式工作方式2:在工作方式在工作方式2中,只有低中,只有低8位参与计数,而高位参与计数,而高8位是不参与计数的,用作预置数的存放,这样计数范围就小位是不参与计数的,用作预置数的存放,这样计数范围就小了了.每当计数溢出,就会打开每当计数溢出,就会打开T0(或(或T1)的高、低)

38、的高、低8位之间位之间的开关,预置数就进入低的开关,预置数就进入低8位。位。上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计工作方式工作方式3:在这种工作方式下,:在这种工作方式下,T0被拆成被拆成2个独立的定时个独立的定时/计数器来用。其中,计数器来用。其中,TL0可以构成可以构成8位的定时器或计数器位的定时器或计数器工作方式;而工作方式;而TH0则只能作为定时器用则只能作为定时器用。工作方式工作方式1:工作方式:工作方式1是是16位的定时位的定时/计数器方式,将计数器方式,将TMOD的的M1M0设为设为“01”即可,其它特性与工作方式即可,其它特性与工作

39、方式0相同相同.2)定时)定时1S十字路口交通灯模拟控制器定时器采用工作方式十字路口交通灯模拟控制器定时器采用工作方式1,先定时,先定时125ms,然后在定时中断程序中累加中断次数,然后在定时中断程序中累加中断次数,8次为一秒次为一秒,这样就可以起到定时这样就可以起到定时1s的功能的功能.上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计十字路口交通灯模拟控制器设计采用十字路口交通灯模拟控制器设计采用6M晶振晶振,因此定时因此定时125ms可用下列语句实现可用下列语句实现.工作方式方式工作方式方式1是是16位计数结位计数结构的工作方式,计数器由构的工作方式,计

40、数器由TH0全部全部8位和位和TL0全部全部8位构成。位构成。当为定时工作方式时,定时时间计算公式为:当为定时工作方式时,定时时间计算公式为:(216-计数初值)计数初值)晶振周期晶振周期12或或(216-计计数初值)数初值)机器周期机器周期当某单片机系统的外部晶振频率为当某单片机系统的外部晶振频率为6MHz,则最小定时时间,则最小定时时间为:为:216-(216-1)1/610-612210-62(s)最大定时时间为:最大定时时间为:(216-0)1/610-61213107210-6(s)131072(s)131(ms)定时定时125ms则计数初值为则计数初值为216-125ms/2 s=

41、3036=(0BDC)H上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计所以初始化定时器所以初始化定时器T0工作于方式工作于方式1,定时,定时125MS的语句如的语句如下:下:MOVTMOD,#01MOVTH0,#3cHMOVTL0,#0b0H定时定时1S在定时器在定时器0中断程序中完成,即计数八次为中断程序中完成,即计数八次为1S。定时。定时器中断初始化程序如下:器中断初始化程序如下:SETBEA;开中断;开中断SETBET0;定时器;定时器0允许中断允许中断SETBTR0;开始定时;开始定时定时器定时定时器定时1S的中断流程图见的中断流程图见图图19-4

42、3上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计2外中断程序外中断程序对于外中断必须有中断的初始化程序、中断服务程序对于外中断必须有中断的初始化程序、中断服务程序1)中断的初始化步骤)中断的初始化步骤(1)要使用中断则首先必须中断允许。)要使用中断则首先必须中断允许。(2)硬件的初始化:设置引脚连接设置)硬件的初始化:设置引脚连接设置I/O口的输入输出口的输入输出(3)软件的初始化:设置中断寄存器,设置中断服务程序地)软件的初始化:设置中断寄存器,设置中断服务程序地址,清除中断标志,设置中断触发模式址,清除中断标志,设置中断触发模式上一页 下一页返回19.

43、2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计(4)使能中断)使能中断外中断是由外部原因引起的中断,有两个中断源。即外中断外中断是由外部原因引起的中断,有两个中断源。即外中断0(INT0)和外中断)和外中断1(INT1),中断请求信号由引脚),中断请求信号由引脚P3.2(INT0)和和P3.3(INT1)输入。)输入。外中断请求信号有两种方式,一是电平方式,二是脉冲方式。外中断请求信号有两种方式,一是电平方式,二是脉冲方式。可通过有关控制位的定义进行规定。电平方式为低电平有效,可通过有关控制位的定义进行规定。电平方式为低电平有效,只需在单片机的只需在单片机的(INT0)和和(IN

44、T1)中断请求输入端采样到有效中断请求输入端采样到有效的低电平时,就会激活外部中断。脉冲方式则在脉冲的后负的低电平时,就会激活外部中断。脉冲方式则在脉冲的后负跳沿有效,即在相邻两个机器周期对中断请求引入端进行采跳沿有效,即在相邻两个机器周期对中断请求引入端进行采样中,如前一次为高,后一次为低即为有效中断请求。这就样中,如前一次为高,后一次为低即为有效中断请求。这就要求在这种中断方式,中断请求信号的脉冲宽度必须大于一要求在这种中断方式,中断请求信号的脉冲宽度必须大于一个机器周期,以保证电平变化能被单片机采样到。个机器周期,以保证电平变化能被单片机采样到。上一页 下一页返回19.2 十字路口交通灯

45、模拟控制器设十字路口交通灯模拟控制器设计计2)定时器控制寄存器)定时器控制寄存器(TCON)外中断请求方式的控制位在定时控制寄存器外中断请求方式的控制位在定时控制寄存器TCON(地址为(地址为88H)中的位)中的位88(IT0)和位和位8A(IT1)两个位,当两个位,当IT0(IT1)=0为电平方式,为电平方式,IT0(IT1)=1为脉冲方式。同为脉冲方式。同时在此寄存器中的位时在此寄存器中的位89(IE0)和位和位8B(IE1)为外中断请求为外中断请求标志位,当标志位,当CPU采样到采样到INT0(INT1)端出现有效中断请求端出现有效中断请求时,此位由硬件置时,此位由硬件置1。在中断响应完

46、成后转向中断服务时,再。在中断响应完成后转向中断服务时,再由硬件自动清。由硬件自动清。3)中断允许控制寄存器)中断允许控制寄存器(IE)下面我们对有关控制位作说明:下面我们对有关控制位作说明:EA中断允许总控制位,中断允许总控制位,EA=0,中断总禁止,禁止所有中断。,中断总禁止,禁止所有中断。EA=1,中断总允许,中断总允许,总允许位打开后,各中断的允许或禁止由各中断允许控制位总允许位打开后,各中断的允许或禁止由各中断允许控制位设置决定。设置决定。上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计4)中断优先级控制寄存器)中断优先级控制寄存器(IP)MCS-

47、51的中断优先级控制比较简单,只设置了高、低两个的中断优先级控制比较简单,只设置了高、低两个级别的有限级,各中断源的优先级别由优先寄存器(级别的有限级,各中断源的优先级别由优先寄存器(IP)进)进行控制。行控制。5)中断控制寄存器的状态设置)中断控制寄存器的状态设置本例设计要采用定时器中断本例设计要采用定时器中断,外中断外中断0、1。定时器中断、外。定时器中断、外中断、串口中断控制如下中断、串口中断控制如下,其中外中断其中外中断0、1优先级最高优先级最高,保证保证了应急通行的需求了应急通行的需求.上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计MOVSCON

48、,#00H;串口工作于工作方式串口工作于工作方式0,既移位寄存,既移位寄存器状态器状态SETBEA;开总中断;开总中断SETBET0;开定时器中断;开定时器中断SETBTR0;启动;启动T0定时器定时器SETBIT0;外中断;外中断0为脉冲触发方式为脉冲触发方式SETBIT1;外中断;外中断0为脉冲触发方式为脉冲触发方式MOVIP,#05;外中断;外中断0,1为高优先级为高优先级SETBEX0;开外中断;开外中断0SETBEX1;开外中断;开外中断1外中断程序流程图见外中断程序流程图见图图19-44,定时中断程序和外中断,定时中断程序和外中断0,1程序见源程序。程序见源程序。上一页 下一页返回

49、19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计3串口工作方式设计串口工作方式设计1)串口工作方式)串口工作方式串口有串口有4种工作方式:方式种工作方式:方式0、1、2、3.由串口控制寄存器由串口控制寄存器SCON和和PCON控制。控制。SM0、SM1功能见功能见表表19-9,SM2:0表示单机通讯,表示单机通讯,1表表示多机通讯,示多机通讯,REN:O禁止接收,禁止接收,1允许接收,允许接收,TB8:发送:发送数据第数据第9位,位,RB9:接收数据第接收数据第9位,位,TI:发送中断标志,发送中断标志,RI:接收中断标志。接收中断标志。(1)方式)方式1:10位异步收发位异

50、步收发方式方式1下,串行口位下,串行口位10位通用异步接口。发送或接收一帧数位通用异步接口。发送或接收一帧数据信息为据信息为10位,包括位,包括1位起始位位起始位“0”、8位数据位、位数据位、1位停位停止位止位“1”。上一页 下一页返回19.2 十字路口交通灯模拟控制器设十字路口交通灯模拟控制器设计计(2)方式)方式2:11位异步收发方式。发送或接收一帧信息包位异步收发方式。发送或接收一帧信息包括括1位起始位位起始位“0”、8位数据位、位数据位、1位可编程位、位可编程位、1位停止位位停止位“1”。(3)方式)方式3:11位异步收发。方式位异步收发。方式3为波特率可变的为波特率可变的11位位异步

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁