微机原理与汇编语言课程设计-多功能定时器设计

微机原理与汇编语言课程设计-多功能定时器设计
微机原理与汇编语言课程设计-多功能定时器设计

中北大学

微机原理与汇编语言

课程设计任务书

2009/2010 学年第二学期

学院:电子与计算机科学技术学院专业:计算机科学技术

学生姓名:学号:

设计题目:多功能定时器设计

起迄日期: 2010.6.12---2010.6.25设计地点:

指导教师:

下达任务书日期: 2010 年 6 月 12 日

微机原理与汇编语言课程设计任务书

中北大学

微机原理与汇编语言课程设计说明书

学生姓名:孔艳萍学号:0706034448

学院: 电子计算机科学技术

专业: 计算机科学技术

题目: 多功能定时器

成绩

指导教师潘广贞雷海卫乔道迹

2010 年 6月24日

1. 引言

通过微机原理与汇编语言课程设计,使学生根据所学的微机原理与汇编语言知识,进一步学习掌握汇编语言程序设计知识,充分理解计算机内部的管理、接口内容以及系统功能调用。能针对一个简单的控制或汇编语言程序设计项目,做出分析,设计其硬件、软件,达到预期的控制目的。

2.需求分析

“时钟功能处理程序”是运行于Windows 系统下的应用软件,主要用于实现时钟显示时钟调整以及倒计时功能。

此程序为用户提供了一个简单的人机对话界面。在屏幕上显示系统当前的时间以及操作方法,它可以接受用户对系统系统时间颜色声音的常规性修改,并在确认修改后实现定时闹钟,画面颜色更改等功能。

3.总体设计

下面从程序的整体流程、各个功能模块以及数据结构几个方面进行总体设计。本程序的设计基本是参照《微型计算机原理与接口技术》教程里“汇编语言程序设计”一章中的DOS功能调用,中断程序的代码,然后设计出本程序各子程序的代码。

关于时钟信息的更新,由于试了好久都无法常驻内存,所以这里只好用最原始的办法——延时与循环。延时的子程序是参照其他教程中发声程序的延时程序,利用in al,61h获得与cpu频率无关的延时。

4. 详细设计

文件读写主要是在键盘上输入信息,在界面上实现定时器对声音,颜色,倒计时的控制。

Press a to change the time 12-24 ! 按a键可实现时间12制到24制的转换Press c to edit the alarm time ! 按c键可实现对闹钟的设定。

Press Q ~ t to change color !按W=T可实现界面颜色的更改。

Press b to reset!按b键可以重置时间。

Press x to edit the final countdown!按x键可实现倒计时功能。

Press ESC to exit ESC键为推出此界面。

程序流程图

5. 软件测试

图1 总界面

图2 字母a12制到24制小时转换

图3 字母T实现界面颜色的转换

6. 程序清单

guangbiao MACRO num1,num2 ;;带参数的宏

mov bh,0h ;;本宏用于置光标的位置

mov ah,2h

mov dh,num1

mov dl,num2

int 10h

endm

dispcolor macro color

push ax

push bx

push dx

push cx

mov ah,02h ;;设置调色板和边框

mov dh,0

mov dl,0

mov bh,0

int 10h

mov ah,9 ;;读取调色板和边框在当前光标处按指定属性显示字符

mov bl,color

mov cx,2000

mov al,' '

int 10h

guangbiao 0,0

call showmenu

pop cx

pop dx

pop bx

pop ax

endm

.model small

.stack

.data

.code

.startup

jmp install

;大海音乐(默认)

freq dw 196,220

dw 262,262,262,262,262,220,196

dw 262,262,262,262,294,262,220,262 dw 294,294,294,294,294,262,220

dw 294,294,294,294,330,294,330,392 dw 440,440,392,440,392,330

dw 294,294,330,294,262,220,196,220 dw 262,262,262,262,262,220

dw 262,196,220

