最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

微机原理 交通灯实验报告

来源:动视网 责编:小OO 时间:2025-09-24 05:24:25
文档

微机原理 交通灯实验报告

南通大学计算机科学与技术学院微机原理课程设计报告书课题名(硬件)交通灯控制系统课题名(软件)_______计算器________________班级____建筑电气______________姓名___________________学号___________指导教师日期2011.6.11~2012.6.21一、硬件设计题一、设计目的1.利用8253定时,8255设计电路,实现十字路口交通灯模拟控制。2.实现能自动控制和手动应急控制。(◆)3.实现能随时可以调整自动模式的绿灯和红灯时间。(☆)
推荐度:
导读南通大学计算机科学与技术学院微机原理课程设计报告书课题名(硬件)交通灯控制系统课题名(软件)_______计算器________________班级____建筑电气______________姓名___________________学号___________指导教师日期2011.6.11~2012.6.21一、硬件设计题一、设计目的1.利用8253定时,8255设计电路,实现十字路口交通灯模拟控制。2.实现能自动控制和手动应急控制。(◆)3.实现能随时可以调整自动模式的绿灯和红灯时间。(☆)
南通大学计算机科学与技术学院

微机原理课程设计

报 告 书

课 题 名(硬件)       交通灯控制系统        

        课 题 名(软件)_______计算器________________

班    级____建筑电气______________

                  姓    名___________________

学    号 ___________  

指导教师                 

日    期   2011.6.11 ~ 2012.6.21    

一、硬件设计题

一、设计目的

1.利用8253定时, 8255设计电路,实现十字路口交通灯模拟控制。

2.实现能自动控制和手动应急控制。(◆)

3.实现能随时可以调整自动模式的绿灯和红灯时间。(☆)

二、设计原理与硬件图

8255的PA端口输出数码管计时显示数值所对应的段码。

8255的PB,PC端口控制发光二极管,即红、黄、绿的亮灭。

8253的3个计时器同时工作,计时器0和1工作于方式3,计时器2工作于方式0,计时器0输入1MHZ时钟信号,输出1KHZ到计时器1的时钟端,计时器输出1HZ到计时器2,利用分频作用实现。

三、程序流程图

四、程序代码

DATA SEGMENT

 BUF1  DB  09H,11H,21H,12H,0CH,4AH,H,49H

 BUF2  DB  0C5H,0A3H,95H,93H,95H,13H,15H,23H,0H

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'

  DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

START: MOV AX,DATA

 AL,10010000B

 DX,AL

 AL,0

 DX,AL

 DX,AL

AAA1:  MOV CH,[BX]

AAA4:  MOV DX,A_PORT

 AL,00000001B

 AL,00000000B

 AL,00001001B

 DX,AL

 AL,10010000B

 DX,AL

AAA7:  MOV DX,A_PORT

 AL,00000010B

 AL,00000000B

 AL,0

AAA5:  DEC CL

AAA6:  MOV DX,A_PORT

 AL,00000010B

 AL,00000010B

SHOW1 PROC

 DX,AL

SHOW1 ENDP

SHOW2 PROC

 AL,CH

 DX,AL

       RET    

SHOW2 ENDP

PLAY PROC

 AL,00110111B

 DX,AL

 DX,AL

 AL,AH

 DX,AL

 AL,01110111B

 DX,AL

 DX,AL

 AL,AH

 DX,AL

PLAY ENDP

DELAY PROC

 0F5FH

LOOP1: LOOP LOOP1

DELAY ENDP

CODE ENDS

  END START

五、程序及硬件系统调试情况

二、软件程序设计题

一、设计目的

编辑程序可以实现键盘输入数据与运算符,进行“加减乘除”运算。(提示:先输入数据与运算符,保存,再按照运算符选择对应的子程序;输入的数据是用字符表示的,需要转换;要有良好的界面(提示信息))(字符逐行提示型 ▲)(字符表达式交互型 ◆)(图形交互型 ★☆)

二、设计原理与硬件图

观察ASCII字符码表,可发现“+、-、*”等的ASCII码由28H到2FH,而“0~9”ASCII码由30H到39H,因此只需观察是否在28H~39H这个范围内,可区分输入表达式是否合法。其流程图为:

