汇编语言的交通灯

汇编语言的交通灯
汇编语言的交通灯

设计报告

一、设计方法:

1、通过老师上课讲的内容及要求来设计。

2、开始时可跟着老师走从基础使用4094实现倒计时开始一步一

步实现。

3、实现基础部分后我们就可按着自己的思路结合单片机的学习

从而一步一步实现整个功能。

二、设计思路:

1、首先在实现整个功能之前我并不清楚自己要设计的界面应是什么

样子的,我从最基本的开始先学会使用4094实现一位倒计时,然

后使用4094实现两位倒计时,实现了两位倒计时之后基本上就可

以实现四个路口的倒计时显示。

2、完成基本型后就要想办法如何才能实现在线修改参数,且按照新

的参数执行,而且参数用什么来设置等等,通过单片机的学习我

想到了用中断方式的方法来实现,且在中断里来调用子程序来设

置参数,并选用了键盘来设置参数。因为单片机里已学过键盘子

程序,现在再来使用这样的键盘,虽比单片机里学过的4*4键盘

复杂点,但总不会太难了。就这样一步一步按照自己的思路完成。

3、以上实现后,我们也可多加些按键来控制暂停、复位、行人按键

等等,而这些在完成以上功能后再来实现它们就会很容易了。

流程图:

开始

设置一位数倒计时

设置两位数倒计时

设置一个路口红灯参数倒计时显示

设置另一个路口支路绿灯参数倒计时显示

设置十字路口两路红黄绿灯循环倒计时显示

设置十字路口红黄绿LED显示

设置读写键盘、显示子程序

通过调用键盘、显示子程序来赋初值而实现十字路口两路显示

先赋初值实现十字路口两路显示,后使用中断服务子程序调用

键盘、显示子程序来重新赋初值实现十字路口两路显示

使用中断实现设置参数复位功能

通过查询方式实现行人按键绿灯显示功能

总体完善程序及其功能,将其融合实现整个功能

调整完善整个硬件电路图让其美观

结束

三、选择的芯片:

AT89C51、4094、KEYPAD-PHONE、LED-GREEN、LED-RED、LED-YELLOW、TSEG-COM-AN-GRN、3WATT100R、BUTTON 四、硬件设计:

五、软件设计:

1、部分代码:

;30H、34H、35H主干道红、绿、黄灯,33H、31H、32H支干道红、绿、黄灯,修改用外部中断

ORG 0000H

LJMP MAIN

ORG 0003H ;复位中断入口地址

LJMP FW

ORG 0013H ;修改参数中断入口地址

LJMP XG

ORG 0030H

MAIN:MOV 30H,#50

MOV 31H,#30

MOV 32H,#20

MOV 33H,#40

MOV 34H,#32

MOV 35H,#08

LOOP: SETB IT0 ;设置外部中断0的触发方式SETB IT1 ;设置外部中断1的触发方式

SETB EX0 ;开启外部中断0

SETB EX1 ;开启外部中断 1

SETB PX0 ;设置优先级

CLR PX1

SETB EA ;开启总中断

STAR1:MOV 40H,30H

MOV 41H,31H

MOV 42H,32H

MOV 43H,33H

MOV 44H,34H

MOV 45H,35H

;主干道的红与支干道的绿

ZHUHO:CLR P2.7 ;关门,减震作用

MOV 46H,#0F5H ;显示LED亮与灭

MOV A,40H ;显示主干道的红灯参数

LCALL XS

LCALL LP

MOV A,41H ;显示支干道的绿灯参数

LCALL XS

LCALL LOP

SETB P2.7 ;开门,减震作用

LCALL DELAY

DEC 40H ;倒计时

DJNZ 41H,ZHUHO

CLR P2.7

MOV A,40H ;显示主干道的红灯参数

LCALL XS

LCALL LP

MOV A,41H ;显示支干道的绿灯参数

LCALL XS

LCALL LOP

SETB P2.7

LCALL DELAY

;主干道的红与支干道的黄

ZIHU:CLR P2.7

MOV 46H,#0F6H ;显示LED亮与灭

MOV A,42H ;显示主干道的红灯参数

LCALL XS

LCALL LP

MOV A,42H ;显示支干道的黄灯参数

LCALL XS

LCALL LOP

SETB P2.7

LCALL DELAY

JNB P1.7,ZHIHO ;倒计时

DJNZ 42H,ZIHU

CLR P2.7

MOV A,42H ;显示主干道的红灯参数

LCALL XS

LCALL LP

MOV A,42H ;显示支干道的黄灯参数

LCALL XS

SETB P2.7

LCALL DELAY

;支干道的红与主干道的绿

ZHIHO:CLR P2.7

MOV 46H,#0EBH ;显示LED亮与灭

MOV A,43H ;显示支干道的红灯参数

LCALL XS

LCALL LOP

MOV A,44H ;显示主干道的绿灯参数