dw 440,440,392,440,524,440

dw 392,330,294,262,220,196,220

dw 262,262,262,262,294,262

dw 262,330,392

dw 440,440,440,440,524,440

dw 392,392,392,440,392,330,294

dw 262,262,262,262,294

dw 330,330,294

dw 262,262,262,262,524,440

dw 392,392,392,440,392,330,392

dw 440,524,524,440,392

dw 392,330,392

dw 440,440,440,440,524,440

dw 392,392,392,440,392,330,294

dw 262,262,262,262,392

dw 330,330,294

dw 262,262,262,262,294,330

dw 392,392,330,392,330,392

dw 440

dw 9,9,196,660,294,294,262

dw 262,-1

;音乐频率表

time dw 400,400

dw 400,200,400,400,800,400,400

dw 400,200,400,200,200,800,400,400 dw 400,200,400,400,800,400,400

dw 400,200,400,200,200,800,400,400 dw 400,800,400,800,400,400

dw 400,200,200,400,400,800,400,400 dw 400,200,400,400,800,800

dw 1600,800,800

dw 400,800,400,800,400,400

dw 400,400,400,400,800,400,400

dw 400,800,400,800,400,200

dw 2400,400,400

dw 400,800,400,800,400,400

dw 400,800,200,200,800,400,400

dw 400,800,400,800,800

dw 2400,400,400

dw 400,800,400,800,400,400

dw 400,800,200,200,800,400,400

dw 800,400,800,400,200

dw 2400,400,400

dw 400,800,400,800,400,400

dw 400,800,200,200,800,400,400

dw 400,800,400,800,800

dw 2400,400,400

dw 400,800,400,800,400,400

dw 400,800,400,800,400,400

dw 3200

dw 800,400,400,400,400,400,400

dw 4000

;延时表

freq0 dw 262,294,330,262

dw 330,349,392

dw 392,440,392,349,330,262

dw 294,196,262

time0 dw 1600,800,800,1600

dw 400,400,400,400,800,800

dw 800,800,1600

;两只老虎音乐

menu db ' ***************ELECTRONIC CLOCK*************** ',0ah,0dh db ' 1.Press a to change the time 12-24 ! ',0ah,0dh

db ' ',0ah,0dh

db ' 2.Press c to edit the alarm time ! (press s to

stop)',0ah,0dh

db ' ',0ah,0dh

db ' 3.Press x to edit the final countdown !(press s to stop) ',0ah,0dh db ' ',0ah,0dh

db ' 4.Press Q ~ t to change color !',0ah,0dh

db ' ',0ah,0dh

db ' 5.Press b to reset',0ah,0dh

db ' ',0ah,0dh

db ' 6.Press ESC to exit',0ah,0dh,'$'

tc db 'Please input the alarmtime (hh:mm:ss):','$'

tc_buff db 40

db ?

db 40 dup (?)

temp_h db ?

temp_m db ?

temp_s db ?

tx db 'Please input the final countdown time(00-99):','$'

tx_buff db 40

db ?

db 40 dup (?)

txtemp db ?

msg db 'Current time is: '

time_h db ?,?

db ':'

time_m db ?,?

db ':'

time_s db ?,?,0,0

hours db ?

seconds db 0

flag1 db 0

flag2 db 0

flag3 db 0

oldint1c dd ?

newint1c proc

push ax

push bx

push cx

push dx

push si

push di

push es

cmp flag1,01h

jnz acd

call showtxtemp

acd: mov ax,0200h ;获取系统时间,ch→hours cl→minutes DH→seconds,均为BCD码格式

int 1ah

mov hours,ch ;把小时送到hours中,以防变换12和24进制后出现异常

cmp flag2,01h

jnz notchg

cmp ch,12h

jc notchg

mov al,ch

pushf

sub al,12h

das

popf

mov ch,al

notchg: cmp flag1,01h ;判断是否开始倒计时