要进行数值ASCII码到补码,首先就得判断输入字符是数值还是符号。根据“+、-、*”等的ASCII码由28H到2FH,而“0~9”ASCII码由30H到39H,因此只需观察是否在28H~39H这个范围内,只需比较是否小于等于2FH(或小于30H)即可判断是否为符号,否则为数值。

把一个ASCII码数值转换为二进制补码形式,只需对其减去30H即可实现。但如果输入为多位,列如123,那么计算获得的是31H、32H、33H三字节,分别减去30H,只获得1、2、3三数而已。实际可利用加权方法合并几个数:123=1*100+2*10+3*1.流程图为:

三、程序流程图

四、程序代码

STACK  SEGMENT  STACK

   DB   200 DUP(0)

STACK  ENDS

DATA SEGMENT

   OPS     DB ?

   OPD     DB ?

   OPER    DB ?

   TIT     DB' _________________________________ ' ,0DH,0AH

 代表回车 

           DB'|             + - *  /            |' ,0DH,0AH  ;0AH代表换行

           DB'|          Y,y:continue           |' ,0DH,0AH

           DB'|           N,n:  quit            |' ,0DH,0AH

   Tip1    DB 'Input the first  operator (0---9):$',0DH,0AH

   Tip2    DB 'Please input the oper (+,- ,*,/) :$',0DH,0AH

   Error   DB 'Error! Plese input the oper again:$',0DH,0AH

   Tip3    DB 'Input the second operator (0---9):$',0DH,0AH

Result DB '--------------->the result is:$',0DH,0AH

   Quit    DB 'Choose repeat or quit? (Y/y/N/n) :$',0DH,0AH

   Tsave   DB ?

CODE SEGMENT

     MOV   AX,DATA                    ;初始化 DS:DX

     MOV   DS,AX

Remain:  

     MOV   BL,0                       ;Oper(恢复)初始状态

     MOV   OPS,BL

     MOV   OPER,BL

     MOV   OPD,BL

     LEA   SI,OPS                     ;OPS的偏移地址送给SI

     LEA   DI,OPD                     ;OPD的偏移地址送给DI

     LEA   DX,TIT                     

     MOV   AH,9  

     INT   21H 

     CALL  Input1                     ;调用输入第一个操作数

     CALL  Operat                     ;调用输入操作符

     CALL  Input2                      ;调用输入第二个操作数

     CALL  Calculate                  ;调用计算方法

     CALL  StrQuit                    ;调用判断程序再次执行

     MOV   AH,1

     INT   21H

     CMP   AL,'Y'

     JE    Remain 

     CMP   AL,'y'                     ;选择Y返回Remain继续执行

     JE    Remain 

     CMP   AL,'N'

     JE    EXIT                       

     CMP   AL,'n'

     JE    EXIT   

EXIT:MOV   AH,4CH                     ;若不是Y则结束

     INT   21H    

;输入操作数子程序---------------------------------------------------------

Input1 PROC NEAR

     LEA   DX,Tip1                    ;输入第一个操作数提示----------

     MOV   AH,9  

     INT   21H                        ;十进制输入提示

BCDin1:  

     MOV   AH,1

     INT   21H

     CMP   AL,0DH

     JE    EndBCDin1                  ;等于回车则返回继续输入运算符

     CMP   AL,30H                          

JB BCDin1 ; <0时转exitinD 退出

     CMP   AL,39H

JA BCDin1 ; >9时转exitinD 退出

     AND   AL,0FH                     ;清除高位

     MOV   [SI],AL

     INC   SI

 LOOP  BCDin1

     CALL  Enter                      ;回车换行

Input1  ENDP

Input2 PROC NEAR

     LEA   DX,Tip3                   ;输入第二个操作数提示----------

     MOV   AH,9  

     INT   21H                       ;十进制输入提示

BCDin2:  

     MOV   AH,1

     INT   21H

     CMP   AL,0DH

     JE    EndBCDin2                  ;等于回车则返回继续输入运算符

     CMP   AL,30H                          

JB BCDin1 ; <0时转exitinD 退出

     CMP   AL,39H

JA BCDin1 ; >9时转exitinD 退出

     AND   AL,0FH                     ;清除高位

     MOV   [SI],AL

     INC   SI

 LOOP  BCDin2

     CALL  Enter                      ;回车换行