LCALL XS

LCALL LP

SETB P2.7

LCALL DELAY

DEC 43H

DJNZ 44H,ZHIHO

CLR P2.7

MOV A,43H ;显示支干道的红灯参数

LCALL XS

LCALL LOP

MOV A,44H ;显示主干道的绿灯参数

LCALL XS

LCALL LP

SETB P2.7

LCALL DELAY

;支干道的红与主干道的黄

ZUHU:CLR P2.7

MOV 46H,#0DBH ;显示LED亮与灭

MOV A,45H ;显示支干道的红灯参数

LCALL XS

MOV A,45H ;显示主干道的黄灯参数LCALL XS

LCALL LP

SETB P2.7

LCALL DELAY

DJNZ 45H,ZUHU

CLR P2.7

MOV A,45H ;显示支干道的红灯参数LCALL XS

LCALL LOP

MOV A,45H ;显示主干道的黄灯参数LCALL XS

LCALL LP

SETB P2.7

LCALL DELAY

LJMP STAR1

XG:JB P3.3,EXIT ;修改参数中断服务子程序MOV A,#00H ;使数码管都显示00

MOV 46H,#0FFH ;使LED都灭

LCALL XS

LCALL LP

LCALL LOP

SJMP FCZ

FW:CLR EA ;复位中断服务子程序MOV A,#88

MOV 46H,#0FFH

LCALL XS

LCALL LP

LCALL LOP

;产生中断后对参数重新赋初值

FCZ:MOV P0,#0F9H

MOV P2,#0BFH

LCALL LKEY1 ;设置第一个参数

MOV 30H,20H

MOV P0,#0A4H

MOV P2,#0BFH

LCALL LKEY1 ;设置第二个参数

MOV 31H,20H

MOV P0,#0B0H

MOV P2,#0BFH

LCALL LKEY1 ;设置第三个参数

MOV 33H,20H

MOV P0,#99H

MOV P2,#0BFH

LCALL LKEY1 ;设置第四个参数

MOV 34H,20H

MOV A,30H

SUBB A,31H

MOV 32H,A

MOV A,33H

SUBB A,34H

MOV 35H,A

MOV 40H,30H

MOV 41H,31H

MOV 42H,32H

MOV 43H,33H

MOV 44H,34H

MOV 45H,35H

MOV P2,#0FFH

EXIT:RETI ;中断返回

DELAY:MOV R3,#10 ;延时0.5s子程序

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB TR0

LOOP1:JBC TF0,LOOP2

SJMP LOOP1

LOOP2:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R3,LOOP1

CLR TR0

RET

XS:MOV DPTR,#TAB ;显示子程序

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV R5,A

MOV A,B

MOVC A,@A+DPTR

MOV R6,A

RET

TAB: DB 0C0H,0F9H,0A4H,0B0H

DB 99H,92H,82H,0F8H

DB 80H,90H,88H,83H

DB 0C6H,0A1H,86H,8EH

LP:CLR C ;4094主干道显示两位倒计时子程序MOV R0,#08H

RLC A

MOV P3.6,C

SETB P3.7

DJNZ R0,LP1

MOV A,R5

MOV R0,#08H

LP2:CLR P3.7

RLC A

MOV P3.6,C

SETB P3.7

DJNZ R0,LP2

RET

LOP:CLR C ;4094支干道显示两位数倒计时子程序MOV R0,#08H

MOV A,R6

LOP1:CLR P3.5

RLC A

MOV P3.4,C

SETB P3.5

DJNZ R0,LOP1

MOV A,R5

MOV R0,#08H

LOP2:CLR P3.5

RLC A

MOV P3.4,C

SETB P3.5

DJNZ R0,LOP2

XP2:MOV R0,#08H ;四个路口红绿灯LED显示器子程序

RLC A

MOV P3.0,C

SETB P3.1

DJNZ R0,LP5

RET

;键盘扫描子程序

KEY16:LCALL KS ; 读键盘

JZ KEY16 ; 判是否有键按下,A=0表示无键按下,再读

LCALL T10MS ; 延时

LCALL KS ; 有键按下的话,再读一次,消除抖动

JZ KEY16 ; 判是否有键按下,A=0表示无键按下,再读

MOV R2,#0EFH ; 列扫描初值,11101111

MOV R4,#00H ; 列扫描计数单元置"0"

; 下面进行列扫描(0~3)、读行值(01、04、07、0FF)

LK1:MOV P1,R2 ; P1.4=0, 扫描第一列

JB P1.0,ONE ; 判是否第0行健按下,否判下一行

MOV A,#01H ; 是,行值"01"

LJMP KP

ONE:JB P1.1,TWO ; 判是否第1行健按下,否判下一行MOV A,#04H ;是,行值"04"

LJMP KP

TWO:JB P1.2,THREE ; 判是否第2行健按下,否判下一行MOV A,#07H ; 是,行值"07"

LJMP KP