jnz notdo

cmp dh,seconds

jz notdo

mov seconds,dh

cmp txtemp,0h

jz notdo

mov al,txtemp

pushf

sub al,01h

das

mov txtemp,al

popf

notdo: mov al,ch

lea si,time_h

call bcd

mov al,cl

lea si,time_m

call bcd

lea si,time_s

call bcd

mov ax,0b800h ;显存地址采用直接写显存的方法输出字符

mov es,ax ;es:di 指向显存地址

mov di,160*12+108d

lea si,msg

disp: mov al,cs:[si]

inc si

or al,al

jz disp0 ;cs=ds

cld

stosb

inc di ;将cs:si指向的一个字节传送到es:di

jmp disp

disp0: pop es

pop di

pop si

pop dx

pop cx

pop bx

pop ax

jmp cs:oldint1c ;新1CH中断的事情做完后调用原来的1CH中断iret ;中断返回

bcd: mov ah,al

shr ah,1

shr ah,1

shr ah,1

shr ah,1

and al,0fh

add ax,'00'

xchg ah,al

mov cs:[si],ax

ret

newint1c endp ;中断结束

showtxtemp proc

push ax

push es

push di

push si

mov ax,0b800h

mov es,ax ;es:di 指向显存地址

mov di,160*10+130d

mov ah,al

shr ah,1

shr ah,1

shr ah,1

shr ah,1

and al,0fh

add ax,'00'

push ax

mov al,ah

stosb

inc di

pop ax

stosb

pop si

pop di

pop es

pop ax

ret

showtxtemp endp

edittime_c proc

push ax

push bx

push cx

push dx

pushf

mov ah,0ch ;清除键盘缓冲区

int 21h

guangbiao 14,0

mov dx,offset tc ;显示设置闹铃时间的格式提示

mov ah,09h

int 21h

mov dx,offset tc_buff

mov ah,0ah

int 21h

guangbiao 15,0

add dx,0h

lea bx,tc_buff

inc bx

inc bx

mov dh,[bx]

sub dh,30h ;将输入数值0~9的ASCⅡ码转化成0~9的数字inc bx

sub dl,30h

mov cl,10h

mov al,dh

mul cl

add al,dl

mov ch,al

mov temp_h,al ;小时存放于temp_h变量中

inc bx

inc bx

mov dh,[bx]

sub dh,30h

inc bx

mov dl,[bx]

sub dl,30h

mov cl,10h

mov al,dh

mul cl

add al,dl

mov ch,al

mov temp_m,al ;分钟存放于temp_m变量中

inc bx

inc bx

mov dh,[bx]

sub dh,30h

inc bx

mov dl,[bx]

sub dl,30h

mov cl,10h

mov al,dh

mul cl

add al,dl

mov ch,al

mov temp_s,al ;秒钟存放于temp_s变量中

popf

pop dx

pop cx

pop bx

pop ax

jmp comp

ret

edittime_c endp

edittime_x proc

push ax

push bx

push cx

push dx

pushf

mov ah,0ch ;清除键盘缓冲区

int 21h

guangbiao 15,0

mov dx,offset tx ;显示设置倒计时闹铃时间

mov ah,09h

int 21h

mov dx,offset tx_buff

mov ah,0ah

int 21h

guangbiao 16,0

add dx,0h

lea bx,tx_buff

inc bx

inc bx

mov dh,[bx]

sub dh,30h ;将输入数值0~9的ASCⅡ码转化成0~9的数字inc bx

mov dl,[bx]

sub dl,30h

mov cl,10h

mov al,dh

mul cl

add al,dl

mov ch,al

mov txtemp,al ;小时存放于txtemp变量中

mov flag1,01h ;设置标志位,以判断是否要求倒计时

popf

pop dx

pop cx

pop bx

pop ax

ret

edittime_x endp

changecolor proc

push ax

