搜档网
当前位置:搜档网 › 微机原理课程设计加密解密算法

微机原理课程设计加密解密算法

微机原理课程设计加密解密算法
微机原理课程设计加密解密算法

加密解密程序设计

1设计算法概述

本设计主要采用对密码符号的ASCII码进行变换和反变换来实现加密和解密。将ASCII码从33到126(除控制字符外)的字符分成2部分:ASCII码从33到63的字符为第一部分,ASCII码在64到128之间的字符为第二部分。每个字符加密后均变为2个字符。

第一部分通过查表法加密和解密,先建立62字节的密码表。加密时,因为一个字符加密后变为两个字符,所以ASCII码从33到63的31个字符密码对应62个字符,即62个字节的数据,计算待加密字符ASCII码对33的偏移量,在密码表中,以这个偏移量乘以2为偏移量的字节数据和下一字节数据就是对应密码;解密时,在表中找到相同字型数据时,计算它对表首的偏移,再加33,就是解密后的字符的ASCII码。

第二部分通过判断字符ASCII码的特性来加密和解密。先判断输入字符的ASCII码是否为3的倍数,若是则对应密码的高位字节为35 ('#'),低位字节为本身ASCII码减一;再判断输入字符的ASCII码是否为5的倍数,若是则对应密码的高位字节为37(‘%’),低位字节为本身ASCII码减3;最后判断输入字符的ASCII码是偶数还是寄数,偶数的密码高字节为38(‘&’),低字节为本身ASCII码加1,奇数的密码高字节为39(‘'’),低字节为本身ASCII码加3 。解密的时候先判断高字节数据,若高字节数据位35、37、38、39则舍去高位字节,低位字节分别进行相应的解密,就得到原码。

2主程序设计

2.1主程序的功能

主程序主要是人机交互部分,提示输入信息和功能选择。程序开始,提示用

户选择相应的功能:按E、e调用加密子程序,进入加密状态,按R、r调用解密子程序,进入解密状态,按Esc退出程序,若输入错误则再次提示输入功能选择。

2.2主程序流程图

主程序流程图如图1所示。

图1 主程序流程图

2.3主程序汇编代码分析

主程序汇编代码分析如下:

main proc far ; 主程序

start:mov ax,data

mov ds,ax

mov dx,seg first_message ;提示输入信息dos-09h,ds:dx为首地址mov ds,dx

mov dx,offset first_message

mov ah,09h

int 21h

mainloop:mov dx,seg second_message

mov ds,dx

mov dx,offset second_message

mov ah,09h

int 21h

inputagain:mov ah,01h

int 21h

cmp al,1bh

je over ;输入为ESC,跳转到结束

cmp al,45h

je jiamicall

cmp al,65h

je jiamicall ;输入为e,E,调用加密程序

cmp al,52h

je jiemicall

cmp al,72h

je jiemicall ;输入为r,R,调用解密程序

jmp mainloop

jiamicall:call jiami

jmp mainloop

jiemicall:call jiemi

jmp mainloop

over:mov dx,seg message3 ;提示结束

mov ds,dx

mov dx,offset message3

mov ah,09h

int 21h

mov ax,4c00h ;程序退出

int 21h

main endp

code ends

end main

3加密程序设计

3.1 加密字符筛选程序

3.1.1加密字符筛选程序描述

本段程序用以筛选输入字符,将ASCII码在33到63之间的字符作为第一部分,ASCII码在64到126之间的字符作为第二部分,然后分别进行加密,两种加密方法完全不同。如果输入控制字符即ASCII码小于33或者为127的时候,程序提示输入错误,并从新读取键盘输入。

3.1.2字符筛选程序流程图

图2 字符筛选程序流程图

3.1.3字符筛选部分程序代码分析

字符筛选部分程序代码分析如下:

jiami proc near

call input_data ;提示输入

lea di,buf ;取密码存储首地址

jiami_loop:mov ah,01h

int 21h ;从键盘读取一个字符

cmp al,1bh ;判断是否为ESC

je call_xianshi_jiami ; 到显示子程序

cmp al,7fh

je error_loop ;判断是否为del

add al,0

cmp al,33 ; 判断是否输入控制字符

js error_loop

add al,0 ; 清除sf 标志位

cmp al,64 ;判断字符ASCII码是否小于64

js call_table_jiami ;调用查表加密

jmp call_chengfa_jiami ;调用第二部分加密

error_loop:mov dx,seg message_error ;输入错误

mov ds,dx

mov dx,offset message_error

mov ah,09h

int 21h ;提示信息

jmp jiami_loop

call_table_jiami:call table_loop

jmp jiami_loop

call_chengfa_jiami:call second_jiami

jmp jiami_loop

call_xianshi_jiami:call xianshi_jiami

ret

jiami endp

3.2查表加密程序设计

3.2.1查表加密描述

将待加密字符ASCII码在33到63之间的字符称为第一部分,第一部分采用查表的方法加密,每个字符对应两个字节的密码,也就是两个字符,密码表如

图2所示。进行加密的时候,只要将输入字符的ASCII码减去33,再以它作为密码表格的偏移量,就可以查到密码。如输入字符‘% ’,其ASCII码为37 ,37-33=4 ,表格中偏移为4的密码为7626h ,即‘&v ’为密码。在程序数据段中预先输入密码表,即建立一个31个字型数据的数组来存放密码,加密的时候,以偏移量来调用数组的元素,就是密码。没加密一个字符,将加密后的密码存入预先定义好的数组中,显示的时候先显示低字节,在显示高字节。

表一密码表

原码密码原码密码原码密码原码密码

33 7e22h 41 682ah 49 5857h 57 507eh

34 7c3eh 42 6638h 50 7d56h 58 4e41h

35 7a23h 43 642ch 51 596fh 59 4c43h

36 783ch 44 6236h 52 3679h 60 4a45h

37 7626h 45 602eh 53 5877h 61 484dh

38 743ah 46 5834h 54 5675h 62 4667h

39 7228h 47 5630h 55 5473h 63 4440h

40 7038h 48 6032h 56 5271h ——

3.2.2查表加密汇编代码分析

本程序段主要用到查表指令xlat,将表格的段地址放入ds,偏移地址放入dx,偏移量放入al中,查表后结果存放在al中。对代码的分析如下:

table_loop proc near

mov dx,seg table2

mov ds,dx

mov bx,offset table2 ;取密码表首地址

sub al,33

add al,al

mov dl,al ;暂存al(输入字符的ASCII码)

xlat ;查表

mov cl,al ;将密码低字节存入cl

mov al,dl ;再取密码高字节存入ch

add al,1

xlat

mov ch,al

mov dx,seg buf ;取密码存储单元首地址

mov ds,dx

mov [di],cx ;将密码存入存储区得带加

mov ax,0024h ;密完成后显示

mov [di+2],al

inc di

inc di

ret

table_loop endp

在程序最后面,密码存储完后,下一单元存入0024h,24h是符号‘$ ’的ASCII码,这样可以在显示的时候钓友dos的09h号功能,直接显示字符串,很方便。

3.3第二部分加密程序设计

3.3.1第二部分加密程序设计描述

如果输入字符的ASCII码不在第一部分范围内,则用第二部分加密。这一部分的加密方法主要是通过判断输入符号ASCII码的数学特性来进行加密。加密的主要方法如表所示,如果原码是3的倍数,则密码的高字节为‘#’(35),低字节为本身的ASCII码减1;如果原码是5的倍数,则密码的高字节为‘%’(37),低字节为本身的ASCII码减3;如果原码是偶数,则密码的高字节为‘&’(38),低字节为本身的ASCII码加1;如果原码是寄数,则密码的高字节为‘’’(39),低字节为本身的ASCII码加3 。因为程序是顺序判断执行的,所以先判

表二第二部分加密方法表

原码密码

高字节低字节是3的倍数‘#’(35) al-1

是5的倍数‘%’(37) al-3

是偶数‘&’(38) al+1

是寄数‘’’(39) al+3

断是否为3的倍数,在判断是否为5的倍数,然后判断奇偶,这样就不会出现混淆出错的情况。

3.3.2第二部分加密程序设计流程图

第二部分加密程序流程图如图所示,先判断是否为3的倍数,再判断是否为的倍数,然后判断奇偶。

5

图3 加密程序流程图

3.3.3第二部分加密程序设计代码分析

程序代码如下,先判断al是否为3的倍数,再判断是否为5的倍数,然后

判断奇偶性,顺序判断,满足则跳转调用子程序加密,保存数据。

second_jiami proc near

mov dl,al ;暂存al

mov ah,0

mov bl,3

div bl ;al除以3

add ah,0 ;判断余数是否为0

jz call_div3_jiami ;是0则跳转

mov al,dl

mov ah,0 ;清楚ah中的数

mov bl,5

div bl ;al除以5

add ah,0 ;判断余数是否为0

jz call_div5_jiami ;是0则跳转

mov al,dl

test al,01h ;判断al的奇偶性

jz call_oushu_jiami ;偶数跳转

call jishu_jiami

jmp jiami_loop

sj_ret:ret

call_div3_jiami:call div3_jiami

jmp sj_ret ;返回

call_div5_jiami:call div5_jiami

jmp sj_ret

call_oushu_jiami:call oushu_jiami

jmp sj_ret

second_jiami endp

如果al是3的倍数调用的子程序div3_jiami如下,在最后两个字节中存入了数据24h,是为了在显示的时候调用dos的字符串显示功能。

div3_jiami proc near

mov bx,seg buf

mov ds,bx ;取存储区地址

mov ah,35; ;符号‘#’的ASCII码

mov al,dl ;待加密符号在上一程序中暂存过

sub al,1 ;减1

mov [di],ax ;将两个字节数据送存储区

mov ax,0024h

mov [di+2],ax

inc di

inc di ;指向下一单元

ret

div3_jiami endp

3.4密码显示程序代码分析

密码显示程序如下,先判断开始的2个字节是否为0024h,用来判断是否有密码以经保存,如果有密码已经保存了就显示所有密码再退出,否则退出。xianshi_jiami proc near

call huanhang ;显示换行

mov dx,seg buf

mov ds,dx ;取密码存储区首地址

lea di,buf

mov ax,[di] ;去第一个字型数据

cmp al,0024h ;判断是否存储了数据

jz call_no_code

call huanhang ;有数据,换行显示

mov dx,seg codeis

mov ds,dx

lea dx,codeis ;显示提示信息

mov ah,09h

int 21h

mov dx,seg buf ;显示存储区信息

mov ds,dx

lea dx,buf

mov ah,09h

int 21h

ret_back:call huanhang

call huanhang ;两次换行,提高视觉效果

ret ;返回

call_no_code:call no_code

jmp ret_back

xianshi_jiami endp

4解密程序设计

4.1解密程序设计描述

解密是加密操作的反动作,只要依照加密的方法,一步步返回去,就可以将两个字节的密码变为加密钱的单字节字符。

首先判断密码的高字节是否为35、37、38、39,若高字节是这些数中的一个,那么舍去高字节数据,分别将低字节的数加1、加3、减1、减3,就得到了原码。

如果密码的高位不是上面的四个数之一,那么需要通过查表找到字型密码在密码表中的偏移量,在将偏移量加33就是密码。

如果输入控制字符或者输入没有原码的两个字符时,程序将提示输入错误,要求重新输入密码。

4.2解密程序流程图

4.2.1解密字符筛选流程图

解密程序流程图如图所示,如果输入的是Esc则退出,如果输入的是控制字符,则提示输入错误,提示重新输入。State是在数据段定义一个字节数据做全局变量,初始值设为0,用来指示输人字节的状态,当输入两个字节后调用函数jiemi_data,解密已存在bx中的一个字型数据。

图4 解密字符筛选流程图

4.2.2解密程序流程图

解密程序流程图如下所示,先判断bh的数值,再调用不同的方法解密数据。如果bh=35,执行bl=bl+1;如果bh=37,执行bl=bl+3;如果bh=38,执行bl=bl-1;如果bh=39,执行bl=bl-3;如果bh不是这些数,则逐个取table2中的双字节数据到dx与bx比较,如果相等,就找到了密码,计算出计数寄存器cx的变化值,再加上34就是解密后的数据ASCII码。如果输入的是其他数据,那么提示输入密码错误,没有这个密码当然不能解密了。

图5 解密程序流程图

4.2.3解密程序代码分析

jiemi_data proc near

cmp bh,40 ;高位< 40???

js call_second_jiemi ;bh>40第二部分解密

call table_jiemi ;否则查表解密

jiemi_data_ret:ret ;返回

call_second_jiemi:call second_jiemi

jmp jiemi_data_ret

jiemi_data endp

;************************查表解密子程序

table_jiemi proc near

mov dx,seg table2

mov ds,dx ;取table2首地址

lea si,table2

mov cx,0031h ;设置计数初值

mov ax,bx

scan_code:mov dx,[si] ;取table元素

cmp ax,dx

jz find_code ;比较、判断

inc si

inc si

loop scan_code

call rong_code ;提示密码错误

rret:ret ;返回

find_code:mov bl,30h ;找到密码后计算计数变化sub bl,cl

add bl,34 ;;得到密码

mov dx,seg buf1

mov ds,dx

mov [di],bl ;保存到存储区

mov al,24h ;存储区以24h结尾

mov [di+1],al

inc di

jmp rret

table_jiemi endp

second_jiemi proc near ;第二部分解密程序开始mov dx,seg buf1

mov ds,dx

cmp bh,35 ;判断是否高位bh为35

jz div3_jiemi

cmp bh,37 ;判断是否高位bh为37

jz div5_jiemi

cmp bh,38 ;判断是否高位bh为38

jz oushu_jiemi

cmp bh,39 ;判断是否高位bh为39

jz jishu_jiemi

call rong_code ;否则提示密码错误second_jiemi_ret:ret ;程序结束

5程序运行结果

程序的运行结果如图所示,提示后选择加密或者解密功能,选择加密,输入原码123#b ,按Esc退出加密,输出密码为WXV}oY#zc& ,再选择解密,输入WX V} oY #z c& ,按Esc退出,输出解密后的原码为123#b 。多次运行程序正确。

图6 程序运行结果

6心得体会

本次微机原理课程设计中,这个加密解密程序设计对我来说很有意义,开始拿到题目的时候什么都不懂,不知道从何下手,通过认真查阅资料,仔细思考分析,细心编写调试源代码,最后完成了加密解密程序的基本功能。

数据的加密功能是利用对数据的ASCII码进行运算变换,使它改写为另一个或多个数据,隐藏了原始数据,使他人不能看到,从而保证了原数据的安全。数据的解密则是根据加密算法设计的,它与加密互为逆过程,能够使加密后的数据复原。

在程序设计、编写和调试中,完成了从课本理论知识到实际动手的基本过程,将所学的课本知识运用到了实际的程序编写中,让我受益匪浅。了解到了计算机程序设计的一般步骤,大型的软件程序设计完成都要经过很多个步骤,每步都必须一丝不苟,才能少走弯路,顺利完成工作。

参考文献

[1]周佩玲.微机原理与接口技术.北京:电子工业出版社,2005

[3]李珍香.汇编语言课程设计案例精编.北京:中国水利水电出版社,2004

[4]沈美明.IBM-PC汇编语言程序设计.北京:清华大学出版社,2000

[5]贺亚茹.汇编语言程序设计.北京:科学出版社,2005

[6]卜艳萍、周伟.汇编语言程序设计教程.北京:清华大学出版社,2004

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

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

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),