THREE:JB P1.3,NEXT ; 判是否第3行健按下,否则扫描下一列

MOV A,#0FFH ; 是,行值"0ff"

LJMP KP

NEXT:INC R4 ; 列计数加 1

MOV A,R2 ; 行扫描完,列移位,继续

JNB ACC.6,KND ; 判是否列扫描结束

RL A ; 左移,扫下一列

MOV R2,A

AJMP LK1 ; 转下一列读键

KND:AJMP KEY16

KP:ADD A,R4 ; 生成键值,A=行基值+列值(0~3)PUSH ACC

LK:LCALL KS

JNZ LK

POP ACC

SETB P1.7

RET

T10MS:MOV R7,#10H ;T10ms延时子程序

TS1:MOV R6,#0FFH

TS2:NOP

NOP

DJNZ R6,TS2

DJNZ R7,TS1

RET

KS:MOV P1,#0FH ; 判有无键按下子程序

MOV A,P1

CPL A

ANL A,#0FH

RET

LKEY1:MOV A,#0

LCALL KEY16 ; 读第一个数

CJNE A,#0AH,LKEY2 ; 键值>9则重读键

LKEY2:JNC LKEY1

MOV R0,A ; 保存第一个数

SWAP A

LCALL XSP0P2 ; 显示第一个数

LKEY3:MOV A,#0

LCALL KEY16 ; 读第二个数

CJNE A,#0AH,LKEY4 ; 键值>9(非数字键)则重读键SJMP LKEY3

SJMP LKEY3

LKEY4:JNC LKEY3

MOV R1,A ; 第二个数存入B中

MOV A,R0 ; 取第一个数

SWAP A ; 换到高位

ADD A,R1 ; 第二个数(低位)与第一个数(高位)合并

MOV 20H,A

PUSH A

MOV A,R0

MOV B,#10

MUL AB

ADD A,R1

MOV 20H,A

POP A

LCALL XSP0P2 ; 显示两个数

JB P1.3,$ ;判确定键有没按下

RET

XSP0P2:PUSH B ;显示子程序

MOV DPTR,#XSTAB ; 取数据表首地址

MOV B,A ; 保存原数据

ANL A,#0FH ; 截取低4位数

MOVC A,@A+DPTR ; 取显示字型码

MOV P0,A ; 送P0显示

MOV A,B ; 取原数据

ANL A,#0F0H ; 截取高4位

SWAP A ; 半字节交换

MOVC A,@A+DPTR ; 取显示段码

MOV P2,A ; 送P2显示

MOV A,B

POP B

RET

XSTAB: DB 0C0H,0F9H,0A4H,0B0H

DB 99H,92H,82H,0F8H

DB 80H,90H,88H,83H

DB 0C6H,0A1H,86H,8EH

END

六、时间安排:

1、要完成这个项目我们只有两个周的时间,第一个周我们完成了基本的用4094实现两位数的倒计时,并实现基本的十字路口,两路显示,能够实现最基本的运行。

2、第二个周前两天我在基本型的基础上实现在线修改参数,和行人按钮以及其

他一些控制按钮,实现后在接下来的几天我就美化界面,修改程序以及写用户使用说明书和设计报告。

七、调试过程:

1、首先用89c51和4094以及数码管连接电路,并用单片机编程,加载进去看是

否能实现一位或两位倒计时,不行的就一步一步的调试,从最基本的开始一步一步调试直到实现预定的功能,中间若有不明白的现象就请教老师。

2、在实现了两位倒计时之后,因为是同样的性质,所以就可实现基本的十字路

口两路显示了,然后调试,不行的先检查软件设计方面,再看硬件连接有没问题,

最后实现。

3、实现基本型之后,可在界面里加按键、控制按钮等等,连接硬件图,然后编程,使用中断,调用修改并用键盘写参数并显示出来的子程序,然后赋初值返回主程序运行,而这所有的过程都是经过一步一步的调试和运行而实现的。

八、硬件清单:

九、设计流程与硬件分配:

开始运行

十字路口,两路倒计时显示

行人按键,主绿支红,行人通过

按修改参数键修改红绿灯参数并按’*’确定键

若修改参数时设错参数,可按复位键而重新设置参数

按照新的参数开始运行

结束

P0口、P2口接两个显示修改参数数码管;

P1口中的P1.0-P1.6接3*4按键中的七个引脚;

P1.7 接行人按键;

P2.7接所有4094上的OE接口;

P3.0、P3.1接显示LED的4094上的CLK、D;

P3.7、P3.6接主干道上的四个4094上的CLK、D;

P3.5、P3.4接支干道上的四个4094上的CLK、D;

P3.3、P3.2分别接修改参数键和复位键。

十、设计中的不足:

我觉得设计中还是有不足的:如:在修改参数时,在设置一个参数可按确定键,但若在设置参数时想退位删去刚设定的参数时,却没有退位键,而只有复位键,按了它就只能重新开始设置参数了。