Input2  ENDP

;输入操作符子程序-------------------------------------------------------

Operat  PROC NEAR

ReOperat:

     LEA   DX,Tip2                 ;输入操作符提示

     MOV   AH,9  

     INT   21H               

     MOV   AH,1

     INT   21H

     CMP   AL,'+'

     JE    OperSave               ;若为"+则存在oper

     CMP   AL,'-'

     JE    OperSave

     CMP   AL,'*'

     JE    OperSave

     CMP   AL,'/'

     JE    OperSave

     JMP   OperError

OperError:

     LEA   DX,Error                ;输入操作符的错误提示

     MOV   AH,9  

     INT   21H

     JMP   ReOperat

OperSave: 

     MOV   OPER,AL

Operat ENDP

;计算方法子程序-----------------------------------------------------

Calculate PROC NEAR

     CALL  Enter                      ;回车换行

     MOV   BL,OPER

     CMP   BL,'+'

     JZ    ADCProc                   ;若为加法,则转到adcProc 

     CMP   BL,'-'

     JZ    SUBProc

     CMP   BL,'*'

     JZ    MULProc

     CMP   BL,'/'

     JZ    DIVProc

ADCProc:

     CALL  StrResult                 ;加法

     MOV   AL,OPS

     ADC   AL,OPD

     JMP   endCalculate 

S减法

     MOV   AL,OPS

     SUB   AL,OPD

     JMP   endCalculate

M乘法

     MOV   AL,OPD

     MUL   OPS

     JMP   endCalculate

D除法

     MOV   AH,0

     MOV   AL,OPS

     DIV   OPD

     JMP   endCalculate

endCalculate:

Calculate  ENDP

     MOV   Tsave,AL

     MOV   AH,0

     MOV   AL,Tsave

     MOV   BL,100

     DIV   BL                        ;除以100

     CALL  Output                    ;显示百位数

     MOV   AL,AH

     MOV   AH,0

     MOV   BL,10

     DIV   BL                        ;除以10

     CALL  Output                    ;显示十位数

     MOV   AL,AH

     CALL  Output                    ;显示个位数

StrResult  PROC NEAR 

     LEA   DX,Result

     MOV   AH,9  

     INT   21H

     RET   

StrResult  ENDP

O十进制输出

     ADD   AL,30H                 ;将AL中的十进制数变成ASCII码

     MOV   DL,AL

     MOV   AH,2

     INT   21H

     POP   AX

Output ENDP

;回车换行子程序--------------------------------------------------

     MOV   DL,0AH

     MOV   AH,2

     INT   21H

     MOV   DL,0DH

     MOV   AH,2

     INT   21H    

Enter  ENDP

;判断程序再次执行子程序-----------------------------------------------

StrQuit  PROC NEAR  

     CALL  Enter                      ;回车换行

     LEA   DX,Quit  

     MOV   AH,9  

     INT   21H

CODE ENDS

     END   START

五、程序及硬件系统调试情况

用计算器实现了2*4=8计算,选择y则继续,选择n则停止

实验总体设计总结与体会

通过本次实验设计,我们熟悉了芯片8253,8255功能和应用,学会了用汇编语言设计实现具体功能程序的方法。在设计中,我们充分学会利用书籍、网络等各种渠道,来了解芯片功能,实现方法。本次实验我们分组进行小组准备,我们先进行流程图设计,然后进行程序的编写和硬件图的设计。每个人负责一部分进行实现,然后进行整体连接和仿真效果的检验。虽然刚开始出现各种错误,但最终集思广益问题迎刃而解。这次实验不但使我们体会到设计的过程和方法,而且也使我们了解到了团队协作的重要性。

文档

微机原理 交通灯实验报告

南通大学计算机科学与技术学院微机原理课程设计报告书课题名(硬件)交通灯控制系统课题名(软件)_______计算器________________班级____建筑电气______________姓名___________________学号___________指导教师日期2011.6.11~2012.6.21一、硬件设计题一、设计目的1.利用8253定时,8255设计电路,实现十字路口交通灯模拟控制。2.实现能自动控制和手动应急控制。(◆)3.实现能随时可以调整自动模式的绿灯和红灯时间。(☆)
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top