加密解密课程设计

兰州商学院陇桥学院工学系课程设计报告 课程名称: Java 设计题目:加密与解密 系别:工学系 专业 (方向):信息管理与信息系统 年级、班:2012级(2)班 学生姓名:费亚芬 学生学号: 208

指导教师:张鑫 2014年7 月 1日 目录 一、系统开发的背景................................. 错误!未定义书签。 二、系统分析与设计................................. 错误!未定义书签。(一)............................................. 系统功能要求错误!未定义书签。(二)......................................... 系统模块结构设计错误!未定义书签。 三、系统的设计与实现............................... 错误!未定义书签。(一)图形用户界面模块 ........................... 错误!未定义书签。(二)加密操作模块 ............................... 错误!未定义书签。 (三)解密操作模块................................ 错误!未定义书签。(四)文件保存模块 ............................... 错误!未定义书签。

(五)文件选择模块 ............................... 错误!未定义书签。 四、系统测试....................................... 错误!未定义书签。(一)测试加密..................................... 错误!未定义书签。(二)测试选择加密文件............................. 错误!未定义书签。(三)测试生成加密文件............................. 错误!未定义书签。(四)测试浏览加密文件............................. 错误!未定义书签。(五)测试解密文件................................. 错误!未定义书签。 五、总结........................................... 错误!未定义书签。 六、附件(代码、部分图表) ......................... 错误!未定义书签。