汇编语言 快速入门

“哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣……;二、汇编直接与硬件打交道,如果你想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在干什么、究竟怎么干?一个真正的硬件发烧友,不懂这些可不行。三、如今玩DOS的多是“高手”,如能像吾一样混入(我不是高手)“高手”内部,不仅可以从“高手”朋友那儿套些黑客级“机密”,还可以自诩“高手”尽情享受强烈的虚荣感--#$%&“醒醒!” 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指

设计题目 交通灯控制器设计

广西科技大学 单片机技术课程设计报告 课程:单片机技术 题目: 学院: 专业: 姓名: 学号: 指导老师: 完成时间: 成绩评定 设计报告得分S1:(百分制) 平时考勤得分S2:(百分制) 问题回答得分S3:(百分制) 总成绩:(S1×0.6+S2×0.2+ S3×0.2) 指导教师签字年月日

摘要 随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。 交通灯控制器设计主要功能是用单片机控制LED灯模拟指示。模拟东西南北方向的十字路口交通灯信号控制情况。以89C52单片机为核心芯片,采用中断方式实现控制。本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。和复位电路控制电路等组成,较好的模拟了交通路面的控制。 关键词:交通灯单片机数码管

目录 1.概述 (1) 2系统总体方案及硬件设计 (2) 2.1设计内容 (2) 2.2 设计要求 (2) 2.3 总体设计思想 (2) 2.4 设计参考 (2) 2.5 知识点准备 (2) 3各模块设计 (3) 3.1设计项目简介 (3) 3.2总体设计 (3) 3.3硬件设计 (3) 3.4软件设计 (9) 4软件仿真 (12) 5课程设计体会 (13) 参考文献 (14) 附录一程序清单 (15) 附录二系统原理图 (21)

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

汇编语言知识大全

第一章基础知识: 一.机器码:1.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。

4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。 一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要注意位数对应,否则会报错 二.字:1. 1个字==2个字节。 2. 在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b

模拟交通灯 毕业设计

毕业设计 题目模拟交通灯 系别电气工程系 专业电气自动化技术 班级电气0801班 姓名 学号 指导教师 日期 2010年12月

设计任务书 设计题目: 模拟交通灯 设计要求: 1.用单片机组成模拟交通灯系统,设计硬件电路及相应软件。 2.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为:其中一个方向是绿灯、黄灯、红灯,另一个方向是红灯、绿灯、黄灯。 3.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间,其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。 4.当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。 设计进度要求: 第一周:确定题目,查阅有关资料; 第二周:查阅资料,收集资料; 第三周:列出设计思路; 第四周:硬件电路的设计; 第五周:软件程序的设计; 第六周:软件程序的仿真与调试; 第七周:打印毕业论文; 第八周:毕业答辩 指导教师(签名):

摘要 设计以单片机为核心部件的模拟交通灯,利用74LS244作为断码驱动器,74LS07作为位码驱动,LED七段数码管作为计时显示用,用发光二极管指示交通的通行,用按键进行紧急事件的发生,使两个方向都亮红灯,绿灯亮通行,红灯亮停止通行。 本设计利用定时器进行定时,使定时器工作于方式一定时50ms,配合软件计数器,调用中断程序使定时器定时20次,达到定时1S的目的,同时调用显示程序,显示到计时的时间,用单片机Intel89S51作为核心部件,8路74LS244总线驱动器作为字形驱动芯片和6路驱动74LS07位选码作为中心器件来设计交通灯控制器,实现了交通灯的控制,显示时间直接通过89S51的P0、P1口输出;交通灯信号通过P3口输出;本交通灯系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。 关键词:单片机,交通灯,位码,段码,显示

汇编语言交通灯

设计报告 一、设计方法: 1、通过老师上课讲的内容及要求来设计。 2、开始时可跟着老师走从基础使用4094实现倒计时开始一步一 步实现。 3、实现基础部分后我们就可按着自己的思路结合单片机的学习 从而一步一步实现整个功能。 二、设计思路: 1、首先在实现整个功能之前我并不清楚自己要设计的界面应是什么 样子的,我从最基本的开始先学会使用4094实现一位倒计时,然 后使用4094实现两位倒计时,实现了两位倒计时之后基本上就可 以实现四个路口的倒计时显示。 2、完成基本型后就要想办法如何才能实现在线修改参数,且按照新 的参数执行,而且参数用什么来设置等等,通过单片机的学习我 想到了用中断方式的方法来实现,且在中断里来调用子程序来设 置参数,并选用了键盘来设置参数。因为单片机里已学过键盘子 程序,现在再来使用这样的键盘,虽比单片机里学过的4*4键盘 复杂点,但总不会太难了。就这样一步一步按照自己的思路完成。 3、以上实现后,我们也可多加些按键来控制暂停、复位、行人按键 等等,而这些在完成以上功能后再来实现它们就会很容易了。 流程图:

