




已阅读5页,还剩136页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务五 单片机控制简单交通灯,教学导航 任务单 任务准备 案例示范 知识梳理与总结 任务作业,教学导航,教学导航,任务单,任务五 简单交通灯控制系统,5.1 Keil Vision集成开发环境 5.2 Proteus的使用 5.3 单片机最小系统,5.1 Keil Vision集成开发环境,5.1.1 Keil Vision的安装与软件开发流程,Keil Vision开发工具提供的程序 (1)Windows应用程序Vision2。 (2)C51美国标准优化C交叉编译器 (3)A51宏汇编器 (4)BL51连接重定位器 (5)LIB51库管理器 (6)OH51目标文件到HEX格式的转换器 (7)RTX-51实时操作系统,1Keil Vision的安装,安装条件 (1)具有奔腾奔腾II或兼容的处理器的个人计算机。 (2)操作系统为Windows 95、Windows 98、Windows NT5.0或更高。 (3)RAM大于16MB。 (4)20MB的硬盘空余空间。,1Keil Vision的安装,安装步骤 (1)插入Keil开发工具光盘; (2)从CD浏览界面选择安装软件; (3)跟随提示进行安装操作。,2、软件开发流程,(1)创建一个项目,从器件库中选择目标器件,配置工具设置。 (2)用C语言或汇编语言创建源程序。 (3)用项目管理器生成应用。 (4)修改源程序中的错误。 (5)测试连接应用。,2、软件开发流程,5.1.2 Keil Vision的使用方法,1Keil Vision的功能,(1)文件菜单(File),(2)编辑菜单(Edit),(3)视图菜单(VIEW),(4)工程菜单(Project),(5)调试菜单(Debug),(6)外围器件菜单(Peripherals),(7)工具菜单(Tools),(8)视窗菜单(Window),2开发工具选项,(1)Device选项卡,此选项卡与建立新工程时弹出的要求选择单片机型号的对话框相同,可以根据使用的单片机型号来选择。,(2)Target选项卡,(3)Output选项卡,(4)Listing选项卡,(5)C51选项卡,(6)BL51 Locate选项卡,(7)BL51 Misc选项卡,(8)Debug选项卡,5.1.3 Keil Vision调试技巧,1程序复位,8051芯片复位后程序计数器将从0000H重新开始,另外一些内部特殊功能寄存器在复位期间也将重新赋值,例如A将变为00H,DPTR变为0000H,SP变为07H,I/O端口变为0FFH等。程序复位有以下方法。 点击图标 。 选择PeripheralsReset CPU。 在命令输入窗口输入“RESET”。,2设置和删除断点,只需要用鼠标左键双击该行,就可以在该行左边框发现红色的断点标志;断点的删除也是同样的操作,如果该行已经设置为断点行,双击该行将取消该行的断点。,3查看和修改寄存器的内容,4观察和修改变量值,观察窗口1和2 变量名称栏:用于输入变量的名称。 变量数据栏:用于显示变量的数值。 局部变量窗口:自动显示当前正在使用的局部变量,不需要用户自己添加。,5观察和修改存储器区域,存储器地址输入栏 存储器地址栏 存储器数据区域 存储器窗口组:,6定时器/计数器的使用方法,7外部中断的使用方法,5.2 Proteus的使用,Proteus是由Labcenter Electronics开发的功能强大的单片机仿真软件。 该软件可以仿真模拟电路、数字电路、数模混合电路,其最大的亮点在于能够对单片机进行实物级的仿真。,5.2.1 PROTUES软件界面,1Proteus简介 Proteus软件集成了高级原理布图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计系统。,(1)特点,1)互动的电路仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。 2)仿真处理器及其外围电路。可以仿真51系列、AVR、PIC等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。,(2)功能模块,1)个易用而又功能强大的ISIS原理布图工具; 2)PROSPICE混合模型SPICE仿真; 3)ARES PCB设计。,(3)PROTEUS所提供的资源,1)Proteus可提供的仿真元器件资源 2)Proteus可提供的仿真仪表资源 3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。 4)Proteus可提供的调试手段,(4)用PROTEUS实现软件仿真,1)支持多种主流单片机系统的仿真 2)提供软件调试功能 3)提供丰富的外围接口器件及其仿真。RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。 4)提供丰富的虚拟仪器 5)具有强大的原理图绘制功能,(5)用proteus单独仿真,在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。,原理图编辑窗口,元件列表,预览窗口,模型选择工具栏,配件,2D图形,方向 工具栏,仿真 工具栏,1. ISIS软件界面,它是用来绘制原理图的,蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。 正确的操作是:鼠标滚轮用来放缩原理图;左键放置元件;右键选择元件;按两次右键删除元件;先右键后左键编辑元件属性;先右键后左键拖动元件;连线用左键,删除用右键。,1. 原理图编辑窗口,1. 原理图编辑窗口,单击预览窗口中想要显示的位置,编辑窗口将显示以单击处为中心的内容。 在编辑窗口内移动鼠标,按下Shift键,用鼠标“撞击”边框,可使显示平移。用鼠标指向编辑窗口并按缩放键F6,F7键),编辑窗口会以鼠标指针位置为中心重新显示。 按住Shift键,同时在一个特定的区域用鼠标左键拖一个框,则框内的部分就会被放大,该框可以是在编辑窗口内拖,也可以是在预览窗口内拖。,1)缩放,按F6键可以放大电路图(连续按会不断放大,直到最大) 按F7键可以缩小电路图(连续按会不断缩小,直到最小 按F8键可以把一整张电路图缩放到完全显示出来。 图的大小可以通过“ViewZoom”命令或者上述的功能键控制。 无论何时,用户都可以使用功能键控制缩放,即便是滚动和播放对象时。,2)点状栅格开关功能,编辑窗口内有无点状的栅格,可以通过View(查看)菜单的Grid(网格)命令在打开和关闭间切换。 点与点之间的间距由当前捕捉的设置决定。,3)捕捉到栅格,鼠标指针在编辑窗口内移动时,坐标值是以固定的步长增长的初始设定值是100。这称为捕捉,能够把元件按栅格对齐。 捕捉的尺度可以由“View(查看)Snap”命令设置,或者直接用快捷键F4、F3、F2和Ctrl+F1。 如果想确切地看到捕捉位置,可以使用“View(查看)X-Cursor(光标)”命令,选中后将在捕捉点显示个小或大的交叉十字。,2、预览窗口,预览窗口可显示两个内容: 在元件列表中选择一个元件时,它会显示该元件的预览图; 鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容。,2、预览窗口,在下列情况下,预览窗口显示将要放置的对象的预览: 1)一个对象在选择器中被选中。 2)使用旋转或镜像按钮时。 3)为一个可以设定朝向的对象选择类型图标时(如元件图标、器件引脚图标等)。,(3)元件列表,元件列表用于挑选元件、终端接口、信号发生器、仿真图表等。 如当选择“元件”时,单击“P”按钮(挑选元件按钮)会打开挑选元件对话框,选择了一个元件后并单击“OK”按钮后,该元件会在元件列表中显示,以后要用到该元件,只需在元件列表中选择即可。,3ISIS主菜单,(1)File菜单 包括工程的新建、存储、导入、导出、打印等常用操作。 ISIS的文件类型有:设计文件(Design Files)、部分文件(Section Files)、模块文件(Module Files)和库文件(Library Files)。,1)新建设计(New Design),选择“新建文件”工具或菜单“File(文件)New Design(新建设计)”,将清除所有的原有设计数据,出现一张空的A4纸。新设计的默认名为“UNTITLED. DSN”。 “File Save Design”命令会把设计以这个名字存入磁盘文件中,文件的其他选项也会使用它作为默认名。 如果想进行新的设计,需给这个设计命名,然后使用“Load Design(打开设计)”命令,输入新的文件名。,2)打开设计(Load Design):,装载设计的方法有两种。 在DOS提示符下输人:ISIS 在ISIS系统中使用“Load Design(打开设计)”命令。,3)保存设计(Save Design),可以在退出ISIS系统或者其他任何时候保存设计,这时需要使用“Save Design“命令。上述两种情况下,设计都被存到装载时的文件中。 “Save Design as(另存为)”,命令可以把设计保存到另一个文件中。,4)导入/导出部分文件(Import/Export Section),“File(文件)”菜单中的“Export(导出区域)”命令可以就当前选中的对象生成一个部分文件。这个文件可使用“Import(导入区域)”命令读入另一个设计。部分文件的操作类似于“块复制”。,5)退出ISIS,想要退出ISIS系统,用“File”菜单中的“Exit(退出)”命令或者键入“Q”。如果文件修改过,系统会出现对话框问用户是否保存文件。,(2)View(查看)菜单,包括原理图编辑窗口的定位、栅格的调整及图形的缩放等基本常用菜单。,(3)Edit(编辑)菜单,编辑功能。,(4)Library(库)菜单,它具有选择元器件及符号、制造器件、设置标号封装工具、存储本地对象、分解元件、编译库、自动放置库、比较封装、库管理的功能。,(5)Tools(工具)菜单,它具有实时标注、自动连线、查找并选中、属性设置工具、全局标注、导入ASCII数据、材料清单、电气规则检查、编译网络表、编译模型、将网络标号导入ARES、从ARES回注的功能。,(6)Design(设计)菜单,它具有编辑设计属性、编辑原理图属性、编辑设计注释、设定电源范围、新建一张原理图、删除原理图、转到原理图、转到上一张原理图、转到下一张原理图、转到子原理图、转到主原理图的功能。,(7)Graph(绘图)菜单,它具有编辑仿真图形、增加跟踪曲线、仿真图形、查看日志、导出数据、清除数据、一致性分析、批处理模式一致性分析的功能。,(8)Source(源代码)菜单,它具有添加/删除源文件、设定代码生成工具、设置外部文件编辑器和全部编译的功能。,(9)Debug(调试)茱单,它主要完成单步运行、断点设置等功能。,(10)Template(模板)菜单,它主要完成图形、颜色、字体、连线等功能的设置。,(11)System(系统)菜单,它具有系统信息、文本浏览器、设置系统环境、设置路径等功能。,(12)Help(帮助)菜单,它用来读帮助文档,同时每个元件均可通过属性中的HELP获得帮助。,4元件选择器工具栏,(1)模型选择工具栏(Mode Selector Toolbar),选择元件(components)(默认选择的),选放置连接点,放置标签(用总线时会用到),放置文本,用于绘制总线,用于放置子电路,用于即时编辑元件参数,(2)配件(Gadgets),终端接口(terminals):有VCC、地、输出、输入等接口,器件引脚:用于绘制各种引脚,仿真图表(graph):用于各种分析,如Noise Analysis,录音机,信号发生器(generators),电压探针:使用仿真图表时要用到,电流探针:使用仿真图表时要用到,虚拟仪表:有示波器等,(3)2D图形(2D Graphics),画各种直线,画各种方框,画各种圆,画各种圆弧,画各种多边形,画各种文本,画符号,画原点等,6、方向工具栏,旋转: 旋转角度只能是90的整数倍。 翻转: 完成水平翻转和垂直翻转。 使用方法:先右键单击元件,再点击(左击)相应的旋转图标。,7、仿真工具栏,运行,单步运行,暂停,停止,5.2.3 绘制原理图,1从元件库中选取元件,(1)单击元件列表之上的“P”按钮 ; (2)按P键(在英文输入法下)。,2放置元件,1)根据对象的类别在工具栏选择相应模式的图标。 2)根据对象的具体类型选择子模式图标。 3)如果对象类型是元件、端点、引脚、图形、符号或标记,从选择器里选择想要的对象的名字。 4)如果对象是有方向的,将会在预览窗口显示出来,可以通过单击旋转和镜像图标调整对象的方向,然后再将其放置到别的编辑区中去。 5)指向编辑窗口并单击放置对象。,3选中对象,用鼠标指针指向对象并右击可以选中该对象。该操作可使选中的对象高亮显示,然后可以对其进行编辑。选中对象时该对象上的所有连线同时被选中。 要选中一组对象,可以通过依次右击每个对象来选中每个对象的方式;也可以通过右键拖出一个选择框的方式,但只有完全位于选择框内的对象才可以被选中。 在空白处右击可以取消所有对象的选择。,4删除对象,用鼠标指向选中的对象并右击可以删除该对象,同时删除该对象的所有连线。也可以选中对象,然后按键盘上的Delete(删除)键删除。,5拖动对象,(1)拖动一个对象:若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。该方式不仅对整个对象有效,而且对对象所属的网格标号也有效。 (2)拖动多个对象:选中多个对象,单击主工具栏块移动图标“”可以移动被选中的所有对象。,6拖动对象标签,许多类型的对象有一个或多个属性标签附着。例如,每个元件有一个reference(参考)标签和一个value(值)标签。单击相应的标签,将其移动到合适位置,可以很容易地通过移动这些标签使电路图看起来更美观。,7调整对象,(1)调整对象大小:子电路(Sub-circuits)、图表、线、框和圆可以调整大小。选中这些对象时,对象周围会出现白色(或黑色)小方块(叫做“手柄”),可以通过拖动这些“手柄”来调整对象的大小。 (2)调整对象的方向:许多类型的对象可以调整方向为0、90、270、360或通过x轴、y轴镜像。当该类型的对象被选中后,旋转和镜像按钮会由蓝色变为红色,此时就可以改变对象的方向。,8编辑对象,许多对象具有图形或文本属性,这些属性可以通过一个对话框进行编辑。,(1)编辑单个对象的步骤,选中对象; 单击对象。,(2)连续编辑多个对象的步骤,选择主模式,再选择“选择模式”工具 ; 依次单击各个对象。,(3)以特定的编辑模式编辑对象的步骤,用鼠标指向对象; 使用键盘Ctrl+E键。,(4)文本脚本的编辑,该操作将启动外部的文本编辑器。如果鼠标指针没有指向任何对象,该命令将对当前的图形进行编辑。通过元件的名称编辑元件的步骤如下: 键入“E“; 在弹出的对话框中输入元件的名称。,9编辑对象标签,元件、端点、线和总线都可以像元件一样编辑,需使用“连线标号模式”工具。 (1)编辑单个对象标签的步骤: 选中对象标签; 单击对象。 (2)连续编辑多个对象标签的步骤: 选择主模式,再选择选择“选择模式”工具; 依次单击各个对象标签。,10复制所有选中的对象,(1)选中需要复制的对象; (2)在主工具栏中单击Copy(复制)工具; (3)把复制的轮廓拖到需要的位置,单击放置复制; (4)重复步骤(3)放置多个复制; (5)右击结束。,11布线,ISIS中没有布线的按钮。 (1)在两个对象间连线 单击第一个对象连接点; 如果要使ISIS自动给出走线路径,则只需单击另一个连接点。 如果要自己设定走线路径,只需在想要拐点处单击标即可。,(2)线路自动路径器,线路自动路径器为用户省去了必须标明每根线的具体路径的麻烦。自动接线功能默认是打开的,但可通过如下两种途径略过该功能。 如果用户只在两个连接点单击,自动接线将选择一个合适的接线路径。但如果已选择了一个连接点,然后单击一个或几个非连接点的位置,ISIS将认为用户在手工定线的路径,这时需要用户单击线的路径的每个角。路径是通过单击另一个连接点来完成的。 自动接线功能可通过使用“工具自动连线(W)”命令来关闭或打开。在用户要在两个连接点间直接定出对角线时,该功能很有用。,(3)重复布线,重复布线完全复制了上一根线的路径。如果上一根线已经是自动重复布线,将仍旧自动复制该路径。另一方面,如果上一根线为手工布线,那么新放置的线将精确跟踪上一根线的路径。,(4)拖线,尽管线一般使用连接和拖动的方法,但也有一些特殊方法可以使用。选中对象后如果拖动线的一个角,该角就随着鼠标指针移动。如果鼠标指针指向一个线段的中间或两端,就会现一个可以拖动的角。,(5)移动线段或线段组,在欲移动的线段周围拖出一个选择框,也可以是一个线段边上的一条线; 单击主工具栏中的移动工具; 在按钮所示的相反方向垂直于线段移动选择框; 单击结束。,5.2.4 Proteus和Keil的联调,1利用Proteus绘制原理图 (1)启动软件:双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7 Professional” “ISIS 7 Professional”,出现启动界面后就进入了Proteus ISIS集成环境。 (2)进入工作界面:Proteus ISIS的工作界面是一种标准的Windows界面。,(3)制作流水灯,1)将所需元器件加入到对象选择器窗口。 2)放置元器件至图形编辑窗口。将选择的元器件放置到图形编器界面中,将各元件连接起来,绘制出原理图。,2利用Keil C51创建工程,(1)软件的打开:双击桌面上的Keil uVision2 图标或者单击屏幕左下方的“开始”“程序”“Keil uVision2”,随后就进入了Keil uVision2 集成环境。 (2)建立一个新工程。单击Project菜单,在弹出的下拉菜单中选中New Project选项 。 (3)选择保存工程文件的路径,输入工程文件的名字,然后点击保存。 (4)选择单片机的型号,可以根据使用的单片机来选择,KeilC51几乎支持所有的52核的单片机。,2利用Keil C51创建工程,(5)新建C文件,新建之后输入源程序,并保存。 (6)添加文件到工程。把刚才新建的tconlsd.c添加到工程。 (7)设置工程属性。右键单击“Target 1”,出现快捷菜单,选中“Options for Target Target 1”即可设置工程属性。 (8)单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,以便在Proteus里加载可执行代码,并单击“Target”选项,更改晶振频率。 (9)编译、链接、生成可执行文件。单击编译图标,如果没有语法错误,将会生成可执行文件。,3连接仿真调试,1)假若Keil C51与Proteus均已正确安装在D:Program Files的目录里,把D:Program FilesLabcenter ElectronicsProteus 6 ProfessionalMODELSVDM51.dll复制到D:Program FileskeilCC51BIN目录中。 (2)用记事本打开D:Program FileskeilCC51TOOLS.INI文件,在C51栏目下加入:TDRV4=BINVDM51.DLL (“Proteus 6 EM 6 EMULATOR“)其中“TDRV4”中的“4”要根据实际情况写,不要和原来的重复即可(步骤1和2只需在初次使用设置),3连接仿真调试,(3)需要设置Keil C的选项:单击“Project菜单/Options for Target”选项或者点击工具栏的“option for target”按钮,弹出窗口,点击“Debug”按钮。 在出现的对话框里在右栏上部的下拉菜单里选中“Proteus 6 EMULATOR”。并且还要点击一下“Use”前面表明选中的小圆点。 再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。,3连接仿真调试,(4)Proteus的设置:进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,此后,便可实现KeilC与Proteus连接调试。,3连接仿真调试,(5)Proteus里加载可执行文件:左键双击AT89C52原理图,将弹出如下图,点击加载可执行文件,3连接仿真调试,(6)KeilC与Proteus连接仿真调试:单击仿真运行开始按钮。,5.3 单片机最小系统,1.复位工作方式 复位操作就是使单片机内部的一些部件恢复到某种预先确定的状态。 复位状态: 除以下SFR外,其余SFR都被硬件自动写入0 口锁存器P0P3: 0FFH 堆栈指针SP: 07H SBUF:不定 内部RAM不受复位操作的影响,但在单片机接通电源时,RAM中的内容不定。,5.3.1 单片机复位电路,SFR复位值,单片机进入复位状态的条件,在内部振荡器运行时,使复位输入端RESET至少保持两个机器周期(24个振荡周期)为高电平,由CPU采样复位信号,启动复位时序,完成复位操作。,2. 上电复位电路,上电复位电路,当VCC接通电源时,即可实现单片机的上电复位,RESET脚必须保持足够时间的高电平以使振荡器起振并持续两个机器周期以上的时间。 上电时VCC的上升时间应小于几十毫秒。振荡器起振时间取决于振荡器频率,10MHz起振时间一般为1ms;1MHz起振时间一般为10ms。 如果器件上电时不能正常复位,那么片内SFR,特别是程序计数器PC可能没有进入初始化状态,使CPU从不定地址开始执行程序,从而影响程序的正确执行。,3. 按钮复位电路,按钮复位电路,5.3.2 单片机最小系统,维持单片机运行的最基本的配置系统,构成单片机最小应用系统。对于8051、8751片内有RAM、EPROM的系统来讲,单片机与晶振电路及开关、电阻、电容等构成的复位电路组成单片机最小应用系统,8 0 5 1单片机最小系统,案例9 用单片机最小系统实现简单交通灯控制,1 . 任务要求 本任务是在单片机最小系统下,由P2、P0口连接12个发光二极管,分别代表四个路口的红、绿、黄灯,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮20秒,南北路口的红灯亮,东西路口方向通车;延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁,每隔1s闪烁1次,闪烁3次后,东西路口红灯亮,而同时南北路口的绿灯亮20秒,南北路口方向开始通车;延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,每隔1s闪烁1次,闪烁3次后,再切换到东西路口的绿灯亮,东西方向通车;之后重复以上过程。,交通灯模拟:,2 . 硬件电路设计,根据本任务的要求,选用AT89S51,配备晶振电路和复位电路,晶振频率为12MHz。为了方便线路连接,P0口的低6位分别接西、北路口的红、黄、绿灯(发光二极管,采用共阳极的连接方式),P2口的低6位分别接东、南路口的红、黄、绿灯。,2 . 硬件电路设计,3. 软件设计,根据本任务要求及设计的硬件电路图,各路口的灯亮的规律与P2、P0口的取值有关系到,其规律如下表所示。,3. 软件设计,本任务涉及两个定时时间,一是每个路口的绿灯亮20s,另一个是黄灯闪烁时间间隔0.5s,显然最容易实现的方法就是利用定时器,可以用定时器0控制路口绿灯亮的时间,用定时器1控制黄灯闪烁的时间间隔,但是两个定时器的定时都不可达到20s或0.5s,所以可以让两个定时器都工作于方式1,定时时间为50ms,引进两个变量time(初值为400)和timey(初值为20),当定时器发出中断时,这两个变量分别减1,直到为0则达到定时时间。 根据以上分析,TMOD应赋值为0x11,两个定时器计数次数为50000。,#include unsigned char time=20*20,timey=10,county=6; unsigned char allr=0x36; /所有路口的灯全红 unsigned char ewg_snr=0x1e; /东西路口绿灯亮,南北路口红灯亮 unsigned char ewy=0x2e; /东西路口黄灯亮, 南北路口红灯亮 unsigned char sng_ewr=0x33; /南北路口绿灯亮,东西路口红灯亮 unsigned char sny=0x35; /南北路口黄灯亮,东西路口红灯亮 sbit P01=P01; sbit P04=P04; sbit P21=P21; sbit P24=P24; bit ewg=1; /刚才是否是东西路口绿灯亮过,主函数,main() unsigned int i; P0=P2=allr; for(i=50000;i0;i-); P0=P2=ewg_snr; TMOD=0x11; /定时器1和定时器0均工作于方式1 TL0=-50000;TH0=-500008;/T1、T0均定时50ms TL1=-50000;TH1=-500008; EA=1;ET0=1;ET1=1; TR0=1; while(1); ,void isr_time0() interrupt 1 /定时器0的中断服务程序 TL0=-50000;TH0=-500008; time-; if(time=0) TR0=0;TR1=1; time=400; if(ewg) P0=ewy;P2=ewy; else P0=sny;P2=sny; ,void isr_time1() interrupt 3 /定时器T1的中断服务函数 TL1=-50000;TH1=-500008; timey-; if(timey=0) timey=10;county-; if(county) if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上市公司员工购车补贴与股权激励结合合同
- 电动汽车充电桩项目投资合作与分红协议
- 建筑工程退款及合同履行协议范本
- 城市建设研学合同书:城市规划与发展趋势研究
- 历史专业考试题及答案
- 维修专业面试题目及答案
- 俄语专业四级试题及答案
- 英语专业知识试题及答案
- 消防安全治理培训课件
- 传送带项目汇报
- 消毒供应室课件
- 成都理工大学工程技术学院《工程地质B》2023-2024学年第二学期期末试卷
- 企业员工音乐培训计划
- 中学七年级综合实践课件
- 2025年房东租房合同模板电子版
- 《法律职业伦理》课件-第二讲 法官职业伦理
- 2024企业管理制度与企业文化融合合同3篇
- 第五讲铸牢中华民族共同体意识-2024年形势与政策
- 医学伦理学全套课件
- 车用驱动电机原理与控制基础(第2版)课件:三相交流绕组及其磁场
- 加油站安全费用提取、使用台账
评论
0/150
提交评论