《现代密码学基础》
课程设计指导书
杨柳 编
湖南科技大学计算机科学与工程学院
20##年12月
一、概述
本课程在简要复习数学基础知识之后,探讨了密码学研究的基本问题:通过不安全的通信媒介如何进行安全通信。也可以理解为关心任何希望限制不诚实者达到目的的问题,把度量和评价一个密码体制(协议)的安全性作为一个重点。就目前来说,密码学的研究领域已从消息加密扩大到了数字签名、消息认证、身份识别、抗欺骗协议等。无疑,在整个教学过程中非常重视密码学的基础,当然包括数学基础。并针对实际的密码体制(协议)强调设计与分析(攻击),对现代密码学的主要研究问题都进行了介绍。
对于密码学这样的课程,同学们一定要从理论、技术、应用三个方面进行学习与思考。密码体制(协议)无疑是我们的学习重点,密码体制(协议)也可以单纯地理解为计算机算法,从而有设计、分析、证明、实现的问题。实现密码体制(协议)就是我们经常讲的八个字:模型、算法、程序、测试。
二、课程设计步骤
课程设计步骤要求如下:
1. 模型
从数学的角度看,解决任何问题都要建立一个数学模型,对于密码学来说更是如此。我们还可以认为,数据结构中的存储结构也是模型。于是这一部分的任务就是建立起问题的逻辑结构和存储结构,为算法设计和编码实现打下基础。
2. 算法
这一部分对同学们的要求是能看懂书上的常用算法,并对其中的参数可以进行调整和设置,能实现和应用它们。
3. 程序
编码实现得到程序。
4. 测试
5. 提交课程设计报告
三、课程设计报告编写要求
课程设计报告开头标明课程设计题目、设计者的班级、姓名、学号和完成日期,内容包括:模型、算法、程序、测试四个部分。
四、设计要求
可以只做第7题,不做第7题的要做第1题-第6题。
五、课程设计题目
题目1 大整数运算包的设计与实现
1.问题描述
大整数运算是现代密码学算法实现的基础,重要性不言而喻。大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。
2.基本要求
以类库头文件的形式实现。
3.实现提示
在选择了大整数的存储结构之后,主要实现以下运算:
① 模加;
② 模减;
③ 模乘;
④ 模整除;
⑤ 模取余。这五种运算模拟手算实现。
⑥ 幂模:利用“平方-乘法”算法实现。
⑦ GCD:利用欧几里得算法实现。
⑧ 乘法逆: 利用扩展的欧几里得算法实现。
⑨ 素数判定与生成:概率性素数产生方法产生的数仅仅是伪素数,其缺点在于,尽管其产生合数的可能性很小,但是这种可能性仍然存在:其优点是产生的伪素数没有规律性,而且产生的速度也比较快。此类方法是生成大素数的主要方法,其中较著名的算法有:Miller Rabin算法、Solovay-Strassen算法等。本文讨论Miller Rabin算法。
Miller Rabin素性测试法是在实际中应用非常广的一种素性测试方案,可以用来判定某随机数是否为素数。其定义如下:
设n>2是一个奇数,设n-1=2sm,其中s是非负整数,m>0是奇数,设0<b<n,如果
bm≡-1(mod n),
或者存在一个r,0≤r<s,使得
b 2^r m≡-1(modn)
则称n通过以b为基的Miller-Rabin测试。
可以利用Miller-Rabin素性测试算法来随机生成大素数,随即生成一个奇数n>2,随即均匀的选取序列b1,b2...,bk∈{1,2,...,n-1},对n进行k次Miller-Rabin素性测试,如果每次输出都为“n可能是素数”,则n是合数的概率小于 1/4k当k足够大时,1/4k是一个十分小的数。
同学们在具体实现时,为了提高速度最好以空间换时间,在主程序运行前先构造一个大素数表。
题目2 MD5的实现
1.问题描述
MD5以512比特一块的方式处理输入的消息文本,每个块又划分为十六个32比特的子块。算法的输出由四个32比特的块组成,将它们级联成一个128比特的Hash值。
①首先填充消息使填充后的长度恰好为一个比512的倍数小64的数。填充方法是附一个“1”在消息后面,再补多个“0”。然后,在其后附上64比特的消息长度(填充前)的二进制表示。算法中使用了四个32比特的变量A、B、C、D,先把这四个变量初始化为:
A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210
称它们为链接变量。
① 接着进行算法的主循环,循环的次数是消息中512比特的块的数目。
将上面四个变量复制到另外的变量中:A到AA,B到BB,C到CC,D到DD。
主循环有四轮, 每一轮由16次操作组成。F、G、H、I函数,FF、GG、HH、II四种操作详见教材各密码学参考书。所有这些步骤进行完之后,将A、B、C、D分别加上AA、BB、CC、DD,然后用下一块数据继续进行算法。
③最后的输出是A、B、C、D的级联。
2.基本要求
以MD5(x)的形式实现,x为01串。
3. 实现提示
注意消息文本、各种变量的类型及其类型转换。
题目3 仿射密码的攻击
1.问题描述
仿射密码系统用五元组(P,C,K,E,D)表示,设P=C={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家…}.现在截获了一段密文“和院程安我爱计”。请编程分析出明文。
2.基本要求
程序要求界面友好,自动分析程度高,能输出加密所用的密钥和明文。
3.实现提示
① 申请三个字符数组Z,C,M。
Z={计算机学院网络工程信息安全,我们热爱中华人民共和国。大家},
C=“和院程安我爱计”,
M保存分析所得的明文。
② 密文是通过ek(m)=am+b mod 28得到的,为了解密我们使用dk(c)=a-1(c-b)mod 28。这里有一个函数要先实现:
int gcd(int n,int m)
{
int r,temp;
if(n<m)
{temp=n;
n=m;
m=temp;
}
while(m!=0)
{r=n%m;
n=m;
m=r;
}
return n;
}
③ 有了以上的准备工作,我们就可以编写程序的主要部分了,它是一个多
重循环:
for(a=2;a<28;a++)
if (gcd(a,28)==1)
{/*求a的乘法逆元p */
for(b=2;b<28;b++)
if ((a*b)%28==1){p=b;break;};
/* 用dk(c)=p(c-b) mod 28 */
for(b=0;b<28;b++)
{对数组C进行处理,输出k=(a,b)和M,M有意义程序结束,分析完成。}
};
else continue;
题目4 RSA密码系统的实现
1.问题描述
RSA密码系统可具体描述为:取两个大素数p和q,令n=pq,N=(p-1)(q-1),随机选择整数d,满足gcd(d,N)=1,ed=1 modN。
公开密钥:k1=(n,e)
私有密钥:k2=(p,q,d)
加密算法:对于待加密消息m,其对应的密文为c=E(m)=me(modn)
解密算法:D(c)=cd(modn)
2.基本要求
p,q,d,e参数选取合理,程序要求界面友好,自动化程度高。
4. 实现提示
要实现一个真实的RSA密码系统,主要考虑对大整数的处理。P和q是1024位的,n取2048位。
题目5 ELGamal数字签名方案的实现
1. 问题描述
为简化问题,我们取p=19,g=2,私钥x=9,则公钥y=29 mod 19=18。消息m的ELGamal签名为(r,s),其中r=gk mod p,s=(h(m)-xr)k-1 mod (p-1)
2.基本要求
考虑p取大素数的情况。
3. 实现提示
① 模n求逆a-1mod n运算。
② 模n的大数幂乘运算
题目6 Schnorr身份识别协议的实现
1.问题描述
Schnorr身份识别协议的身份识别过程提示如下:
(1) P任选一整数r∈[1,q-1],计算X=ar mod p 并将X和证书CerP送给V。
(2) V验证CerP中TA的签名。如果成功,则任选一整数e∈[1,2t-1],作为V对P的“询问”,发送给P。
(3) P计算s=r+xe mod q ,s看成是P对V的“应答”,发送给V。
(4) V给证asye mod p =X是否成立,若成立,则V相信对方就是P。
其中p和q都是大素数,且q∣(p-1),a∈Zp*,aq=1 mod p。x∈Zq为P的私钥,公钥y=a-x mod p,t为安全参数。
2.基本要求
程序要求界面友好,能模拟P、V两方。
3. 实现提示
① r、e的选取要有较好的随机性,可以使用语言提供的随机函数。
② 模n的大数幂乘运算
题目7 安全系统设计与实现
1.问题描述
作为学生,我们关心能构造一个信息系统,在学习了数据库理论之后,我们会把信息系统的模式达到3NF。当然,学了现代密码学之后,我们应该能把信息系统改造为一个安全系统。
2.基本要求
程序要求界面友好。
2. 实现提示
在简单实现一个MIS之后,我们要完成以下功能:
① 数据库的加密存储(Hash,DES等)。
② 可信机构与证书颁发。
③ 强身份识别。
④ 密钥协商“加密密钥”。
⑤ 数字签名。
⑥ 其他你认为重要的一些安全方法。
题目8 思考提高
1.利用SPIN等工具进行密码协议分析
SPIN是Bell实验室从1980年起开发的一套模型检测工具,开放其源代码,便于广大科研工作者和学生研究学习。获得了20##年度的ACM的System Software Award。
模型检测安全协议(密码协议、认证协议等)从上世纪90年代起已经成为了信息安全方面一个非常热门的课题。当然SPIN除了验证安全协议外,还可以验证程序及分布式软件系统的正确性。学习SPIN可以从以下三个方面入手:
1.下载和安装SPIN。
2.学习线性时序逻辑(Linear_time temporal logic,LTL)。
3.使用SPIN进行密码协议分析。
2.PGP—Pretty Good Privacy,它是一个基于RSA公匙加密体系的邮件加密软件。可以用它对你的邮件保密以防止非授权者阅读,它还能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。
五、主要参考资料
[1] 章照止主编.现代密码学基础.北京:北京邮电大学出版社,2004.
[2] 张小斌,严望佳编著.计算机网络安全工具.北京:清华大学出版社,1999.
[3] http://spinroot.com
[4] Michael Huth and Mark Ryan.面向计算机科学的数理逻辑:系统建模与推理(英文版 第二版). 北京:机械工业出版社,2005.
[5] http://www.chinaitlab.com/www/special/pgp.asp
[6] http://www.pgp.com/
六、附件
附件1:《密码学基础课程设计安排表》
附件1:
密码学基础课程设计安排表
1.班级分组及指导老师安排表
2.上机时间
20##年3月9日-20##年3月20日,第1、2周整天1-8节。
3.上机地点:专业实验室
4.学生自己独立完成课程设计任务,本次课程设计的测试结束时间是3月20日。请指导老师和学生注意把握进度。
第二篇:07级课程设计指导书
《微机原理与接口技术》课程设计指导书
电信学院2007级自动化、测控、电气自动化专业
指导教师:牛勇 蔡静之 王君瑞 赵霞
指导书编写人:牛勇
参加设计班级:07级自动化、测控、电气自动化专业
设计时间:20xx年 4 月 28 日
西北第二民族学院电子与信息工程系
二○○九年四月二十七日
1
《微机原理与接口技术》课程设计指导书
一、课程设计的目的和作用
课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《微机原理与接口》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的技术理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件硬件调试、查阅资料、绘图、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
二、设计题目与任务
设计题目的出题原则:根据教学大纲对本门课程的教学要求和所讲授的课程内容,结合现有的教学实验设备和能力,按照课程设计的目的和作用所提出的要求,选择符合教学内容、符合学生水平、符合实验室条件,综合本门课的全部知识,难易适中,使学生能在规定的时间内的通过集体讨论、查阅资料后可以完成课题。
2
所有的题目都要求以8086为处理器,以所学过的常用接口芯片及存储器为外围扩展器件,软、硬件结合,完成题目给定的设计任务,要求画出正确的硬件电路并给出完整的程序清单。评分标准按百分制评分。
本任务书在第十周下发给学生,并由学生结合所学习内容开始课程设计的准备工作,教师根据学生要求给予设计指导,在第十八周学生集中做课程设计。
分组要求:每3-4人一组。通过1周的集中设计时间,在老师的指导下应独立完成规定的设计任务。
三、设计指导及要求
课程设计是在教师指导下,各组可以集体讨论,但设计报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师查资料、给数据、定答案。同组同学要发扬团队协作精神,积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。
学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。
学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边绘图,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,整个设计过程中要保留全部的设计纪录,边设计边整理边书写报告,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。
四、设计报告内容及要求
课程设计报告的内容的主要有:方案确定,硬件电路图和设计说明,软件设计清单和设计说明,要求软件要有注释,设计报告的书写要求字迹清楚,语言流畅。
设计报告主要包括以下内容:
1. 设计题目分析
2. 总体方案设计分析、讨论
3. 硬件原理图设计(用自动布线绘图软件最好),要有设计过程说明。
4. 软件流程框图及程序清单(汇编语言源程序必须加注释说明)要有设计过程说明。
5. 设计总结和心得体会
五、进度安排(共1周)
具体进度安排要求如下:
3
1、熟悉设计题目,查阅相关资料,总体方案,软、硬件功能划分,硬件接口原理图设计,软件框图及程序设计等工作可以在题目分配后提前做准备工作,课程设计的题目在第10周后下达给学生,学生可以利用课余时间,通过学习到的理论知识提前为课程设计做准备。(由学生根据自己的学习情况做准备)
2、讨论设计任务,完成设计方案 1天
3、 完成硬件电路设计和软件编写 1天
4、上机调试软件,书写软件说明 1天
5、 调试软件,编写设计报告 1天
6、 每组随机抽1-2人答辩 1天
六、课程设计评分方法
《微机原理与接口技术》课程设计评分标准
1、对课程设计的目的和意义的表述和理解 5分
2、总体方案设计 10分
2、硬件电路设计:
(1)按给定的要求正确的设计出8086最小模式电路图 5分
(2)按给定的要求正确的设计出各所需的译码电路图 5分
(3)按给定的要求正确的设计出各所需的接口电路图 5分
(4)按给定的要求正确的设计出系统硬件电路图 10分
3、软件设计:
(1)按所设计系统的要求给出正确的程序流程图 5分
(2)按给定的要求正确的编写出各接口的初始化程序 5分
(3)按给定的要求正确的编写出主程序 10分
(4)对所编写的程序有注释说明 5分
4、设计报告的书写:
(1)阐明了硬件设计的基本原理和设计要求与方法 10分
(2)阐明了软件设计的基本原理和方法 10分
5、按时完成设计任务 10分
6、考勤 5分
注:根据学院对课程设计评分的要求,给出百分制的评分标准。由于学院没有给出本门课的课程设计评分标准,本标准是指导教师根据实际课程设计和学生在设计过程中的具体情况制定的。
4
七、参考资料
1. 微型计算机技术 马群生
2.微型计算机系统原理及应用 周明德
3.微机原理与接口技术 李 芷
4.微型计算机技术 孙德文
5.微机原理.外设.接口 陈启美
6.微机原理与接口技术 龚尚福
7.8086/8088 16-bit microprocessor Primer Christopher L.Morgan
8、学生可以参照其它相关的技术资料
5
八、课程设计计划进度安排
2008-2009学年春季学期《微机原理与接口技术》课程设计
计划进度表
本次进行《微机原理与接口技术》课程设计的班级是2007级自动化、测控技术、电气自动化班,设计任务由任课教师在第十周(20xx年4月27-30日)下达,要求学生在学习好正常的教学课程情况下,结合已经学习过的技术知识,利用课余时间查阅相关资料,完成相关工作,任课教师利用学生没课的时间进行适当的设计辅导,使学生能在学好本门课程所要求掌握的技术理论知识下,顺利完成本次课程设计。课程设计时间为一周,从第18周开始(。具体时间安排如下:
2007级自动化、测控电气自动化专业课程设计时间安排表
指导教师名单:牛勇 蔡静之 王君瑞 赵霞
电子与信息工程学院自动化系 20xx年4月 27 日
6
九、课程设计题目
《计算机原理与接口技术》课程设计题目
自动控制系 牛勇 蔡静之 王君瑞 赵霞
1、 设计一个8086最小系统,要求RAM为16K、地址分配为00000H—03FFFH,用6116存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。一个8255(地址分配为80H-83H)的两个口的十位作为开关量输入接口(0-1023),按位作为数据的输入。另一个口作为一个的七段码显示器的接口,用另一片8255(地址分配为80H-83H)的三个口作为三个七段码显示器的接口。8253定时器的地址分配为90H—93H,8253定时时间到后引起中断,用8279作为中断接口,地址分配为60H—61H。设计一个程序,要求每10秒钟中断采样并行输入口一次,并将采样回来的数据按十进制显示在七段码显示器上。
2、 设计一个8086最小系统,要求RAM为64K、地址分配为00000H—0FFFFH,用6264存储器、ROM64K,地址分配为F0000H—FFFFFH,用2764EPROM。用一片8255(地址分配为80H-83H)与三个七段码显示器相连,用一片8255的一个口的八位做为数据开关量的输入(00~FFH或0~255),一片8253,地址分配为70H—73H,一片8279,作为中断接口,地址分配为50H—51H。设计一个程序,要求每10秒钟中断后采样并行输入口,将采样回来的数据按十进制显示在七段码显示器的上,如果只有两位数,则最高位不显示。
3、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用一片8255与三个七段码显示器相连,8255的地址分配为80H-83H ,另一片8255与0809相连接,地址分配为90H-93H,一片8253,地址分配为70H-73H,用8279作为中断接口,地址分配为A0H—A1H。设计一个程序,要求每5秒钟中断一次,中断后对0809采样,将采样回来的数据按十进制显示在七段码显示器的上。
4、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用8255做一个3*4位的键盘,8255的地址分配为60H--63H,键盘值为0-9、错误、确认、共12个键。四个的七段码显示器用74LS373作为七段码显示器的接口,用8255的一个口作为七段码显示器的选通控制信号,另一个口作为74LS373的数据输入口。设计一个程序,要求循环扫描键盘,将键盘输入的值依此移位显示出来,输入四位后将输入的数据作为8253的定时计数初值,8253的地址分配为68H-6BH,并停止键盘扫描,定时值每秒减一,并将该值在显示器上显示出来,计数值减到零后,最低位显示“E”字,开始扫描键盘输入,输入新的计数值,并重复上述的过程。
5、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。四个的七段码显示器,用74LS373作为七段码显示器的接口,用8255(地址分配为70H-73H)的一个口作为七段码显示器的选通控制信号,一个口作为74LS373的数据输入口。用0809作为模拟量数据的输入,0809与另一个8255相连接,其地址分配为74H-77H。定时器用8253,其地址分配为80H-83H,用8259作为时间到中断控制器,其地址分配为90H-91H。设计一个程序,要求每5秒钟中断,并对0809采样一次,将采样值按十进制显示在七段码显示器。
6、 设计一个8086最小系统,要求RAM为16K、地址分配为00000H—03FFFH,用6116存储器、ROM32K,地址分配为FC000H—FFFFFH,用2716EPROM。用8255(地址分配为80H-83H)与三个七段码显示器相连,用0809作为模拟量数据的输入,0809与另一个8255相连接,其地址分配为84H-87H。定时器用8253,其地址分配为90H-93H,用8259作为时间到中断控制器,其地址分配为90H-91H。用0832作为模拟量数据的输出(地址自定义)。设计一个程序,要求每5秒钟中断一次并对0809采样,将采样值按十进制显示在七段码显示器,并将采样值由0832输出。
7
7、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F7000H—FFFFFH,用2764EPROM。用8片74LS373与八个七段码显示器相连(后三位显示分数,高四位显示学号),用8255(地址分配为90H-93H)的一个口的八位作为八个七段码显示器的选通信号,一个口作为74LS373的数据输入口,用另一个8255(地址分配为90H-93H)的两个口组成一个4*3键盘,键盘值为数字0-9,另外,出错清除,确认共12个键。设计一个程序,要求在输入完学号后(四位学号),按确认键后就可以把该学号的成绩显示出来。设计一个程序,共有2400学生,学号从0000-9999,多余的学号显示EE,显示的位的格式为:
8、 设计一个8086最小系统,要求RAM为16K、地址分配为00000H—03FFFH,用6116存储器、ROM32K,地址分配为F8000H—FFFFFH,用2716EPROM。用一片8225(地址分配为50~53H)与三个七段码显示器相连,用0809作为模拟量数据的输入,0809与另一个8255(地址分配为60H-63H)相连接,定时器用8253,其地址分配为90H-93H,用8259作为时间到中断控制器,其地址分配为70H-71H。用0832作为模拟量数据的输出(地址自定义)。设计一个程序,要求每10秒钟中断,并对0809采样一次,将采样值按十进制显示在七段码显示器,并将采样值作为输出正弦波的频率,正弦波由0832输出(正弦波的值按每度一个值计算,并将计算好的值保存后查表使用)。要求频率在50-100HZ之间。
9、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用四个74LS373与四个七段码显示器相连,用一片8255(地址分配为84H-87H)的一个口的四位作为四个七段码显示器的选通信号,另一个口的八位作为74LS373的数据口。另一个8255口为一个4*3键盘,键盘值为数字0-9,另外有重输入,确认共12个键。定时器用8253,其地址分配为90H-93H。将键盘输入值按十进制显示在七段码显示器上,并将此输入值作为8255方波发生器的输出频率。要求频率在50-2000HZ之间(小于50或大于2000按出错处理,显示“E”)。
10、设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用四个74LS373作为四个七段码显示器的接口,用8255(地址分配为90H-93H)的一个口作为七段码显示器的选通控制信号,另一个口作为四个74LS373的数据输入口。用0809作为模拟量数据的输入,0809与8255相连接,8255(地址分配为A0H-A3H)。定时器用8253,其地址分配为80H-83H。将0809的采样值按十进制显示在七段码显示器,并将此输入值作为8253分频器的输出频率。要求频率在50-2000HZ之间。输入的最大幅值0~5V对应输出值0~2000HZ。
11、设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。四个的七段码显示器,用74LS373作为七段码显示器的接口,用8255(地址分配为70H-73H)的一个口作为七段码显示器的选通控制信号,另一个口作为四个74LS373的数据输入口。定时器用8253,其地址分配为90H-93H。用8259作为计数满中断控制器,其地址分配为90H-91H。记录8253的外部脉冲数,并将脉冲数显示在显示器上。记录够5000个脉冲后,引起中断,由8255的一位输出控制一个发光二极管,使其亮,表示已经计满了数。然后开始新的循环。
12、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,用2764存储器,地址分配为F8000H—FFFFFH,用8255(地址分配为80H-83H)的一个口与四个七段码显示器相连(用74LS373做驱动),8255的一个口的四位要作为四个七段码显示器的选通信号。定时器用8253,其地址分配为90H-93H。用8259作为定时到中断控制器,其地址分配为90H-91H。每10秒中断,记录8253的中断数,并将中断数显示在显示器上。记录够50个数后,由8255的一位输出控制一个发光二极管,使其亮,程序停止运行。
8
13、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用8255(地址分配为80H-83H)的一个口与四个七段码显示器相连(用74LS373做驱动),8255的一个口的四位要作为四个七段码显示器的选通信号。定时器用8253,其地址分配为90H-93H。用8259作为计数到中断控制器,其地址分配为90H-91H。用0809作为模拟量数据的输入,0809与8255相连接。0809的输入作为8253的计数初值,七段码显示器显示初值,并以递减的方式实时记录8253的外部脉冲数。初值减为0后,引起中断,由8255的一位输出控制一个发光二极管,使其亮,表示已经计满了数。然后开始新的循环。
14、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用8255做一个3*4位的键盘,键盘值为0-9、错误、确认、共12个键值,8255的地址分配为60H--63H,四个的七段码显示器,用74LS373作为七段码显示器的接口,用8255的一个口作为七段码显示器的选通控制信号,一个口为七段码显示器的数据口。设计一个程序,要求循环扫描键盘,并将键盘输入的值按输入顺序依此移位显示出来,输入四位后将输入的数据作为8253的计数初值,8253的地址分配为68H-6BH,并停止键盘扫描,开始计数,计数到后中断,中断服务程序中实现8255四位循环闪烁的发光二极管,每个连续亮2秒、灭2秒,共闪烁5次,中断结束后继续开始扫描键盘输入,输入新的计数值,并重复上述的过程。
15、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,四个的七段码显示器,用74LS373作为七段码显示器的接口,用8255(地址分配为70H-73H)的一个口作为七段码显示器的选通控制信号,一个口为七段码显示器的数据口。定时器用8253(地址分配为90H-93H)。用8259作为计数到中断控制器,其地址分配为90H-91H。用0809作为模拟量数据的输入,0809与8255(地址分配为74H-77H)相连接。程序设计要求:每2秒钟对0809采样一次,比较0809的采样值,0809的输入值在0-2.5V,四个开关量输出控制的灯全灭,输入值在大于2.5V小于或等于3V时,有一个灯亮,输入值在大于3V小于等于3.5V时两个灯亮,输入值在大于
3.5V 小于等于4V时三个灯亮,输入值在大于4V时四个灯亮。
16、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,八个的七段码显示器,用74LS373作为七段码显示器的接口,用8255(地址为60H--63H)的一个口作为七段码显示器的选通控制信号,一个口作为七段码显示器的数据输入口。用8255做一个3*4位的键盘,键盘值为0-9、错误、确认、共12个键值,输入标准时间值。定时器用8253,其地址分配为64H-67H,中断控制器8259,其地址分配为70H-71H。设计要求:每秒中断一次,显示器始终显示时间值,每秒钟显示器刷新一次。八个的七段码显示器显示格式如下:
17、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,八个的七段码显示器,用74LS373作为七段码显示器的接口,用8255(地址为60H--63H)的一个口作为七段码显示器的选通控制信号,一个口作为七段码显示器的数据输入口。用8255做一个3*4位的键盘,键盘值为0-9、错误、确认、共12个键值,输入标准时间值。定时器用8253,其地址分配为64H-67H。用0809作为模拟量数据的输入,0809与8255相连接。程序设计要求:显示器始终显示时间值,每10秒钟对0809采样一次,比较0809的采样值,0809的输入值在0-2.5V,四个开关量输出控制的灯全亮,表示室外较暗,楼内的灯不能关闭,输入值大于等于2V时,表明室外较亮,在时间段8:50—9:00、9:50—10:10、11:00—11:10关闭四层楼的所有灯,在上课是要打开所有灯。下午从12:00到19:00关闭所有灯,19:00以后开所有灯,22:00—7:30关闭所有灯,7:
30 9
以后开灯。每层楼一个开关。八个的七段码显示器显示格式如下:
18、 设计一个8086最小系统,要求RAM为16K、地址分配为00000H—03FFFH,用6116存储器、ROM32K,地址分配为FC000H—FFFFFH,用2716EPROM。用8255(地址分配为80H-83H)一个口与四个七段码显示器相连,8255的一个口的四位要作为四个七段码显示器的选通信号,用另一个8255(地址分配为84H-87H)做一个4*4位的键盘,键盘值为0-9、错误、确认、输入数据,共13个数据和命令键值,键盘的输入值要显示出来,键盘输入值作为三角波的频率,用0832输出三角波(地址自定义)。设计一个程序,将输入的频率值按十进制显示在七段码显示器,并以此频率生成三角波由0832输出。频率范围为:1000—200HZ,在这个频率范围之外的输入视为无效,显示E,表明输入错,重新输入数据。
19、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—07FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用8255(地址分配为70H-73H)的一和口与十二个的七段码显示器连接,每四个七段码显示器组成一组,用8255的两个口的12位作为七段码显示器的选通控制信号。定时器用8253,其地址分配为90H-93H。程序设计要求:对图书馆三层楼进出的人员进行计数,要求每层楼的进入的人数极限值为1000人,到1000时报警,并关闭楼门,报警指示用8255的一位控制一个指示灯,并指示等闪烁。出去的人要从总的计数值中减去,显示器始终显示每层楼内的实际人员的数量。
显示格式:
20、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—03FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM。用8255(地址分配为70H-73H)的一个口与4个的七段码显示器连接,用8255的一个口的四位作为七段码显示器的选通控制信号。用另一个8255作为开关量输入输出控制信号,其地址分配为80H-83H。设计一个程序,对一个四层楼的电梯进行控制,要求每层楼的楼外有一个显示器显示电梯到达的楼层(与电梯内显示的数据相同),楼外有上行和下行两个请求按钮(一楼只有上,四楼只有下)八个开关量输入,电梯内有7个输入(1—4层,开门、关门、呼叫) ,电梯另有四个到位输入开关(1—4层),电梯运行的条件为:门关好开关闭合,输入量,按下电梯内的关门按钮。电梯停止的条件为:某层楼有呼叫时,到达该层楼后,其到位开关闭合,电梯停止上或下,电梯运行由一个开关控制,需要多少个开关量输入输出由设计者自己计算。
21 、 设计一个8086最小系统,要求RAM为32K、地址分配为00000H—03FFFH,用6264存储器、ROM32K,地址分配为F8000H—FFFFFH,用2764EPROM,该系统用于对交通十字路口的红绿灯控制。用8255(地址分配为70H-73H)的两个口与12个的信号灯连接(要有驱动),用8253(地址分配为80H-83H)作为定时器。设计一个程序:南北绿灯亮(东西红灯亮)25秒后南北黄灯(左转灯)亮(东西红灯亮)5秒。然后东西绿灯亮(南北红灯亮)25秒后东西黄灯(左转灯)亮(南北红灯亮)5秒。循环上述过程。
在控制信号灯的工作下,同时记录车流量和交通闯红灯的情况,要求为:东西南北为三车道,每个方向的 10
三个车道上个有一个可以自动记录车数的传感器,该传感器与8253相连,用8253作为计数,每个车道上有正常通过的车时,记录为正常流量,如在红灯是过,则为闯红灯,用闯红灯发生时报警,并记录次数。
注:学生设计组由学生自由组合,每组4人,有各组组长抽签,不得更换设计课题的内容,不得调换设计组的成员。
11