三、选择的芯片: AT89C51、4094、KEYPAD-PHONE、LED-GREEN、LED-RED、LED-YELLOW、TSEG-COM-AN-GRN、3WATT100R、BUTTON 四、硬件设计:

五、软件设计: 1、部分代码: ;30H、34H、35H主干道红、绿、黄灯,33H、31H、32H支干道红、绿、黄灯,修改用外部中断 ORG 0000H LJMP MAIN ORG 0003H ;复位中断入口地址 LJMP FW ORG 0013H ;修改参数中断入口地址 LJMP XG ORG 0030H MAIN:MOV 30H,#50 MOV 31H,#30

模拟交通灯课程设计

《单片机微机原理及应用》 题目:模拟交通灯的设计 专业:测控技术与仪器 班级: 姓名: 姓名: 姓名: 姓名: 指导老师: 2015年1月10日

目录 1、设计任务 (3) 2、模拟交通灯控制系统工作原理 (4) 2.1 模拟交通灯控制系统的工作原理 (4) 3、设计基本要求和步骤 (5) 3.1 基本要求 (5) 3.2 设计思路 (5) 3.2 设计步骤 (5) 4、硬件和软件设计 (7) 4.1 交通灯控制系统硬件框图 (7) 4.2 硬件电路图 (9) 4.3 程序流程图 (10) 5、心得体会 (13) 6、附录 (14) 5.1 汇编语言源程序 (14) 5.2 模拟交通灯仿真效果图 (18)

1、设计任务:模拟交通灯的设计 1.1、模拟交通灯控制系统的总体方案设计 本设计研究的是基于AT89C51单片机的交通灯智能控制系统的设计原理及阐述。主控系统采用AT89C51单片机作为控制器,控制通行倒计时及直行、行人的通行,占用端口少,耗电也最小。系统电源采用独立的+5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定。该设计精简并优化了电路。结合实际情况,显示界面采用点阵LED数码管动态扫描的方法,满足了倒计时的时间显示输出和状态灯提示信息输出的要求,减少系统的复杂度。

2、交通灯控制系统工作原理 2.1、交通灯控制系统工作原理 本系统运用单片机对交通灯控制系统实施控制,通过直接控制信号灯的状态变化,指挥交通的具体运行,运用了LED数码管显示倒计时以提醒行驶者,更添加了盲人提示音电路,方便视力障碍群体通行,更具人性化。在此基础上,加入了特种车辆自动通行控制模块和车流量检测电路为系统采集数据,经单片机进行具体处理,及时调整通行方向。由此,本设计系统以单片机为控制核心,构成最小系统,根据特种车辆自动通行控制模块、车辆检测模块和按键设置模块等产生输入,由信号灯状态模块,LED倒计时模块输出。系统进入工作状态,LED数码管实时显示数据倒计时,执行交通灯状态显示控制,在此过程中若有控制信号和实时车流量检测信号,可对异常状态进行实时控制,随时调用中断,达到修正通行时间满足不同时间不同路况的需求。

城市路口交通灯设计.

城市路口交通灯设计 摘要 随着社会经济的发展,城市交通问题越来越引起人们的关注,人、车、路三者关系得和谐已成为交通治理部分必需要解决的主要问题之一,本交通灯设计系统用于对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。 本设计主要为实现一款带时间自主修改功能的多功能交通灯。本文选定了采用单片机技术实现交通灯功能,本设计应用AT89C51芯片作为核心,CD4511芯片作为显示芯片驱动,详细介绍了Atmel公司的AT89C51单片机的性能和特点,以及CD4511原理和特性,指出了交通灯设计系统的思路和所需考虑的问题,详细描述了交通灯系统的硬件、软件设计以及系统仿真调试过程等。该设计的优点是电路简单、性能可靠、实时性好、时间精度高,操作简单,可广泛应用于各个交通要道。 关键词:单片机,交通灯,控制器

The Design of Traffic Light in the City Abstrac t:This design is mainly for realizing a paragraph of time the independent modify functions with multi-function traffic. This paper adopts single-chip microcomputer selected technologies to realize this design, lights function AT89C51 chip as the core, CD4511 chip as display chip drive, introduces in detail the AT89C51 Atmel company performance and characteristics of CD4511 principle and characteristics, and lights design system, points out the idea and the problems needed to consider the advantages of this method is reliable in performance, simple circuit, good real-time, high precision time, simple operation. And widely used in various hubs. When entering adjustment function can add, subtract function operation, in order to achieve timing function, thus can undertake traffic lights countdown system. When the timing Settings, system through the AT89C51 control things, sn of traffic light real-time status. Eight LED digital tube will show countdown time, time display format for: ten - bytes; And have real-time display current countdown time functions Keyword: a single-chip microcomputer, the lights, controller, design, realization

6、汇编学习从入门到精通(荐书)