网络安全常见的四种加密解密算法

package mima; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Mainer { StringBuffer MStr = new StringBuffer(""); // 加密字符串 StringBuffer CStr = new StringBuffer(""); // 解密字符串 public static void main(String[] args) { System.out.print("请输入密钥:"); Scanner s = new Scanner(System.in); int key = s.nextInt() % 26; // %26的意义是获取密钥的偏移值 Mainer ks = new Mainer(); ks.E(key); // 加密 ks.D(key); // 解密 } /** * 加密公式 */ void E(int k) { try { System.out.println("请输入一段明文:"); char b[]; BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); String str2 = br2.readLine(); b = str2.toCharArray(); char ch = ' '; for (int i = 0; i < str2.length(); i++) { if (b[i] >= 'a' && b[i] <= 'z') { ch = (char) ((b[i] - 'a' + k) % 26 + 'a'); } if(b[i] >= 'A' && b[i] <= 'Z'){ ch = (char) ((b[i] - 'A' + k) % 26 + 'A'); } if(b[i]>='0'&&b[i]<='9')

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

密码学课程方案AES加密解密文档

个人资料整理仅限学习使用 成都信息工程学院课程设计报告 AES加密解密的实现 课程名称:应用密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: 年月日

个人资料整理仅限学习使用 附件:课程设计成绩评价表

个人资料整理仅限学习使用目录

1.背景 AES,密码学中的高级加密标准

四种加密解密算法的源代码:移位密码、仿射密码

四种加密解密算法的源代码:移位密码、仿射密码、维吉尼亚密码以及置换密码#include #include #include #include void Shift() /*移位密码*/ { char c[100]; int length, i=0, key=0; clrscr(); printf("********Shift Cipher********\nPlease input primal sentence: "); gets(c); length = strlen(c); printf("Input the key(0~26): "); scanf("%d", &key); getchar(); if(key<0) { printf("The value of key is error!\nPress any key to return..."); getch(); return; } for(i=0; i96&&c[i]<123) c[i] = (c[i]+key-97)%26+65; else if(c[i]>64&&c[i]<91) c[i] = (c[i]+key-65)%26+65; } printf("Result is: %s\n", c); for(i=0; i64&&c[i]<91) c[i] = (c[i]-key-65+26)%26+97; } printf("\nAfter translated the sentence,we can see the primal sentence as follow:\n%s\n", c); printf("Press any key to return..."); getch(); }

2016年微机原理课程设计指导书

微机原理课程设计 指 导 书 计算机科学与技术学院计算机系统教研室 二零一六年五月

目录 1 课程设计的目的和任务 (1) 2 课程设计指导及要求 (1) 3 课程设计的主要步骤 (1) 3.1 总体设计 (2) 3.2 硬件设计 (2) 3.3 软件设计 (2) 3.4 软、硬件联调 (2) 4 课程设计报告内容及格式要求 (2) 5 进度安排 (3) 6 课程设计的考核方法及成绩评定 (3) 7 课程设计题目 (3) 8 主要参考资料 (5)

1 课程设计的目的和任务 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 2 课程设计指导及要求 在课程设计时,1人1题,同批次同学中选择同一题的人数不超过3人。在教师指导下,可以相互讨论,但设计报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。同学应积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。 学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。 3 课程设计的主要步骤 课程设计分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤:

java文件加密解密课程设计

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目文本文档的加密与解密 专业班级财升本12-1班 学号 1220970120 姓名王微微 指导教师徐娇月 2013年 1 月

1 设计时间 2013年1月14日-2013年1月18日 2 设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程。通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 3 设计任务 对文件进行加密解密 4 设计内容 4.1 需求分析 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。 4.2 总体设计 4.2.1 包的描述 导入了java.awt; java.awt.event; java.io; javax.swing等包。 4.2.2 类的描述 Myframe类;E1类。其中Myframe类继承Frame类;可以扩展Frame的功能并且可以实例化的多种功能,这个类也实现了ActionListener这个接口,它是Java中关于事件处理的一个接口,ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed 方法。 4.3 页面设计

图4.3-1 显示页面 代码实现: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

实验四RSA加解密算法的实现

实验四 RSA加解密算法的实现 一.实验目的 1、对算法描述可进行充分理解,精确理解算法的各个步骤。 2、完成RSA软件算法的详细设计。 3、用C++完成算法的设计模块。 4、编制测试代码。 二.实验内容 1.实验原理及基本技术路线图(方框原理图) 加密过程: 第一步,用户首先输入两个素数p和q,并求出 n = p*q,然后再求出n的欧拉函数值phi。 第二步,在[e,phi]中选出一个与phi互素的整数e,并根据e*d ≡1(mod phi),求出e的乘法逆元。至此我们已经得到了公开密钥{e,n}和秘密密钥{d,n}。 第三步,让用户输入要进行加密的小于n一组正整数(个数不超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。 第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。 注意:此处不能用m2[j] = clear[j] ^ e整数的幂,因为当e和clear[j]较大时,会发生溢出,至使出现无法预料的结果。 第五步,输出加密后的密文。 解密过程: 第一步,根据在以上算法中求出的解密密钥[d,phi],对加密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下: 第二步,输出对加密前的明文和加密并解密后的密文进行比较,判断两个数组是否一致,从而得知算法是否正确。

2.所用仪器、材料(设备名称、型号、规格等) 计算机一台、vc6.0 3.实验方法、步骤 #include #include using namespace std; #define MAXLENGTH 500 //明文最大长度,即所允许最大整数个数 int size = 0;//保存要进行加密的正整数的个数 int p, q; //两个大素数 int n, phi; //n = p * q,phi = (p-1) * (q-1) 是n的欧拉函数值 int e; //{e, n}为公开密钥 int d; //{d, n}为秘密密钥 int clear[MAXLENGTH], Ciphertext[MAXLENGTH];//分别用于存放加//密前的明//文和加密后的密文int DecryptionText[MAXLENGTH];//存放解密后的明文 //////////////////////////////////////////////////////////// //以下为加密算法 void Encryption() {//加密算法 cout << " 请输入两个较大的素数:" ; cin >> p >> q ; cout << " p = " << p << ", q = " << q << endl; n = p * q;//求解 n, phi = (p - 1) * ( q - 1 );//求解 n 的欧拉函数值 cout << " n = " << n << ", phi = " << phi << endl; cout << " 请从[0," << phi - 1 << "]中选择一个与 " << phi << " 互素的数 e:"; cin >> e; float d0; for( int i = 1; ; i++) {///求解乘法逆元 e * d ≡ 1 (mod phi) d0 = (float)(phi*i+1) / e; if( d0 - (int)d0 == 0 ) break; } d = (int)d0; cout << endl; cout << " e = " << e << ", d = " << d << endl; cout << " 公开密钥 Pk = {e,n} = {" << e << "," << n << "}" << endl; cout << " 秘密密钥 Sk = {d,n} = {" << d << "," << n << "}" << endl; cout << endl;

微机原理课程设计说明书

微机原理课程设计说明书 题目 数据段里有一个N个字的数组A,利用冒泡排序法最数组进行从小到大的排序,并输出结果。 要求:读出数据段中存放的数组A;换行显示换行后的数组A 题目分析 数据段为N个字,从而了解到该数据类型为双字节,且数据段中数据个数未知。要求对该数组进行从小到大的排序,且要求用冒泡法进行。数据段中的数组A已经给定,无需输入,但是要求将排序前后数组A显示出来,且要求换行显示。 软件流程图

流程图

设计思路说明 首先通过调用自定义子程序printf将数组A中的数据显示出来,然后在运用冒泡法对数组中的数据进行排序,冒泡法排序的总思路是,首先从数组A中的第一个元素开始,一次对相邻的的两个元素进行比较,调整。使前一个元素不大于后一个元素,将素有元素比较完之后,最大的元素排到了最后;然后,除掉最后一个元素之外的元素依上方法再次进行比较,得到次大的元素排在后面;如此重复,直至完成就实现了元素的从小到大的排序。同时在每一轮的依次比较时,我还设置了一个检测标识,如果哪一轮比较时没有进行依次调整,前面的元素都不大于后面的元素。直接结束排序。最后再次调用自定义子程序printf将排序后的数组A显示出来。 程序清单 主程序开始部分 DATAS SEGMENT arrary dw 3,2,-1,5,7,4,6,100,895;预定义需排序数组 len dw ($-arrary)/2 flag db ?;交换标志,为1表示发生交换 c10 dw 10 ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX call print;调用子程序打印数组 冒泡法排序程序 l_out:lea bx,arrary;外层循环,flag==1时进入

DES加密解密课程设计报告

D E S加密解密课程设计报 告 Prepared on 22 November 2020

成都信息工程学院课程设计报告 DES算法加密与解密的设计与实现课程名称:密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: XX年 XX 月 XX 日

目录

1背景 DES算法概述 DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN 码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速

微机原理课程设计心得体会3篇

微机原理课程设计心得体会3篇课程设计是对课程的各个方面做出规划和安排,是连接课程基本理念和课程实践活动的桥梁。下面是为大家带来的微机原理课程设计心得体会,希望可以帮助大家。 微机原理课程设计心得体会范文1: 计算机网络的设计是一个要求动手能力很强的一门实践课程,在课程设计期间我努力将自己以前所学的理论知识向实践方面转化,尽量做到理论与实践相结合,在课程设计期间能够遵守纪律规章,不迟到、早退,认真完成老师布置的任务,同时也发现了自己的许多不足之处。 在课程设计过程中,我一共完成了11个实验,分别是1.制作直通电缆和交叉UTP、2.交换机Console口和Telnet配置、3.交换机端口和常规配置、4.虚拟局域网VLAN配置、5.路由器Console口Telnet 配置方法和接口配置、6.路由器静态路由配置、7单臂路由配置、8.动态路由协议配置、9.PPP协议配置、10路由器访问控制表(ACL)、11.网络地址转换(NAT)。 在制作直通电缆和交换UTP的实验中,我起初不能完全按照要求来剪切电缆,导致连接不通,后来在同学的帮助下,终于将实验完成。 在做到单臂路由配置和动态路由协议配置的实验,由于自身的基础知识掌握不牢,忘掉了一些理论知识,在重新翻阅课本和老师的指导之下,也成功的完成了试验。

从抽象的理论回到了丰富的实践创造,细致的了解了计算机网络连接的的全过程,认真学习了各种配置方法,并掌握了利用虚拟环境配置的方法,我利用此次难得的机会,努力完成实验,严格要求自己,认真学习计算机网络的基础理论,学习网络电缆的制作等知识,利用空余时间认真学习一些课本内容以外的相关知识,掌握了一些基本的实践技能。 课程设计是培养我们综合运用所学知识,发现、提出、分析、解决问题的一个过程,是对我们所学知识及综合能力的一次考察。随着科学技术日新月异的不断发展,计算机网络也在不断的变化发展当中,这就要求我们用相应的知识来武装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备。 微机原理课程设计心得体会范文2: "微机原理与系统设计" 作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。 这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必

DES加密算法与解密(带流程图)

一、DES加密及解密算法程序源代码: #include using namespace std; const static char IP_Table[] = { //IP_T able置换58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 }; const static char Final_Table[] = { //最终置换40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26,

33, 1, 41, 9, 49, 17, 57, 25 }; const static char S_Box[8][64] = { //s_box /* S1 */ {14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13}, /* S2 */ {15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9}, /* S3 */ {10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12}, /* S4 */ {7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,

微机原理课程设计

微机原理与接口技术课程设计报告 设计课题:电动机速度控制器 专业班级:测控技术与仪器 学生姓名:jcl 学生学号:2008 指导教师:ddd 成绩: 二○一一年一月十一日

电动机速度控制器 一、设计目的 1.微机原理与接口技术是一门实践性很强的课程。课程设计教学环节十分重要。通过课程设计,使用微处理器芯片及其它典型的接口芯片,设计微处理器应用的典型接口电路,加深对微处理器、典型接口芯片特性的理解,掌握微处理器接口电路设计的初步方法,并进行一定的编程训练,加强微机应用的工程实践能力; 2.掌握接口芯片8255A和DAC0832的工作原理,熟悉8255A可编程并行口的使用方法,会写8255A 的控制字以及掌握三种工作方式的特点并会使用;会根据DAC0832的输入输出器和DAC寄存器的不同控制方法,选择不同的工作方式:单缓冲方式、双缓冲方式、直通方式。 3.学会自己独立设计电路,熟悉设计的过程,学会利用各种资源。 二、设计要求 利用开关量来实现对输出电压的定量控制,从而控制电动机的转速。 1、通过8255A工作在方式0的基本输入输出功能,输入一个八位的二进制数,同时在利用DAC0832的模数转换功能将其转换成电压信号,从而对输出的电压大小实现量控。 2、用八个开关的输入作为八位二进制数输入,CPU从8255A中读取放在AL中;然后将AL中的数据送入DAC0832中转换成模拟量,从而完成对电压的量控输出,即控制电动机的转速。 3、对于两个接口芯片的操作是用CPU的地址总线通过译码器选中其中一个,从而对其进行读写;DAC0832的工作方式是单缓冲方式。 4、8255A方式选择控制字如下图所示:

文件加密系统课程设计

仲恺农业工程学院课程设计 文件加密 姓名孙浩斌 院(系)信息科学与技术学院 专业年级计算机132 学号 指导教师罗慧慧 职称学生 起止时间2015-6-15至2015-6-24 仲恺农业工程学院教务处制 目录

一.课程设计目的和要求 设计目的 有时我们有些资料不希望别人看到,最常用的方法就是加密。对给定的相关文件进行加密可以对文件进行保护,可以防止某些重要信息不被别人所知道甚至窃取。对文件起到保护作用,可以方便用户使用某些只有自己能知道的信息,能够安全保护文件的相关内容几信息不被外流。随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。通过课程设计,使学生了解高级程序设计语言的结构,逐渐培养学生的编程能力、用计算机解决实际问题的能力,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。 程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试程序及编写设计报告。

本课程设计的目标: 1. 巩固《高级语言程序设计》课程学习的内容和加深学生对基本知识的理解和掌握。 2. 掌握编程和程序调试的基本技能。 3. 掌握软件设计的方法。 4. 提高运用程序设计解决实际问题的能力。 5. 培养独立思考、综合运用所学有关相应知识的能力。 6. 强化上机动手编程能力,闯过理论与实践相结合的难关! 设计要求 1. 分析课程设计题目的要求,根据所要求的程序功能,画出程序的流程图。 2.对系统功能模块进行分析,写出详细设计说明文档。 3.对程序源代码进行调试与测试,使其能正确运行。 4.设计完成的软件要便于操作和使用。 5.设计完成后提交课程设计报告。 设计意义 至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。

微机原理课程设计--汽车倒车测距仪

微机原理与接口技术课程设计 ——汽车倒车测距仪 题目:汽车倒车测距仪 指导老师: 日期:2013年1月13日

目录 一、设计目的 (4) 二、设计内容 (4) 三、设计任务 (4) 四、问题分析及方案选择 (5) 1.总体思路 (5) 2.超声的波发射 (5) 3.测距原理 (5) 4.显示原理 (6) 5.报警原理 (6) 五、所需元件 (6) 1.8086介绍 (6) 2.8259A介绍 (7) 3.8255介绍 (8) 4.8253介绍 (8) 5.地址锁存器74LS138介绍 (9) 六、硬件接线图 (11) 1.总电路图 (11) 2.超声波发射电路: (11) 3.超声波接收电路 (12) 4.数码管显示电路 (14) 5.蜂鸣报警电路 (14) 七、主程序流程图 (15) 1.中断子程序 (17) 2. 延时子程序 (17) 3. 距离计算子程序 (18) 4. 十六进制转10进制数子程序 (18) 5. LED显示子程序 (19) 八、程序代码 (19) 九、设计难点 (25) 十、心得体会 (25)

十一、参考文献 (27) 汽车倒车测距仪设计

一设计目的 1、运用微机原理及接口技术理论课中学习的8086、8255等芯片,以及数码管等元件进行课程设计,做到学以致用。 2、通过课程设计提高自己的动手能力,分析问题的能力、解决问题的能力。 3、提高自己运用汇编语言的能力,使自己的思维更加发散,提高创新能力。 4、通过整个课程设计,提高综合运用能力,及提高对硬件的认识和布线能力。 二、设计内容 1、设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近; ①开机后先显示“———”,并有开机指示灯。 ② CPU发射超声波1ms,然后显示60ms;即1ms+60ms为一个工作周期, 等待回波,在次周期内完成一次探测。 ③根据距离远近发出报警声并显示距离。障碍物距离小于1m,距离值 变化5cm更换显示,否则不更换;距离在1m以上,新值与原显示值 之差大于10cm更换,否则不更换。 ④用三LED位数码管显示障碍物距离 2、硬件电路原理图和软件框图; 3 编写控制程序,写出设计任务书(总结报告)。 三、设计任务 1、选用8088和适当的存储器及接口芯片完成相应的功能。 2、用LED显示器显示电子锁的当前状态。 3、画出详细的硬件连接图。 4、给出程序设计思路、画出软件流程图。 5、给出地址分配表。

相关主题