in al,60h ;60h:键盘输入数据缓冲区

cmp al,10h

jne i1

dispcolor 41h ;Q显示41h(红底蓝字)i1: cmp al,11h

jne i2

dispcolor 20h ;W显示20h(绿底黑字)i2: cmp al,12h

jne i3

dispcolor 02h ;E显示02h(黑底绿字)i3: cmp al,13h

jne i4

dispcolor 40h ;R显示40h(红底黑字)i4: cmp al,14h

jne i5

dispcolor 0f0h ;T显示0f0h(白底黑字)i5: pop ax

ret

changecolor endp

showmenu proc

push ax

push dx

mov ah,09h

mov dx,offset menu

int 21h

pop dx

pop ax

ret

showmenu endp

yinyue proc ;音乐子程序

push cs

pop ds

cmp flag3,01h

jnz l0

mov si,offset freq0

mov di,offset time0

jmp l1

l0: mov si,offset freq

mov di,offset time

l1: mov cx,[si]

cmp cx,-1

jz return

mov bx,[di]

call gensound

add si,2

add di,2

in al,60h

cmp al,1fh

jz return

jmp l1

return: mov flag1,0h

mov flag3,0h

jmp f0 ;闹铃音乐结束返回主界面

yinyue endp

gensound proc near

push dx

mov al,0b6h ;计数器选择:计数器2;数据读/写格式:16 位计数先读写高字节,后读写低字节

;工作方式:工作方式3;数制选择:二进制

out 43h,al ;43H可编程中断计时器,控制字寄存器(模式设置端口,写入方式控制字)

mov dx,08h

mov ax,3208h ;设置输出频率537096Hz(DX:AX)

div cx ;控制实际输出频率ax=537096Hz/cx

out 42h,al ;先写入低 8位

mov al,ah

out 42h,al ;后写入高 8位(参数据读/写格式及计数器选择) in al,61h ;取得设备控制寄存器开关量

mov ah,al ;暂存以下次恢复

or al,3 ;D0~D1=11接通扬声器

out 61h,al ;设置设备控制寄存器开关量

l2: push dx

push ax

mov dx,8h

mov ax,0f05h

s1: sub ax,1

sbb dx,0

jnz s1

pop ax

pop dx

dec bx

jnz l2

mov al,ah

out 61h,al

pop dx

ret

gensound endp

check_c proc

push ax

push bx

push cx

push dx

push si

mov ax,0200h

int 1ah

mov ch,hours

cmp ch,temp_h

jnz cf

cmp cl,temp_m

jnz cf

cmp dh,temp_s

jnz cf

call yinyue

cf: pop si

pop dx

pop cx

pop bx

pop ax

ret

check_c endp

check_x proc

cmp flag1,01h

jnz xf

cmp txtemp,00h

jnz xf

call yinyue

xf: ret

check_x endp

install:push cs

pop ds

mov ax,351ch ;获取中断向量ES:BX指向中断向量 int 21h

mov word ptr oldint1c,bx

mov word ptr oldint1c+2,es

lea dx,newint1c

mov ax,251ch ;设置中断向量 DS:DX指向中断向量

int 21h

dispcolor 0f0h

guangbiao 14,0

comp: call changecolor

call check_c

call check_x

f0: in al,60h

cmp al,2eh

jnz f1

call edittime_c

f1: cmp al,2dh

jnz f2

call edittime_x

f2: cmp al,1eh

jnz f3

xor flag2,01h ;设置标志位,以判断是否要求变换12进制和24进制f3: cmp al,30h ;重置

jnz f4

dispcolor 0f0h

mov flag1,0h

mov flag2,0h

mov flag3,0h

guangbiao 14,0

f4: cmp al,01h ;按 ESC键退出

jnz f5

jmp quit

f5: cmp al,20h

jnz f6

xor flag3,01h

mov ah,0ch ;清除键盘缓冲区

int 21h