汇编学习从入门到精通Step By Step 2007年12月15日星期六00:34 信息来源:https://www.360docs.net/doc/157152915.html,/hkbyest/archive/2007/07/22/1702065.aspx Cracker,一个充满诱惑的词。别误会,我这里说的是软件破解,想做骇客的一边去,这年头没人说骇客,都是“黑客”了,嘎嘎~ 公元1999年的炎热夏季,我捧起我哥留在家的清华黄皮本《IBM-PC汇编语言程序设计》,苦读。一个星期后我那脆弱的小心灵如玻璃般碎裂了,为了弥补伤痛我哭爹求妈弄了8k大洋配了台当时算是主流的PC,要知道那是64M内存!8.4G硬盘啊!还有传说中的Celeon 300A CPU。不过很可惜的是在当时那32k小猫当道的时代,没有宽带网络,没有软件,没有资料,没有论坛,理所当然我对伟大的计算机科学体系的第一步探索就此夭折,此时陪伴我的是那些盗版光盘中的游戏,把CRACK_XXX文件从光盘复制到硬盘成了时常的工作,偶尔看到光盘中的nfo 文件,心里也闪过一丝对破解的憧憬。 上了大学后有网可用了,慢慢地接触到了一些黑客入侵的知识,想当黑客是每一个充满好奇的小青年的神圣愿望,整天看这看那,偷偷改了下别人的网页就欢喜得好像第一次偷到鸡的黄鼠狼。 大一开设的汇编教材就是那不知版了多少次的《IBM-PC汇编语言程序设计》,凭着之前的那星期苦读,考试混了个80分。可惜当时头脑发热,大学60分万岁思想无疑更为主流,现在想想真是可惜了宝贵的学习时间。 不知不觉快毕业了,这时手头上的《黑客防线》,《黑客X档案》积了一大摞,整天注来注去的也厌烦了,校园网上的肉鸡一打一打更不知道拿来干什么。这时兴趣自然转向了crack,看着杂志上天书般的汇编代码,望望手头还算崭新的汇编课本,叹了口气,重新学那已经忘光了的汇编语言吧。咬牙再咬牙,看完寻址方式那章后我还是认输,不认不行啊,头快裂了,第三次努力终告失败。虽然此时也可以爆破一些简单的软件,虽然也知道搞破解不需要很多的汇编知识,但我还是固执地希望能学好这门基础中的基础课程。 毕业了,进入社会了,找工作,上班,换工作成了主流旋律,每天精疲力尽的哪有时间呢?在最初的中国移动到考公务员再到深圳再到家里希望的金融机构,一系列的曲折失败等待耗光了我的热情,我失业了,赋闲在家无所事事,唯一陪伴我的是那些杂志,课本,以及过时的第二台电脑。我不想工作,我对找工作有一种恐惧,我靠酒精麻醉自己,颓废一段日子后也觉得生活太过无聊了,努力看书考了个CCNA想出去,结果还是被现实的就业环境所打败。三年时间,一无所获。 再之后来到女朋友处陪伴她度过刚毕业踏入社会工作的适应时期,这段时间随便找了个电脑技术工作,每月赚那么个几百块做生活费。不过这半年让我收获比较大的就是时间充裕,接触到了不少新东西,我下定决心要把汇编学好,这时我在网上看到了别人推荐的王爽《汇编语言》,没抱什么希望在当当网购了人生中的第一次物,19块6毛,我记得很清楚,呵呵。 废话终于完了,感谢各位能看到这里,下面进入正题吧。

Windows X86-64位汇编语言入门

Windows X86-64位汇编语言入门 Windows X64汇编入门(1) 最近断断续续接触了些64位汇编的知识,这里小结一下,一是阶段学习的回顾,二是希望对64位汇编新手有所帮助。我也是刚接触这方面知识,文中肯定有错误之处,大家多指正。 文章的标题包含了本文的四方面主要内容: (1)Windows:本文是在windows环境下的汇编程序设计,调试环境为Windows Vista 64位版,调用的均为windows API。 (2)X64:本文讨论的是x64汇编,这里的x64表示AMD64和Intel的EM64T,而不包括IA64。至于三者间的区别,可自行搜索。 (3)汇编:顾名思义,本文讨论的编程语言是汇编,其它高级语言的64位编程均不属于讨论范畴。 (4)入门:既是入门,便不会很全。其一,文中有很多知识仅仅点到为止,更深入的学习留待日后努力。其二,便于类似我这样刚接触x64汇编的新手入门。 本文所有代码的调试环境:Windows Vista x64,Intel Core 2 Duo。 1. 建立开发环境 1.1 编译器的选择 对应于不同的x64汇编工具,开发环境也有所不同。最普遍的要算微软的MASM,在x64环境中,相应的编译器已经更名为ml64.exe,随Visual Studio 2005一起发布。因此,如果你是微软的忠实fans,直接安装VS2005既可。运行时,只需打开相应的64位命令行窗口(图1),便可以用ml64进行编译了。