f6: jmp comp

quit: .exit 0

end

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

多功能定时器课程设计

摘要 在日常生活照,555定时器的应用非常广泛,我们常常用到定时控制。在早期运用的是模拟电路设计的,它的准确性和精度都不是很理想。然而现在基本上都是运用数字技术。定时器可以控制一些常用电器,也可以构成复杂的工业过程控制系统。它的功能强大,体积小且灵活,配以适当的芯片可以实现许多功能。随着电子技术的飞速发展,家用电器逐渐增多,不同的设备需要实现不同的功能,需要自己的控制器,设计十分不便。根据这种情况,本设计设计了一个多功能定时器,可以对许多电器进行定时。这种具有智能化的产品有效的减轻了人们的劳动,带人们走进智能化的时代,为家庭数字化的实现提供了可能。 关键词:555定时器;多功能;电器

目录 1方案论证 (1) 1.1方案的比较环节 (1) 1.2实验方案 (1) 2原理及技术指标 (2) 2.1实验原理 (2) 2.2实验技术指标 (2) 3单元电路设计及参数计算 (3) 3.1单元电路设计 (3) 3.1.1控制电路 (3) 3.1.2可控脉冲发生电路 (3) 3.1.3延时控制电路 (5) 3.1.4电源电路 (6) 3.2实验的连接与处理 (7) 3.2.1各部件实现功能 (7) 3.2.2实验处理 (8) 4电路图 (9) 4.1电路图 (9) 5设计小结 (10) 5.1个人感悟 (10) 5.2遇到问题及解决途径 (10) 参考文献 (11) 附录 (12)

1方案论证 1.1 方案的比较环节 方案一:通过51单片机进行编程设计一个电路系统 方案二:采用555定时器组成的多谐振荡器产生时钟脉冲。。 方案三:采用晶振产生时钟脉冲。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定、精确的单频振荡。 比较分析:三种方案相比较,方案一需要进行编程,而我们无法在短时间内编写好完整的程序,可实现性不强。方案二:555定时器芯片是一种广泛应用的中规模集成电路,只要外围配以几个适当的阻容元件,就可以构成无稳态触发器、单稳态触发器以及双稳态触发器等应用电路,以此为基础可设计各种实用的电路形式。而方案三的晶振的作用是为系统提供基本的时钟信号,但采用晶振需要较多的元器件,并且电路图比较麻烦,而且也不能达到锻炼思考能力、电路分析的目的。 因此,通过比较实用性,合理性,选择方案二。 1.2 实验方案 电源电路采用桥式整流电路从220VAC到5VDC的整流,可控脉冲发生器采用555多谐振荡器产生秒脉冲,延时电路由6级74LS160芯片组成前两级为秒脉冲触发,不参与判断,后四级为分钟脉冲触发,用74LS160控制置位端的A,B,C,D门一个脉冲开关控制此计数器的触发连接74LS21,可通过选通来确定所需要的输出位,当满足条件就会输出一个信号通过继电器的闭合控制用电器开关。

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

【报告】汇编语言程序设计报告

【关键字】报告 汇编语言程序设计报告 计算机学院 2011/6/7 题目要求 分支程序设计: 1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。 子程序设计: 2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。 循环程序设计: 3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。 DOS功能调用: 4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。 5、编写一个生成ASCII码表的程序,并显示在屏幕上。 6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年, 则在屏幕上显示“Y”,否则显示“N”。 7、显示杨辉三角形。要求: (1)从键盘接收正整数n; (2)屏幕显示杨辉三角形,显示n行信息; 编程思路: 1. 在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。 利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错,值存入SCORE中,将SCORE的高位分别与9,8,7,6相比, 跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A. 2. 在数据段设置ADDRESS存放数据偏移量和COUNT计数器 利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。 3. 在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a 则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。 4. 堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2, CX出栈,加入外循环,输出下一行信息。 5. 初始化时设置行列数,第一个字符的ASCII值,设置两层循环,首先CX入栈保护输出行数,外层循环控制输出行数,内循环输出列个数对应的字符数,将要输入的字符存入DL,每输出完一次DL+1,SI值即列数给CX,当CX=0时,输出回车换行,CX出栈,加入外循环准备下

微机原理与汇编语言课程设计报告

西北师范大学 计算机科学与工程学院 微机原理与汇编语言 课程设计报告 设计题目:中断控制点阵显示与音乐模块姓名: 学号: 专业班级: 系所中心: 指导老师: 起讫时间: 设计地点: 2016年8月20日

摘要 使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。 【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号

目录 摘要 (2) 第一章课程设计 (2) 1.1 目的和任务 (2) 1.2 设计环境、设备与器材 (2) 第二章设计内容和方案 (3) 2.1 设计内容 (3) 2.2 设计方案 (3) 第三章课程设计相关原理简述 (3) 第四章设计实现 (4) 4.1 系统设计框架结构 (4) 4.2 系统硬件设计 (4) 4.3 系统软件设计 (6) 4.4 程序流程图 (6) 4.5 核心数据结构 (8) 4.6 关键代码片段分析 (10) 第五章设计验证 (10) 5.1 验证步骤及结果 (10) 5.2 数据分析 (10) 5.3 遇到的问题及解决 (11) 5.4 需要讨论的其它问题 (11) 5.5 结论 (11) 第六章设计总结 (12) 第七章本课程教学建议 (13) 第八章参考文献 (13) 第九章附录:源代码 (13) 第一章课程设计 1.1 目的和任务 使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

数字逻辑课程设计(定时器)

一.内容摘要: 定时器的设计: 设计一个0~60分钟之内的定时器,定时开始的时候红指示灯亮,结束的时候绿指示亮,可以随意以分钟为单位,在六十分钟的范围内设定定时时间,随着定时的开始,显示器开始显示时间,即依次显示出0,1,2,3,4….直到定时结束,当定时结束的时候进行手动清零。首先设计一个秒脉冲发生器,一个计数电路,一个比较电路,然后对电路进行输出。当开始定时之前手动对要定时的时间进行预置数,然后运用秒脉冲发生器输入脉冲,用计数器对脉冲的个数进行计数,把编码器的数据与脉冲的个数通过数值比较器进行比较,最后按照要求进行红绿等输出表示定时的状态是正在进行定时,或者是已经定时结束,在定时的过程中显示定时的时间。 二.方案的论证与选择: 方案1 例如设计一个六十分钟的定时器,就需要六十进制的分钟计数器。设计秒脉冲发生器,当计数器完成六十分钟的记数时,就手动清零。需要设定其他的时间时, 只需将计数器的进制改变一下就行。这个方案只适用于特定的定时器,设定的时间 不变。如果本课设用此方案,就需要设计从1——60进制的计数器,工程量太大。 方案2, 设计一个定时器,可以在0~60分之间一分钟为单位任意可调,定时开始的时候红灯亮,定时结束的时候绿灯亮,定时结束之后手动清零,满足设计的要求,故本次课程设计中采用的是这种设计方案。

三.总设计思想框图: 总体的完整电路图: 就是将各个单元电路用导线连接起来,然后进行仿真处理,开始进行定时的时候红指示灯亮。图中所示的是定时为16分钟的定时仿真结果,完整的电路图。

2.5 V 图2 四.单元电路的设计与参数的计算 1.秒脉冲发生器的选择: (1)采用石英晶体的多谐振荡器,在RC环形振荡器电路中,接入RC可以获得较小 的频率,而且通过RC的调节可以调节频率,用于对频率稳定性要求比较高的电路,

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

课程设计-单片机定时器的设计