第二个推荐的编译器是GoASM,共包含三个文件:GoASM编译器、GoLINK链接器和GoRC 资源编译器,且自带了Include目录。它的最大好外是小,不用为了学习64位汇编安装几个G 的VS。因此,本文的代码就在GoASM下编译。 第三个Yasm,因为不熟,所以不再赘述,感兴趣的朋友自行测试吧。 不同的编译器,语法会有一定差别,这在下面再说。 1.2 IDE的选择 搜遍了Internet也没有找到支持asm64的IDE,甚至连个Editor都没有。因此,最简单的方法是自行修改EditPlus的masm语法文件,这也是我采用的方法,至少可以得到语法高亮。当然,如果你懒得动手,那就用notepad吧。 没有IDE,每次编译时都要手动输入不少参数和选项,做个批处理就行了。 1.3 硬件与操作系统 硬件要求就是64位的CPU。操作系统也必须是64位的,如果在64位的CPU上安装了

汇编语言交通灯控制系统设计

交通灯控制系统 一、设计要求 1.东西方向车辆放行60秒钟。即东西方向的绿灯和南北方向的红灯同时点亮1分钟; 2.1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从60减为0。 3.东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。即东西方向的红灯和南北方向的绿灯同时点亮20秒钟; 4.南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。 5.南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。如此循环重复。 二、设计目的 ⒈了解交通灯管理的基本工作原理 ⒉熟悉8259A中断控制器的工作原理和应用编程 ⒊熟悉8255A并行接口的各种工作方式和应用 ⒋熟悉8254计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法 ⒌掌握多位LED显示问题的解决 三、程序设计流程图 主程序流程图,如下图所示。 装入计数初值

四、总体设计和电路图 Ⅰ.芯片选择及端口选择 1.用实验系统8255A实现对信号灯的控制(所用端口自定);2位数码显示用8255A实现控制。 2. 用实验系统8254的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的1分钟、5秒钟和20秒的定时。实验系统8254的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接 +5V;定时采用软硬件相结合的方式实现。 ⒊用实验系统的发光二极管模拟红绿灯。 注:8259A的端口地址为:218H、219H 8255A的端口地址为:端口A-200H、端口B-201H、端口C-202H、控制端 口-203H

汇编语言入门

汇编语言入门教程 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。 内存是电脑运作中的关键部分,也是电脑在工作中储存信息的地方。内存组织有许多可存放

交通灯毕业设计 摘要

中文摘要 传统的交通灯控制系统大多是由数字电路来实现的,交通灯控制系统稳定性可靠性与抗干扰能力较差,随着社会经济的发展,数字电路交通灯越来越不能满足日益增长的交通压力,因此必须寻求一种新的方法来取代这种复杂而工作不稳定的控制系统。 随着科技的发展,可编程控制器(PLC )的功能日益完善,可编程控制器已作为一种以微电脑技术为核心的自动控制装置,已被广泛应用于机械制造、冶金、化工、能源等各种行业。它可靠性高、功能完善、抗干扰能力强,具有结构简单、重量轻等优点,是一种用于工业环境及过程控制的数字运算操作的电子系统。采用PLC控制交通信号灯,主要是考虑其具有对使用环境适应性强的特性,同时其内部定时器资源十分丰富,可对目前普遍使用的“渐进式”信号灯进行精确控制,特别是方便地实现多岔路口的控制。由于PLC本身具有通信联网功能,可将同一条道路上的信号灯组成一局域网进行统一调度管理,可缩短车辆通行等候时间,实现科学化管理。 在实际应用中,采用PLC控制城市交通信号灯,能根据不同的路况要求,随时修改控制程序,以改变各信号灯的工作时间和工作状况。与继电器或逻辑电路控制系统相比,PLC控制系统具有更高的可靠性、灵活性和经济实用性。本论文就是运用PLC原理来实现对十字路口的交通灯的控制,介绍了基于PLC 在交通系统的运用,系统介绍了PLC的基本原理。

关键词:交通灯控制系统;可编程控制器(PLC);十字路口;科学化管理;稳 定性;可靠性 ABSTRACT The traditional traffic control system is mostly by digital circuit, traffic control system stability reliability and anti-interference ability is bad, With the development of society and economy, and digital circuit traffic lights to meet the growing traffic pressure, therefore, must seek a new method to replace the complex and working stability of the control system. With the development of science and technology, the programmable logic controller (PLC) function, the programmable controller has, as a kind of microcomputer technology as the core in automatic control equipment, has been widely used in mechanical manufacturing, metallurgy, chemical, energy, etc. It has high reliability, complete functions, strong anti-jamming capability, with simple structure, light weight, it is a kind of process control for industrial environment and the number of operating system. PLC control traffic lights, mainly is for use with the consideration of the characteristics of strong adaptability to environment, and its internal timer resources are very rich, but for now the widespread use of "progressive" light accurately control, particularly easily realize more control of the cross-roads. Because of PLC network communication function, has the same path can be composed of a