摘要 单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU 随机存储器RAM、只读存储器ROM、多种I/O 口和间断系统、定时器/计时器等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完竣的计较机系统。单片机具有特点具有良好的性能价格比;低电压、低功耗;集成度高、体积小、可靠性高;控制成果强等优点。 计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。中断需要解决两个主要问题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程序。 关键词:单片机,中断,延时

目录 1.设计目的 (1) 2.设计任务的内容和要求 (1) 3.设计原理 (1) 4.程序说明 (3) 5.心得体会 (6)

定时器试验 1.设计目的 (1)熟练运用汇编语言编程,并且掌握键盘查表来运行相应的功能 (2)熟悉启东硬件仿真系统,熟练应用该系统调试软件 (3)熟悉单片机应用系统的组成,并能运用程序控制外部流水灯 2.设计任务的内容和要求 (1)初始化定时器,使之采用定时器0,方式2,定时100us时间 (2)通过设置中断,产生总时间为1秒 (3)1秒时间到,控制发光二极管点亮 3.设计原理 在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。 MCS-51单片机由两个可编程定时/计数器(以下简称T/C)。T0,T1 T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。T0,T1是2 个16位寄存器。加1到满溢出产生中断 T0(TH0,TL0);8CH,8AH地址不连续 T1(TH1,TL1);8DH,8BH 都具有定时或者计数功能。 图一 图一有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。C/T=0表示定时,C/T=1表示计数。 当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。 如果主频12M,机器周期为1us,每1us定时寄存器完成1次加1操作。一旦振荡周期确定,机

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

单片机课程设计篮球计时器

单片机课程设计篮 球计时器

绪论 篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,规则还要求进攻方在24秒内有一次投篮动作,否则视为违例。以下为一个篮球比赛计时器,该计时器采用按键操作、数码管显示,非常实用。此计时器也可作为其它球类比赛的计时器。 本课程设计介绍了一个基于单片机的篮球比赛计时器硬件设计,包括STC89C51, 2个八段共阳数码管显示、上电复位电路、时钟发生电路等基本模块的设计。其功能土要有:一场篮球比赛共分四节,每节12分:每次进攻为24秒,计时器的显示均为倒计时方式,24秒计时用两位数码管显示;所有的计时都要具有暂停、继续、复位;当球员的持球时间超过24秒时,24秒倒计时减为零且有蜂鸣器报警提示。本次课程设计是采用单片机C语言实现倒计时24秒篮球比赛计时器。

1系统工作原理 1.1 功能说明 随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用模电和数电知识设计的电子产品成为社会生活中不可缺少的一部分。在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就犯规了。 大多数篮球计时器的主控芯片为AT89C51,采用12MHz晶振,P0.0-P0.7作数码显示端。24秒计时开始,A3为24秒复位开启键(投篮或交换控球时按下此键);A4为24秒计时停止键(有违例时按下此键); A5为24秒计时启动键;A6为总复位键。而此次我们设计的是1个简易篮球比赛计时器。 最简单的篮球球计时器是24秒倒计时计时器。也就是本次课程设计的课题。24秒篮球计时器要求设置外部操作开关,控制计数器的直接复位、启动和暂停,而且计时电路递减计时,每隔1秒钟,计时器减1,当计时器减0时,显示器上显示00,同时发出蜂鸣器报警信号。 1.2基本原理 24秒计时器的总体参考方案框图如图1所示,它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

《汇编语言程序设计》学习心得自主学习报告.doc

自主学习报告书 题目:学习汇编语言程序设计报告学习课程:《汇编语言程序设计》姓名: 专业: 学号: 福建工程学院国脉信息学院教务处制 二○一二年六月

学习汇编语言程序设计报告书 由于实际工作中对汇编语言程序设计应用较多,在业余时间我自主学习了北京大学出版社出版的《汇编语言程序设计》一书。这一本书介绍了80x86汇编语言程序设计的方法和技术,共分为两个部分:第一部分介绍80x86cpu的编程结构,汇编语言程序的格式和伪指令,80x86cpu的寻址方式和指令系统;第二部分深入讨论分支程序、循环程序、子程序基本程序设计方法,以及以中断为主的i/o程序设计,其中包括宏指令、多模块连接技术、汇编语言与高级语言的混合编程、dos和bios提供的常用中断调用,以及文件系统等内容。 通过本书,我深入的掌握了汇编语言的编程方法、思路和技巧,并对计算机的底层编程有一定认识;还对计算机底层运行程序的机制及计算机的工作原理有了深入的了解。 在学汇编的过程中,最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与计算机内部的结构联系应该联系很密切,而且我在学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言也

是由一个一个的函数组成的。没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素 汇编程序给人感觉最烦的就是好多程序的结果不能直接通过运行EXE文件显示出来,而更多的是经过DEBUG单步调试才能看到其内在变化,看是否正确。汇编程序不像其他的高级语言一样需要编译器,而是直接的就能在记事本上编写,然后进行汇编和连接就可以了。学习汇编调试,关键就是要掌握DEBUG的运用。汇编程序把汇编语言翻译成机器语言的过程称为汇编。是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 1.显示彩色菱形 2.显示系统当前时间 专业 班级 学号 姓名 指导教师 年月日

课程设计任务书 课程名称汇编语言程序设计 课题 1.显示彩色菱形 2.显示系统当前时间专业班级 学生姓名 学号 指导老师 审批 任务书下达日期年月日 任务完成日期年月日

一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能 够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 (1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9 名评委,每个评委给分范围为 0~100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。 (2) 、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30 字的 grade 数组中,各数据的格式为: 学号,成绩 1,成绩 2,?,成绩 5 然后根据 grade 中的学生成绩,把学生名次填入rank 数据组中,并显示出来,格式为:学号,名次 (3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右 上角显示计算机中当前系统时间,显示格式为 时:分: 秒:1/100 秒 (4)、输入一个菱形的两条对角线长,在屏幕上用‘ * ’号画出一个彩色的菱形。 (5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次, 一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一 些实际的问题,为将来编写软件积累一些典型的案例处理经验。 (1)、设计正确,方案合理。 (2)、界面友好,使用方便。 (3)、程序精炼,结构清晰。 (4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 (5)、上机演示。 (6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编

单片机定时器设计

摘要 摘要 随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,单片机以其强大的功能,成为许多功能电子产品的首选。本次电子定时器电路根据设计要求采用AT89C51单片机来实现最大99秒倒计时,采用两位数码管显示。文章的核心主要是硬件介绍及连接和软件编程两个大的方面。硬件电路主要包括AT89C51、晶振电路、数码管,发光二级管,按键。软件用汇编语言实现,主要包括主程序、倒计时、重启控制程序等软件模块。采用软硬件配合基本能实现设定定时时间倒计时功能,达到了设计的要求和目的。并在Proteus软件上进行了仿真和调试。 关键词 AT89C51单片机;定时器;倒计时

目录 摘要…………………………………………………………………………………………… 第一章绪论......................................................... 1.1定时器的发展................................................. 1.2 电子定时器的应用............................................... 1.3选题的目的和意义................................................ 1.4 本章小结 第二章单片机的基础知识 (3) 2.1单片机简介 (3) 2.2单片机的特点 (3) 2.3 本章小节 第三章功能实现及硬件介绍 (4) 3.1 设计功能实现 (4) 3.2 C51单片机引脚介绍 (9) 3.3时钟和复位电路 3.4数码管显示 (10) 3.5键盘 (12) 3.6电气原理图……………………………………………………… 3.7本章小结 第四章软件设计 (15) 4.1 程序流程图 (15) 4.2定时1秒设计 (16) 4.3重新启动 (17) 4.4程序 (17) 4.5 本章小结 结论................................................................ 参考文献............................................................ 致谢.........................................................................

相关文档
最新文档