智能交通灯的毕业设计

太原科技大学 毕业设计(论文)任务书化学与生物工程学院机电一体化专业10级3班设计人(作者):徐今 同组人:徐今吉武师海斌韩志刚 王煜贺斌兰晓江邢超斌一.毕业设计(论文)题目: 智能交通灯 二.原始数据(材料): (1)单片机LED灯显示设计 (2)用实验室模块演示 (3)软件protus仿真演示 (4)亚龙实验平台

目录 摘要------------------------------------1 AT89C51单片机简介----------------------2 一、设计目的---------------------------4 二、设计目标---------------------------4 三、设计任务---------------------------5 四、设计内容---------------------------6 (1)指示灯燃亮的状态----------------------6(2)设计并绘制硬件电路图。-------------7(3)设计程序流程图---------------------8(4)编程-------------------------------9 五、交通管理方案----------------------10 六、结束语----------------------------11 七、参考文献--------------------------13

摘要 交通在人们生活中占有重要地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故,有明显的效果。近年来,随着科技的飞速发展,单片机的应用不断深入,同时带动传统控制检测技术日益更新和自动控制的单片机应用系统中。单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本系统采用单片机AT89C51为中心器件,来设计交通灯控制器系统实用性强,操作简单,扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示。本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、复位电路等其它部分组成。较好的模拟实现了十字路口可能出现的交通情况。 关键字:电子线路、AT89C51、交通灯

交通灯汇编语言课程设计资料

课程设计 题目名称交通灯系统设计 课程名称单片机 学院信息学院 专业电子信息科学与技术班级 姓名 学号 指导教师 2012年12月

一、设计内容及要求 假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20秒),东西路口的绿灯,闪烁若干次后(3秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20秒),南北路口的绿灯闪烁若干次后(3秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一 段时间后(2秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。 扩展部分:用LED数码管显示时间、紧急情况下全部红灯时间暂停、行人闯红灯报警、 车流量计数 设计要求有具体的硬件电路和软件实现,方案切实可行,使用简单方便。 二、设计原始资料 单片机实验十八--交通灯控制实验;为我们开始完成相应的单片机设计提供 了思路。利用系统提供的双色LED显示电路。 单片机实验九--串行静态数码显示实验使用四只74LS164组成四位静态数码管显示电路,在数码管上滚动显示“0”到“F”十六进制字符。 三、设计完成后提交的文件和图表 1.计算说明书部分 说明具体实现过程,方案等,相关计算等 2.图纸部分: 相关电路原理图、软件流程图、系统框图和源程序等 五、主要参考资料 李念强王玉泰张鲁张羽.《单片机原理及应用》.机械工业出版社 童诗白华成英 .《模拟电子技术基础》(第四版).高等教育出版社 目录 一、设计任务与要求 (1)

汇编语言基础知识

汇编语言基础知识 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有 效地应用汇编语言对其编程,因此,本章对硬件系统结构的问题进行部分探讨,首先介绍了计算机的基本结构、Intel 公司微处理器的发展、计算机的语言以及汇编语言的特点,在此基础上重点介绍寄存器、内存组织等汇编语言所涉及到的基本知识。 1.1 微型计算机概述 微型计算机由中央处理器(Central Processing Unit ,CPU )、存储器、输入输出接口电路和总线构成。CPU 如同微型计算机的心脏,它的性能决定了整个微型计算机的各项关键指标。存储器包括随机存储器(Random Access Memory ,RAM )和只读存储器(Read Only Memory ,ROM )。输入输出接口电路用来连接外部设备和微型计算机。总线为CPU 和其他部件之间提供数据、地址和控制信息的传输通道。如图1.1所示为微型计算机的基本结构。 外部设备存储器输入输出接口电路中央处理器 CPU 地址总线 数据总线 控制总线 图1.1 微型计算机基本结构 特别要提到的是微型计算机的总线结构,它使系统中各功能部件之间的相互关系变 为各个部件面向总线的单一关系。一个部件只要符合总线结构标准, 就可以连接到采用这种总线结构的系统中,使系统功能得到扩展。 数据总线用来在CPU 与内存或其他部件之间进行数据传送。它是双向的,数据总线 的位宽决定了CPU 和外界的数据传送速度,8位数据总线一次可传送一个8位二进制数据(即一个字节),16位数据总线一次可传送两个字节。在微型计算机中,数据的含义是广义的,数据总线上传送的不一定是真正的数据,而可能是指令代码、状态量或控制量。 地址总线专门用来传送地址信息,它是单向的,地址总线的位数决定了 CPU 可以直接寻址的内存范围。如 CPU 的地址总线的宽度为N ,则CPU 最多可以寻找2N 个内存单 元。

相关文档
最新文档