我的操作系统课设

2024-06-26

我的操作系统课设(共8篇)

1.我的操作系统课设 篇一

程序设计课设论文

论文题目: 图书信息管理系统

学 院: 年 级: 班 级: 姓 名: 学 号: 指导教师:

软件学院 2015级

软件工程1522班 韩汀

201515614100 邵回祖

2016年6月14日-2016年6月22日

目录

1.需求分析---------1

2.概要设计---------2

3.详细设计---------3

4.调试分析---------8

5.核心源程序清单和执行结果------------------------8

6.课程设计总结----19

1.需求分析

(1)程序的功能:

图书信息管理系统涉及5项功能,包括录入,浏览,查询,删除和修改,其中查询可通过书名或作者两种途径进行。

图书信息录入:将图书信息写入程序,包括序号,书名,作者,出版社,出版日期和价格。

图书信息浏览:将所有已录入的图书信息按序号排序列出。图书信息查询:可根据图书的书名或作者查找该书的具体信息。图书信息删除:可根据序号删除指定图书信息。图书信息修改:可根据序号修改图书所有信息。

(2)输入输出要求:

(3)测试数据: 高等数学 1 高等教育出版社 2014.7 31.20 2 概率论 2 高等教育出版社 2008.6 37.40 3 线性代数 3 高等教育出版社 2007.5 17.30 4 C程序设计 4 清华大学出版社 2010.6 33.00 1

2.概要设计:(1)数据的存储结构

(2)系统流程: 2

3.详细设计:

(1)信息录入函数: 用scanf函数输入定义的书籍结构体的序号,书名,作者,出版社,出版时间和价格。建立10本书籍的书库,输入完毕,返回主函数。

(2)信息浏览函数:

(3)信息查询函数:

这里分两个项目,一个是通过书名进行查询,另一个是通过作者进行查询。在定义查询函数时使用switch函数:

通过书名进行查询:

通过作者进行查询:

(4)信息删除函数:

根据序号删除图书,操作成功后显示删除成功,任意键跳转。如果序号输入错误显示图书不存在。

(5)信息修改函数:

在此函数中,根据序号选择图书修改,存在一个问题,就是难以选择其中一项进行修改,只能全部修改。

出现的问题:只能全部进行修改:

4.调试分析:

(1)在初次运行中,发现系统闪退问题存在于第2,3,4,5项中,输入序号点击回车系统闪退。最后在每一项最后加入system(“pause”);使得闪退问题修复。

(2)在最初编写代码过程中,始终输入:FILE *fp;

if((fp=fopen(“library”,“r”))==NULL)最后修改为:FILE *fp;

if((fp=fopen(“library.doc”,“r”))==NULL)

(3)在信息修改一栏中,目前仍无法实现单独修改一条信息的功能,只能根据序号,对序号所对应的全部图书信息进行修改。

if(i!=library.count){

mbook book;

printf(“ntt请输入修改后此图书的信息n”);

printf(“t请输入图书号:”);

scanf(“%s”,book.number);

printf(“t请输入图书名:”);

scanf(“%s”,book.name);

printf(“t请输入作者名:”);

scanf(“%s”,book.author);

printf(“t请输入出版社:”);

scanf(“%s”,book.publish);

printf(“t请输入出版时间:”);

scanf(“%s”,book.time);

printf(“t请输入该书的价格:”);

fflush(stdin);

scanf(“%f”,&book.price);

strcpy(library.book[i].name,book.name);

strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();5.核心源程序清单和执行结果:

(1)源代码:

#include #include #include typedef struct { char number[10];//书号 char name[20];//书名 char author[20];//作者 char publish[50];//出版社 char time[20];//出版时间 float price;}mbook;

typedef struct { int count;//书的本数

mbook book[100];//最大可有100本书 }mlibrary;

mlibrary library;void save()//保存图书信息。{ FILE *fp;if((fp=fopen(“library.doc”,“w”))==NULL){ printf(“n不能保存图书信息n”);return;} fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book[0]),library.count,fp);}

void putin()/*定义录入函数*/ {

int y=1;

system(“cls”);while(y)

{ printf(“t请输入您的书籍的书号:”);scanf(“%s”,library.book[library.count].number);printf(“t 请输入书名:”);scanf(“%s”,library.book[library.count].name);printf(“t 请输入作者名:”);scanf(“%s”,library.book[library.count].author);printf(“t 请输入出版社:”);scanf(“%s”,library.book[library.count].publish);printf(“t 请输入出版时间:”);scanf(“%s”,library.book[library.count].time);printf(“t 请输入该书的价格:”);fflush(stdin);scanf(“%f”,&library.book[library.count].price);library.count++;printf(“n 是否继续录入(1.继续;0,退出录入):”);fflush(stdin);scanf(“%d”,&y);if(y!=1){ y=0;break;} } save();} void lookup(){

int i;

system(“cls”);

printf(“图书号t图书名t作者名t出版社t出版日期t图书价格n”);for(i=0;i

void search()/*定义查询函数*/ { int a;system(“cls”);/*进行清屏*/ printf(“tt******************************n”);printf(“开始查询n”);printf(“ttt1---------------search_by_namen”);printf(“ttt2---------------search_by_writern”);printf(“ttt0---------------exitn”);printf(“tt******************************n”);printf(“tt请选择你想要的查询方式:”);fflush(stdin);scanf(“%d”,&a);switch(a){ case 1: search_by_name();break;case 2: search_by_author();break;case 0: return;} system(“pause”);} void del()/*定义删除函数*/ { int i;char number[10];system(“cls”);/*清屏*/ printf(“n Please type in the number of the book you want to delete:”);fflush(stdin);scanf(“%s”,number);for(i=0;i

mbook book;

printf(“ntt请输入修改后此图书的信息n”);

printf(“t请输入图书号:”);

scanf(“%s”,book.number);

printf(“t请输入图书名:”);

scanf(“%s”,book.name);

printf(“t请输入作者名:”);

scanf(“%s”,book.author);

printf(“t请输入出版社:”);

scanf(“%s”,book.publish);

printf(“t请输入出版时间:”);

scanf(“%s”,book.time);

printf(“t请输入该书的价格:”);

fflush(stdin);

scanf(“%f”,&book.price);

strcpy(library.book[i].name,book.name);

strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();} else

printf(“n cannot found!n”);

fflush(stdin);

getchar();

system(“pause”);}

int main(){

int a;

FILE *fp;

if((fp=fopen(“library.doc”,“r”))==NULL){ printf(“n不能打开图书信息库n”);fp=fopen(“library.doc”,“w+”);printf(“n初始化图书信息库,初始化之后要重启程序n”);library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;} fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book[0]),library.count,fp);fclose(fp);do { system(“cls”);printf(“nnnnntttt图书信息管理系统ttttn”);printf(“tt*********************************************n”);printf(“ttt1------------------图书信息录入n”);printf(“ttt2------------------图书信息浏览n”);printf(“ttt3------------------图书信息查询n”);printf(“ttt4------------------图书信息删除n”);printf(“ttt5------------------图书信息修改n”);printf(“ttt0-----------------退出图书管理系统n”);printf(“tt*********************************************n”);printf(“ttPlease Enter Choose: ”);fflush(stdin);scanf(“%d”,&a);switch(a){ case 1:

putin();

break;case 2:

lookup();

break;case 3:

search();

break;case 4:

del();

break;case 5:

update();

break;case 0:

printf(“nn退出nn”);

break;default:

printf(“n序号不对n”);} }while(a!=0);save();return 0;}(2)运行结果:

在codeblocks中编译、运行目标程序后,进入到主界面,显示如图1:

进入主界面后,显示信息选择操作,根据相应序号选择相应操作,输入1后进入图书信息录入选项,按顺序录入相应信息,完成后按1继续录入,按0结束录入,显示如图2:

按0返回主界面,进入到信息浏览界面,可查看已录入的全部图书信息(下图中只录入一本图书信息),查看结束后按任意键返回主界面,显示如图3:

根据选项进入信息查询界面,有两个选择,分别为根据书名和根据作者,按1进入根据书名进行查询,可显示相应图书信息,显示如图4:

根据作者进行查询,以查询无果为例,显示cannot found!显示如图5:

按5进入图书信息修改界面,输入序号显示图书信息并进行修改,按顺序依次修改信息(目前无法对单独某一条信息进行修改),显示如图6:

按4进入信息删除界面,输入相应序号后显示删除成功,按任意键返回,显示如图7:

在信息删除界面中,输入序号,如果没有存储该序号图书信息,显示cannot found!显示如图8:

6.课程设计总结:

在课程设计过程中,由于对代码和各种概念不是很清楚,所以对结构体变量的引用非常生疏。在调试程序的过程中,也存在许多问题,最后一一修改。通过自己对书本知识一遍又一遍的复习,自己感觉做系统不再那么的复杂,包括框架的建立,界面设计,调用函数等等。经过一个星期的锻炼,自己感觉到了明显的提高,以后还需多练习,多锻炼,加强对C语言综合知识的理解与应用。

请老师审阅我的课程设计报告。谢谢

软件学院

1522班

韩汀

201515614100

2.课设小结 篇二

和以前做过的课程设计一样,经过两周的课程设计和学习巩固过程,我充分认识到理论联系实际能力的重要性。另外还让我知道设计过程中应自始至终持有严谨的科学态度,不能存有一丝的侥幸心理。首先设计中发现自己的理论知识掌握的不牢固。其次就是在设计过程中出现了很多问题,但是自己不会具体情况具体分析。本次工程实践就是利用THJ-4型过程控制实验装置为硬件基础做锅炉内胆水温控制系统实验分析,采用MCGS组态软件在上位机实现显示和控制。通过本次工程实践,来熟悉工业过程控制的控制流程以及其控制原理。

同学的帮助在为期一周的课设候中有至关重要的作用。因为一个人的能力是有限的。在同学的点滴帮助下不断的自我完善,从而达到目的。

3.数电课设 篇三

课程名称: 数字电电子技术基础 题 目: 设计任意模值计数器 院(系): 信息与控制工程系 专业班级:电子信息科学与技术1202班 姓 名: *** 学 号: 201206030226 指导教师: ***

2015年 1月 9日

摘 要

计数器作为一种工具出现在我们生活中的各种场合。这次课程设计中我们利用两块74LS160与一些门电路异步级联构成一个模100 的计数器,再用清零法实现60进制的计数器 通过对60进制计数器的设计使我将以前所学的理论知识运用到实际中去,使用Multisim11.0软件进行仿真,使我找到了很多以前没有完全理解的知识,通过多次查找资料,了解了大量的关于计数器的知识。通过导教师指导下完成60进制计数器设计任务,编写符合要求的设计说明书,并正确绘制相关图表。在课程设计中,应综合运用多种学科的理论知识与技能,分析并解决课程设计上的问题。通过这次课程设计了解到了74LS160芯片功能以及其连接方式。用其做出的计数器满足我们初始要求的条件。

关键词:计数器,74LS160,仿真

目 录

1设计任务………………………………………第1页 3电路设计………………………………………第4页 4整体电路图仿真测试及性能检测……………第4页 5收获与心得……………………………………第6页 6参考书目………………………………………第8页

设计任意模值的计数器

1.设计任务

用74LS160实现六十进制计数器,并用逻辑分析仪观测输出、进位输出和时钟脉冲。设计目的

熟悉同步计数器的工作原理

掌握同步计数器的应用

2.设计方案

2.1 设计论证

2.1.1 计数器

计数器不仅能用于对时钟脉冲的技术,还可以用于分额、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。

计数器种类非常繁多。按计数器中的触发器是否同时翻转分类,可以讲计数器分为同步式和异步式两种。在同步计数器中,当时钟脉冲输入时触发器的翻转是同时发生的。而在异步计数器中,触发器的翻转有先有后,不是同时发生的。

按计数过程中计数器的数字增减分类,又可以将计数器分为加法计数器、减法计数器和可逆计数器。随着计数器脉冲的不断输入而作递增计数的称为加法计数器,作为递减计数的称为减法计数器,可增可减的成为可逆计数器。

按计数器的编码方式分类,还可以分成二进制计数器、二-

十进制计数器、格雷码计数器等 2.1.2 异步时序电路

电路特点是所有触发器的CP端不使用同一时钟脉冲信号源,即各触发器状态是异步完成的由于各触发器没有使用相同的时钟信号,因此,每次电路状态发生转换时并不是所有触发器状态都发生变化,只有那些有时钟信号到达的触发器才会发生状态变化,因此,在分析脉冲异步时序电路时,需要找出每次电路状态转化是那些触发器有时钟信号,那些触发器没用时钟信号 2.1.3 74LS160 74LS160是一个具有异步清零、同步置数、可以保持状态不变的四位十进制上升沿计数器。

这种同步可预置十进计数器是由四个D型触发器和若干个门电路构成,使得当计数使输入和内部门发出指令时输出变化彼此协调一致而实现同步工作。这种工作方式消除了非同步(脉冲时钟)计数器中常有的输出计数尖峰。缓冲时钟输入将在时钟输出上升沿触发四个触发器。这种计数器是可全编程的,即输出可预置到任何电平。当预置是同步时,在置数输入上将建立一低电平,禁止计数,并在下一个时钟之后不管使能输入是何电平,输出都与建立数据一致。清除是异步的(直接清零),不管时钟输入、置数输入、使能输入为何电平,清除输入端的低电平把所有四个触发器的输出直接置为低电平。

2.2 设计思路

1)每隔1s,计数器增1;能以数字形式显示时间。

2)当定时器递增到59时,定时器会自动返回到0显示,然后继续计时。

3)本设计主要设备是两个74LS160异步十进制计数器,并且由300HZ,5V电源供给。

2.3 设计方案

本电路采用两块74LS160通过异步级联构成模100计数器,然后用清0法实现60进制计数器。74LS160是一个具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器。

使用300HZ,5V电源作为计数器的输入信号。根据设计基理可知,计数器初值为00,按递增方式计数,增到59时,再自动返回到00。此电路可以作为简易数字时钟的分钟显示。

在60进制的10位部分我们用一个74LS160做6进制计数器因为六进制计数器的有效状态有六个,而十进制计数器的有效状态有十个所以用十进制计数器构成六进制计数器时,我们只需保留十进制计数器的六个状态即可。74LS160的十个有效状态是BCD编码的,即0000、0001、0010、0011、0100、0101、0110、0111、1000、1001因为74LS160从1001变化到0000时,将在进位输出端产生一个进位脉冲,所以我们保留了0000和1001这两个状态后,我们就可以利用74LS160的进位输出端作为六进制计数器的进位输出端了。于是,六进制计数器的状态循环可以是0000、0001、0010、0011、0100和1001,也可以是0000、0101、0110、0111、1000和1001。我们不妨采用0000、0001、0010、0011、0100和1001这六个状态用一个混合逻辑与非门构成一个译码器74LS160的状态为0100时,与非门输出低平,这个低电平使74LS160工作在预置数状态,当下一个时钟脉冲到来时,由于等于1001,74LS160就会预置成1001,从而我们实现了状态跳跃。

3.电路设计

用两块74LS160、与非门、5V 300HZ 电源、指示器连接构成电路图如图1

图1设计60进制电路图

4.整体电路图的仿真测试及性能检测

1仿真电路元件放置

1)进入Multisim11.0界面(图2)

图2 Multisim11.0界面

2)右键点击空白处,选择放置零件,进入元件放置界面,选择合适的零件放置

3)依次放置元件 得到下面电路(图3)

图3 电路图仿真

4)确认没有错误,后点击仿真按钮,实现对电路的仿真 5)观察结果与理论分析的预测结果是否一致

图4 仿真结果最大值

图4 仿真结果最小值

2性能指标测量及记录

图5 逻辑分析仪结果图

5.收获与心得体会

这两个星期的课程设计,在设计中我们运用课程所学知识,查阅资料 找寻论证在老师的帮助下完成了这次课程设计 本设计具有直观的图形界面。整个操作界面就像一个电子实验工作台,绘制电路所需的元器件和仿真所需的测试仪器均可直接拖放到屏幕上,轻点鼠标可用导线将它们连接起来,软件仪器的控制面板和操作方式都与实物相似,测量数据、波形和特性曲线如同在真实仪器上看到的。它们利用仿真产生的数据执行分析,分析范围很广,并可以将一个分析作为另一个分析的一部分的自动执行。兼容性好的信息转换,提供了转换原理图和仿真数据到其他程序的方法,本设计原理简单,结构清晰,较为容易仿真成功。

从本次课程设计中使我获益匪浅,首先使我们对数电这门课程有了更深的体会,通过这次课程设计使我了解到我们学的只是最简单的数字电路。通过对60进制计数器的设计使我们将以前所学的理论知识运用到实际中去,使用Multisim11.0软件进行仿真,使我们找到了很多以前没有完全理解的知识,通过再次查找资料,我们又学会了很多。在实际的操作过程中,能把理论中所学的知识灵活地运用起来,并在调试中会遇到各种各样的问题,电路的调试提高了我们解决问题的能力,学会了在设计中独立解决问题,也包括怎样去查找问题。

通过这次课程设计我学习到对问题的处理 解决问题的方式 提高了我们对电路的认识,使我们在以后的设计中有一种严谨的态度,遇到问题时不慌不乱,查阅资料解决问题。认识到电路的深奥 参考书目:

4.课设总结之导演 篇四

在本次的新闻拍摄中,我担任组长及导演一职,拍摄了访谈及事件的新闻,这对我们来说是一次比较好的锻炼,同时是对我们团队精神的磨砺。拍摄事件新闻是对长春一家人敬老院进行的采访并做了新闻事件的总结,有出镜记者,摄像,后期人员,大家都努力的去做,在这次的过程中我们都一起想主题,人尽其才,物尽其用。在访谈中,大家都积极的去了解老人们的生活,并跟他们进行交流,队院长和院长夫人进行深度的沟通,了解到他们创办敬老院的初衷,并为什么能努力的做下去,十分令人感动,还能让观众在这些新闻中了解到孤寡老人的生活。组员们都做了很大的努力。

还有是个人访谈新闻的拍摄与剪辑,访谈新闻是对某一个人的大学生活的采访,在大学里过的怎么样,在大学里对自己的人生是如何去看待的,并展望一下自己的未来,对一个人的生活的点点滴滴进行了很多的记录,加上了其他人对她的看法,并对她进行了采访,在采访中设置的问题也是对她的性格的分析,她代表了一部分大学生的想法,当然她的生活也会让我们有所向往,是一个对生活很有调理与想法的人。

5.数电课设报告 篇五

学生姓名:姓名专业班级:电信1204

指导教师:曾 刚工作单位:信息工程学院

题目:加减法运算电路

初始条件:

具备电子电路的基础知识和设计能力;具备查阅资料的基本方法;熟悉常用的电子器件;熟悉电子设计常用软件的使用;

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1、设计并行加减运算电路;

2、led灯显示结果,按键控制运算模式;

3、内部具有两个寄存器;

4、掌握数字电路的设计及调试方法;

5、撰写符合学校要求的课程设计说明书。

时间安排:

时间一周,其中2天原理设计,3天电路调试

指导教师签名:年月日

系主任(或责任教师)签名:年月日

摘要(黑体小二号字)

叙述部分宋体小四号字

关键词:2到3个,用分号隔开

目录(黑体小二)

(ps:下边的题目是我的,你们把你们的每部分题目更换进去就行了)

1.概述···························································2

2.设计原理

2.1.设计原理框图············································3

2.2.设计原理说明············································3

3.电路设计

3.1.寄存器电路设计·········································4

3.2.加法电路设计············································4

3.3.减法电路设计············································7

3.4.译码显示电路设计·······································8

4.电路仿真及调试

4.1.电路仿真总图···········································10

4.2.加法仿真结果图········································10

4.3.减法仿真结果图········································10

6.单片机课设 篇六

单片机课程设计报告

题 目: 简易电子时钟

评 分

专业: 自动化 班级: 15级自动化一班 姓名: 黎泽钧 同组队员: 郑立涵、曾迪濠、佘庭枫、李明志、方昊辉

学号/座位序号: 201510087034

日 期: 2017 年 03 月

一、设计目的

通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解并灵活运用。

二、设计要求和方案选择

1.设计要求:

(1)通过程序直接对实时时钟时间进行设置,启动时钟运行。用8位数码管显示。

(2)通过按钮对实时时钟时间进行设置,使时钟能正常运行。(3)其他发挥功能。2.设计方案的选择

(1)计时方案

方案1:采用现成实时时钟芯片

使用一些实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时等功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这类专用芯片来实现实时时钟功能。

方案2:使用单片机内部的可编程定时器

利用单片机内部的定时计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案优点是节省硬件成本,可以利用程序代替。缺点是程序设计相对微型控制器时钟电路声光报时校时输入数据显示较为复杂,精确度不高,同时还可能会和延时冲突,导致显示效果不佳。

鉴于以上原因,我们采用了方案二,使用了单片机内部的可编程定时器。(2)显示器件的选择与对比

方案一:采用LED数码管显示。

LED显示器可以分为有静态显示方式和动态显示方式两种。静态显示就是当数码管显示某个字符时,相应的段恒定的导通,直到要显示下一个字符为止。数码管工作在静态显示方式时,共阴极COM端要接地;若为共阳极COM端接在+5V电源。每位的段选线应分别与一个8位数据口的输出端相连,数码管的各位是相互独立的,且要显示字符一经确定,相应数据的输出将必须维持不变。静态显示数码管一直在工作,因而数码管静态显的亮度较高。在这种显示方式编程比较容易,管理也较简单,但占用I/O口线资源较多,因而在显示位数较多的情况下,我们大都都采用数码管动态显示方式进行显示。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用LCD显示。

LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于一般的段式液晶屏,需要专门的驱动电路,而且也经显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行机接口,对于微处理器的接口要求较高,占用资源多。另外,89C52本身没有专门的液晶驱动接口。

鉴于上述原因,我们采用方案一,采用了数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜、功耗低、驱动简单等优点。

三、硬件部分

1.STC89C52单片机(1)结构

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

同时具有以下标准功能: 8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。(2)主要特性

8K字节程序存储空间; 512字节数据存储空间; 内带4K字节EEPROM存储空间;可直接使用串口下载;(3)器件参数

1.增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.2.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作 频率可达48MHz 4.用户应用程序空间为8K字节 5.片上集成512 字节RAM 6.通用I/O 口(32 个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片

8.具有EEPROM 功能

9.共3 个16 位定时器/计数器。即定时器T0、T1、T2 10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒

11.通用异步串行口(UART),还可用定时器软件实现多个UART 12.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)13.PDIP封装

STC89C52单片机的引脚如图所示:

2.时钟电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。如图所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。

内部时钟电路如图所示,在XTAL1和XTAL1引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件是石英晶体和电容组成的并联谐振回路,晶体振荡器选择11.0532MHz,电容采用30PF。

3.按键输入电路

独立式按键采用每个按键单独占有一个I/O口的结构,这是最简单的键盘输入设计。当按下和释放按键时,输入到I/O口端的电平是不一样的,单片机程序根据不同端口的电平变化判断是否有键按下以及是哪一个键被按下。独立式键盘的原理简单,每个按键的电路是独立的,占用一条数据线。

LED数码管电路

LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。

四、软件设计

#include unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};//显示0~f,最后一位为无显示 Unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数码管位置

unsigned char dispbuf[8]={0,0,16,0,0,16,2,1};unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void main(void){ TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1){ if(P0_0==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_0==0){ second++;if(second==60){ second=0;} dispbuf[0]=second%10;dispbuf[1]=second/10;while(P0_0==0);} } if(P0_1==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_1==0){ minite++;if(minite==60){ minite=0;} dispbuf[3]=minite%10;dispbuf[4]=minite/10;while(P0_1==0);} } if(P0_2==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_2==0){ hour++;if(hour==24){ hour=0;} dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);} } } } void t0(void)interrupt 1 using 0 {

mstcnt++;if(mstcnt==8){ mstcnt=0;

P3=0xff;//关闭所有显示

P1=dispcode[dispbuf[dispbitcnt]];P3=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt==8){ dispbitcnt=0;} } tcnt++;if(tcnt==4000){ tcnt=0;second++;if(second==60){ second=0;minite++;if(minite==60){ minite=0;hour++;if(hour==24){ hour=0;} } } dispbuf[0]=second%10;dispbuf[1]=second/10;dispbuf[2]=17;dispbuf[3]=minite%10;dispbuf[4]=minite/10;dispbuf[5]=17;dispbuf[6]=hour%10;dispbuf[7]=hour/10;} }

五、调试及运行结果

六、总结(感想和心得等)

7.运筹课设心得 篇七

通过这次的课设,发现了自己的很多的不足,自己知识的很多的漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

这次的课程设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。团结协作是我们成功的一项非常重要的保证,而这次设计也正好锻炼我们这一点,这也是非常宝贵的。最让我收获巨大的是,从这门课设中我学会了如何运用lingo来求解,在做课设的过程中遇到了很多的困难,在不断的请教和研究下终于得到了答案,我觉得从失败中获得成功的那份喜悦比在一直顺利的情况下更让人欣慰。

对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

8.Protel课设-交通灯 篇八

Protel应用课设任务书

学生姓名: 专业班级: 指导教师: 工作单位: 武汉理工大学 题

目: 交通灯控制电路印制板图的设计

一、训练目的

主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。

二、训练内容和要求

1、基础课程和基本技能强化训练(1)设计一个交通灯控制电路;

(2)对所设计电路的基本原理进行分析;

2.绘制具有一定规模、一定复杂程度的电路原理图*.sch(自选)。可以涉及模拟、数字、高频、单片机、或者一个具有完备功能的电子电路系统。

3.绘制相应电路原理图的双面印刷版图*.pcb对电路原理图进行仿真,给出仿真结果(如波形*.sdf、数据)并说明是否达到设计意图。

四、初始条件

计算机;Microsoft Office Word 软件;PROTEL软件

五、时间安排1、2013年 6月 26日集中,作基础强化训练具体实施计划与报告格式要求的说明;学生查阅相关资料,学习电路的工作原理。

2、2013 年 6 月27 日,电路设计与分析。

3、2013年 6 月 27日至2010 年6 月 30日,相关电路原理图和PCB版图的绘制。

4、2013年7 月 2 日上交基础强化训练成果及报告,进行答辩。

指导教师签名:

****年**月**日 系主任(或责任教师)签名:

****年**月**日

I

武汉理工大学《Protel应用》课程设计报告书

目录

摘要......................................................................................................................................................................1 Abstract..............................................................................................................................................................2 1 Protel简介........................................................................................................................................................3

1.1 Protel的发展历程.............................................................................................................................................................3 1.2 Protel 99 SE简介...............................................................................................................................................................3 1.3 Protel dxp 2004简介........................................................................................................................................................5 2单元电路设计...................................................................................................................................................6

2.1单片机最小系统.................................................................................................................................................................6 2.2数码管模块...........................................................................................................................................................................7 2.3 LED信号灯模块.................................................................................................................................................................7 2.4 独立按键模块.....................................................................................................................................................................8 3总电路图...........................................................................................................................................................9 4 绘制电路的原理图(SCH)........................................................................................................................10

4.1 原理图的设计流程........................................................................................................................................................10 4.2 原理图的设计..................................................................................................................................................................11

4.2.1创建一个项目............................................................................................................................11 4.2.2 创建原理图文件.......................................................................................................................11 4.2.3 加载元件库...............................................................................................................................11 4.3 原理图的编辑与调整.....................................................................................................................................................12

4.3.1放置导线及电源端子...............................................................................................................12 4.3.2 标识元件..................................................................................................................................12 4.4 原理图的检查....................................................................................................................................................................12 5绘制印刷电路版图(PCB).........................................................................................................................14

5.1 PCB的设计流程...............................................................................................................................................................14 5.2 双面PCB设计.................................................................................................................................................................15

5.2.1 文件链接与命名......................................................................................................................15 5.4.2设置电路板的禁止布线区域...................................................................................................15 5.4.3数据的导入...............................................................................................................................15 5.4.4元器件的自动布局...................................................................................................................15 5.4.5自动布线...................................................................................................................................16 5.4.6手工调整布线...........................................................................................................................16 5.4.7设计规则DRC检查.................................................................................................................17 5.3PCB设计结果....................................................................................................................................................................17 6仿真部分.........................................................................................................................................................19

6.1 proteus软件介绍............................................................................................................................................................19 6.2仿真结果.............................................................................................................................................................................20 7总结及心得体会.............................................................................................................................................22 参考文献............................................................................................................................................................23 附录....................................................................................................................................................................24

II

武汉理工大学《Protel应用》课程设计报告书

摘要

随着城市化的推进,我们对交通工具的要求越来越高,希望舒适快速的交通,可是快速加快的交通负荷也给尘世交通出了比较难题,我们不难发现现在城市交通问题日益凸显严重,尤其在城市街道的十字叉路口,频繁发生交通事故,为了保证交通秩序和行人安全,交通部门在每条街上都安装了一组红、黄、绿交通信号灯。

电子工业的飞速发展和电子计算机技术的广泛应用,促进了电子设计自动化技术日新月异。特别是在20世纪初80年代末期,由于电子计算机操作系统Windows的出现,引发了计算机辅助设计(CAD)软件的一次大的变革,纷纷臣服于Microsoft的Windows风格。并随着Windows版本的不断更新,也相应的推出新的CAD软件产品。在电子CAD领域,Protel Technology(Altium的前身)公司在EDA软件产品的推陈出新方面扮演了一个重要角色。

此次十字路口交通管理控制器的设计是基于Protel dxp 2004,设计共分为3个大的部分,原理图设计,PCB设计和电路的仿真。关键字:Protel 交通灯 PCB

武汉理工大学《Protel应用》课程设计报告书

Abstract Along with the advancement of urbanization, to transport demand is higher and higher, we hope to comfortable and fast traffic, but rapidly accelerate the traffic load and traffic to the world out of the more difficult problem, it is not hard to find now urban transport problems highlighted increasingly serious, especially in the cross in the city street intersections, traffic accidents occur frequently, in order to ensure the safety of the pedestrians and traffic order, transport department on every street have installed a set of red, yellow and green traffic lights.With the rapid development of electronic industry and the wide application of computer technology, electronic design automation technology for the ever-changing.Especially in the early 20th century, late 80s, due to the emergence Windows computer operating system.The intersection traffic management controller design is based on protel dxp 2004, the design is divided into three major parts, schematic design, PCB design and circuit simulation.In the design process, Altium Designer schematic drawing of a strong function of PCB design and lay a good foundation.In particular, its board 3D renderings, but also for the preview and the error correction circuit for a lot a lot of convenience.Key words: Protel PCB traffic lights

武汉理工大学《Protel应用》课程设计报告书 Protel简介

1.1 Protel的发展历程

随着电子工业的飞速发展和电子计算机技术的广泛应用,促进了电子设计自动化技术日新月异。特别是在20世纪初80年代末期,由于电子计算机操作系统Windows的出现,引发了计算机辅助设计(CAD)软件的一次大的变革,纷纷臣服于Microsoft的Windows风格。并随着Windows版本的不断更新,也相应的推出新的CAD软件产品。在电子CAD领域,Protel Technology(Altium的前身)公司在EDA软件产品的推陈出新方面扮演了一个重要角色。从1991年开始,先后推出的EDA软件版本有Protel SE For Windows 98;在2001年8月Protel Technology公司更名为Altium公司,并在2002年该公司有推出了Protel DXP For Windows XP/2000电路板设计软件平台,简称Protel 2004。

2006年初,Altium公司推出了附有该公司名称的EDA软件Altium designer 6。这款版本除了全面覆盖和涵盖了Protel 99 SE、Protel 2004在内的之前一系列版本的功能和优点以外,还增加了许多功能。在此基础上,该公司又做了较大的6次更新和改进。

1.2 Protel 99 SE简介

Protel99SE是Protel公司在80年代末推出的EDA软件,应用广泛功能强大,是个完整的板级全方位电子设计系统。它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能。可见Protel 99 SE不仅在绘制原理图、PCB版布局布线等方面功能更加完善,而且为用户提供功能强大、使用方便的仿真器,它可以对当前所画的电路原理图进行即时仿真,因此在电路的整个设计周期都可以仿真查看和分析其性能指标,以便及时发现设计中存在的问题并加以改正,从而更好的完成电路设计。

Protel99se软件中提供了SIM99se数模混合仿真器集成软件可以对许多电子线路进行模拟设计,模拟运行,反复修改。提供了接近6000个仿真元件和大量的数学模型,可以对电工电路,低频电子线路、高频电子线路和脉冲数字电路在一定范围内进行仿真分析。仿真结果以多种图形方式输出,直观明了,可以单图精细分析,也可以多图综合比较分析、并可通过不同的角度进行分析,以获得对电路设计的准确判断。Protel 99 se仿真方面其具有的特点有:

武汉理工大学《Protel应用》课程设计报告书

强大的分析功能用户可以根据Protel99SE电路仿真器所提供的功能,分析设计电路的各方面性能,如电路的交直流特性、温度漂移、噪声、失真、容差、最坏情况等特性。

丰富的信号源其中包括基本信号源:直流源、正弦源、脉冲源、指数源、单频调频源、分段线性源,同时还提供了齐全的线性和非线性受控源。

充分的仿真模型库Protel99SE提供了20多个模拟和数字仿真元件库,共包含6000多个常用元器件。这些组件库包括了常用二极管、三极管、单结晶体管、变压器,晶闸管、双向晶闸管等分立组件,还有大量的数字器件和其它集成电路器件。同时Protel99SE提供了一个开放的库维护环境,允许设计者改变原有器件模型,也可创建新器件模型。

友好的操作界面(1)无需手工编写电路网表文件。系统将根据所画电路原理图自动生成网表文件并进行仿真。(2)通过对话框完成电路分析各参数设置。(3)方便地观察波形信号。可同时显示多个波形,也可单独显示某个波形;可对波形进行多次局部放大,也可将两个波形放置于同一单元格内进行显示并分析比较两者的差别。(4)强大的波形信号后处理,可利用各种数学函数对波形进行各种分析运算并创建一个新的波形。(5)方便地测量输出波形。Protel99SE提供了两个测量光标,打开它们可测量波形数据。

武汉理工大学《Protel应用》课程设计报告书

1.3 Protel dxp 2004简介

Altium公司作为EDA领域里的一个领先公司,在原来Protel 99SE的基础上,应用最先进的软件设计方法,率先推出了一款基于Windows2000和Windows XP操作系统的EDA设计软件Protel DXP。Protel DXP在前版本的基础上增加了许多新的功能。新的可定制设计环境功能包括双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。Protel DXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。Protel DXP运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP提供了全面的设计解决方案。

Protel DXP2004是Altium公司于2004年推出的最新版本的电路设计软件,该软件能实现从概念设计,顶层设计直到输出生产数据以及这之间的所有分析验证和设计数据的管理。当前比较流行的Protel 98、Protel 99 SE,就是它的前期版本。

Protel DXP 2004已不是单纯的PCB(印制电路板)设计工具,而是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印制电路板)设计、Auto Router(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。

与较早的版本——Protel99相比,Protel DXP 2004不仅在外观上显得更加豪华、人性化,而且极大地强化了电路设计的同步化,同时整合了VHDL和FPGA设计系统,其功能大大加强了。

武汉理工大学《Protel应用》课程设计报告书

2单元电路设计

2.1单片机最小系统

AT89S52芯片只需外加晶振、供电电路与复位电路即可构成最小系统,仿真时电源部分隐藏,晶振选择12M满足要求,其最小系统图如图2.1:

图2.1 AT89S52最小系统图

AT89S52主要性能

与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器[1]、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。

武汉理工大学《Protel应用》课程设计报告书

2.2数码管模块

在电路设计中,采用四个二位八段共阳数码管,因为数码管内阻影响,导致单片机I/O口输出的5V电压被拉低,因此需要加入驱动电路,在此选择2N3906 PNP型三极管,数码管的八个输入口有单片机的P2口控制。数码管模块电路如图2.2所示。

图2.2 二位共阳数码管

2.3 LED信号灯模块

在电路设计中,需要用LED灯模拟红绿信号灯,分别采用红、黄、绿三色LED灯进行显示,通过P0^0--P0^5口控制LED的亮灭,由于单片机的P0口为集电极开路门,所以在使用时需要接上拉电阻接电源。LED电路模块如图2.3所示:

武汉理工大学《Protel应用》课程设计报告书

图2.3 LED电路模块

2.4 独立按键模块

本电路在设计中需要设置特殊状态,即禁止单个方向通行,所以要用到独立按键,在设计时,通过按键来停止定时器,同时将数码管显示“00”,指定方向亮红灯禁止通行。按键模块设计比较简单,通过按下按键将P3^2和P3^2置低,系统检测到低电平信号后立即响应相关的操作。按键模块如图2.4:

图2.4 独立按键模块

武汉理工大学《Protel应用》课程设计报告书

3总电路图

在电路设计中,由于四个方向的倒计时相同,相对面的方向LED灯显示状态相同,所以在仿真时,只采用一组数码管和LED灯进行相关仿真,便于操作与观察,仿真成功后转入实物连接,最终成功将实物制作完成。总的电路图如图3.1所示。

图3.1 总电路图

武汉理工大学《Protel应用》课程设计报告书 绘制电路的原理图(SCH)

4.1 原理图的设计流程

开始加载元件库启动原理图编辑器放置元器件创建一个项目原理图的编辑与调整创建原理图文件原理图的检查设置图纸规格原理图的报表设置原理图编辑器参数原理图的输出结束图 4.1 原理图的设计流程图

武汉理工大学《Protel应用》课程设计报告书

4.2 原理图的设计

4.2.1创建一个项目

1.启动Protel dxp 2004 系统。

2.执行菜单命令【file】/【new】/【PCB Project】,弹出项目面板。

3.执行菜单命令【file】/【Save Project】,在弹出的保存文件的对话框中输入文件名“十字路口交通管理控制器”,保存。

4.2.2 创建原理图文件

1.执行菜单命令【file】/【new】/【Schematic】,在项目“十字路口交通管理控制器”中创建一个原理图文件。

2.执行菜单命令【file】/【Save】,在弹出的对话框中输入文件名“十字路口交通管理控制器”,保存。

4.2.3 加载元件库

执行菜单命令【design】/【Add/Remove Library】,单击Install按钮添加所需要的元件库。

武汉理工大学《Protel应用》课程设计报告书

4.3 原理图的编辑与调整

4.3.1放置导线及电源端子

1.执行菜单命令【Place】/【Wire】或单击布线工具栏的放置导线按钮,当光标中心的“X”号变为一个红色“米”字形符号,表示导线的端点与元器件引脚的电气连接点可以正确连接。

2.单击工具栏的电源按钮,光标上出现一个网络标号“VCC”(GND)的“T”型电源符号,放置在原理图中。

4.3.2 标识元件

可以选用手动标识或者是自动标识元件。自动标识时,执行菜单命令【Tools】/【Annotate/Schematics Quietly„】,系统及完成对当前原理图的自动标识。

4.4 原理图的检查

原理图绘制完成后,要进行检查。因为原理图与其他的图不同,不是简单的电路的点和线,而是代表着实际的电器元件和它们之间的相互连接。因此,它们之间不仅仅具有一定的拓扑结构,还必须遵循一定的电气规则(Electrical Rules)。

电气规则检查(ERC)是进行电路原理图设计过程中非常重要的步骤之一;原理图的电气规则检查是发现一些不应该出现的短路、开路、多个输出端子短路和未连接的输入端子等。

电气规则检查还对原理图中所用元件里,若有元件输入端有定义,则对该元件的输入端进行是否有信号源的检查,若没有直接信号源,系统会提出警告。做好的办法就是在该端放置“NO ERC”。

在Altium designer中,首先要进行编译参数的设置,包括错误报告类型的设置,电气连接矩阵的设置、类型设置、比较器设置和设置输出路径及网络设置。

当完成编译参数设置后,就可以对项目进行编译了。Altium designer为用户提供了两种编译,一种是对原理图的编译,另一种是对工程项目进行编译。无论哪种编译,编译后系统都会通过信息面板给出一些错误信息或警告。没有错误信息或者是放置了“NO ERC” 标志,信息面板是空的。

武汉理工大学《Protel应用》课程设计报告书

如果出现了错误信息,可以通过单击错误信息指针,弹出编译错误面板,双击面板上的错误选项,系统会自动定位错误元件。编辑改正所有的错误后,得到最终的原理图如图4.2所示。

图 4.2 十字路口交通管理控制器总原理图

可以看出,图4.2所示原理图,线路较为复杂。因此,可以采取以下方法对原理图进行改进。可以将原理图分成控制器部分、定时部分、数码管显示部分和时间预置和调整等5个部分,各部分通过网络标号相互连接。

武汉理工大学《Protel应用》课程设计报告书

5绘制印刷电路版图(PCB)

5.1 PCB的设计流程

开始设置布线规则准备原理图自动布线规划印刷电路板手工调整设置环境参数敷铜导入数据DRC检查设定工作参数输出文件元件布局结束图 5.1 PCB的设计流程图

武汉理工大学《Protel应用》课程设计报告书

5.2 双面PCB设计

5.2.1 文件链接与命名

1.引入设计项目

执行菜单命令【File】/【Open Project…】,引入设计项目。2.建立空白PCB文件 执行菜单命令【File】/【New】/【PCB】,即可完成PCB文件的建立。

3.命名PCB文件 在PCB编译环境中,执行菜单命令【File】/【Save As…】将“PCB1”更名为“交通灯”。

4.移出文件 如果要将某个文件从项目中移除,在Projects面板的工作区中右击该文件,在弹出的菜单中执行移出命令即可。

5.4.2设置电路板的禁止布线区域

1.在PCB编辑器工作状态下,设定当前的工作层面为“Keep-Out Layer”。2.确定电路板的电器边界。执行菜单命令【Place】【Line】,光标变为十字状。3.将光标移到工作窗口中的适当位置,确定一边界的起点。然后拖动光标至某一点,再确定电器边界一边的终点。

5.4.3数据的导入

1.在原理图编辑器中,选择菜单命令【Design】/【Import Changes From[十字路口交通管理控制器.PrjPcb]】.2.选择“生效更改”,系统会对所有的元件信息和网络信息进行检查。单击“执行更改”,若没有错误,所有的元件和飞线会自动加入到PCB文件中的元件空间中。若有错误,则需要进行相应的改正。

5.4.4元器件的自动布局

1.在PCB编辑器中,执行菜单命令【Tools】/【Comment Placement】,选择所需要的布局方式。

2.执行菜单【Auto Placer】命令,在弹出的对话框中选择元件自动布局的方式。

武汉理工大学《Protel应用》课程设计报告书

3.设置元件的自动布局参数。

在Altium Designer中可以进行元件封转的调换,无论是在PCB或者是原理图的编辑过程中均可以实现。在项目设计的过程中,可以进行PCB与原理图的双向更新,以方便的实现对原理图或电路板中的某些参数进行修改,如元件的标号、封装等。通过双向更新,修改状况就会同时反映到电路板和原理图中去。

图 5.2 出现在元件空间的PCB 5.4.5自动布线

1.执行菜单命令【Auto Route】,选择自动布线的方式。

2.对于双层电路板,单击“全局布线”按钮即可进入自动布线状态,可以看到PCB上自动布线的全过程,同时显示相应的信息框。

5.4.6手工调整布线

1.手工布线

1)启动导线放置命令,光标变为十字状,表示出于导线放置模式。可以开始手工布线。

2)在布线时按小键盘上的“*”键可以切换到布线层,同时自动放置过孔。3)按步骤一移动光标到要画线的位置单击,确定导线的第一个点,移动光标到合适的位置再单击,固定一段导线,从而放置一段导线。

2.加补泪滴

在导线与焊盘或导孔处有一过渡段,使过度的地方变成泪滴状,可以避免在钻孔时导

武汉理工大学《Protel应用》课程设计报告书

线与焊盘的接触点出现应力集中二是接触处断裂。3.放置敷铜

放置敷铜市将电路板空白的地方用敷铜铺满,主要目的是要提高电路板的抗干扰能力。通常将敷铜与地相接,这样电路板空白的地方就铺满了接地的敷铜,电路板的抗干扰能力就会大大提高。

5.4.7设计规则DRC检查

对布线完毕后的电路板进行DRC检查,可以确保PCB完全符合设计者的要求,即所有的网络均已正确连接。具体步骤如下:

1.执行菜单命令【Tools】/【Design Rules Check„】,单击对话框中的“Electrical”选项,弹出在线检查一并检查对话框。

2.勾选相应的选项,单击运行,即可进行DRC检查,其结果或反映在信息面板中。如果选中了生成报告文件,设计检查结束后,会生成一个有关短路检测、断路检测、安全间距检测、一般线宽检测、过孔内径检测等项目情况报表。

5.3PCB设计结果

1.自动布线后的PCB

图 5.3 自动布线后PCB图

武汉理工大学《Protel应用》课程设计报告书

2.改进后的PCB

(1)

(2)

图 5.4 改进后的PCB

武汉理工大学《Protel应用》课程设计报告书

6仿真部分

6.1 proteus软件介绍

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision4等软件。

④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

武汉理工大学《Protel应用》课程设计报告书

6.2仿真结果

仿真结果见图6.1所示。

图6.1 电路仿真图

电路部分模块的仿真图如图6.2和6.3所示。

图6.2 LED模块仿真图

武汉理工大学《Protel应用》课程设计报告书

图6.3 数码管模块仿真图

武汉理工大学《Protel应用》课程设计报告书

7总结及心得体会

这次课程设计使我学会了使用一个新的软件Protel dxp 2004,同时也是我进一步熟悉了Protel 99SE。整个过程中首先对电路设计有了更深的了解,因为制作本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对Protel的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;以前的模数电实验只是针对某一个小的功能设计,而此次课程设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计。电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

通过此次课设,我深深地认识到了Protel的强大功能。Altium designer通过把电路图设计、PCB绘制编辑、电路的仿真、FPGA应用程序的设计和设计输出等技术的完美融合,为用户提供了全线的设计解决方案,使用户可以轻松地进行各种复杂的电子电路设计工作。尤其是其强大的绘制原理图和PCB的功能,更是给我留下了深刻地印象。

在此次课程设计过程中,我曾遇到了不少问题,如软件仿真时的问题,这也是我此次课程设计所花费时间最多的地方。但通过解决这些问题,我学到了很多东西,收获颇丰。

武汉理工大学《Protel应用》课程设计报告书

参考文献

【1】Protel99 入门与提高.赵品编著.人民邮电出版社.2000.11参考书: 【2】Protel99 高级应用.赵品编著.人民邮电出版社.2000.11 【3】Protel 99 SE电路设计与仿真应用

【4】《集成电子电路制作精制精讲》 阳鸿钧等 编著 中国电力出版社 2008年1月 【5】《Atium Designer 6电路图设计百例》 姜艳波编 化学工业出版社 2008年3月 【6】《Altium Designer快速入门》 徐向民主编 电子工业出版社 2007年6月

武汉理工大学《Protel应用》课程设计报告书

附录

单片机程序: #include #define uint unsigned int #define uchar unsigned char uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9 sbit led1=P0^0;sbit led2=P0^1;sbit led3=P0^2;sbit led4=P0^3;sbit led5=P0^4;sbit led6=P0^5;sbit key1=P0^6;sbit key2=P0^7;sbit key3=P3^2;sbit key4=P3^3;uchar shi, ge, num1, k, num=59;

void delay(uint z)//延时 {

uint x, y;

for(x=0;x

for(y=0;y<120;y++);}

void keyscan()//按键模块 { if(key3==0){

delay(10);

if(key3==1)

{

num=0;

led1=0;

led2=1;

led3=1;

led4=1;

led5=1;

led6=1;

TR1=0;

while(!key3);

} } if(key4==0)

武汉理工大学《Protel应用》课程设计报告书

{

delay(10);

if(key4==0)

{

num=0;

led1=1;

led2=1;

led3=1;

led4=0;

led5=1;

led6=1;

TR1=0;

while(!key4);

} } }

void T1_time()interrupt 3//中断 { TH1=(65536-50000)/256;TL1=(65536-50000)%256;num1++;if(num1==20)//中断计时 500ms一次 20次 num1+1 共一秒

{

num1=0;

num--;

if(num==0)

{

num=59;//每到0就60

k++;

led4=led1;

led1=~led1;

}

if(k%2==0)

{

led2=1;

led3=1;

if(num>9)

{

led6=0;

led5=1;

}

if(num<=9)

{

led6=1;

武汉理工大学《Protel应用》课程设计报告书

led5=0;

}

}

if(k%2==1)

{

led6=1;

led5=1;

if(num>9)

{

led3=0;

led2=1;

}

if(num<=9)

{

led3=1;

led2=0;

}

} } }

void init_T1(){ TMOD=0x10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET1=1;TR1=1;}

void display(uchar num2)//数码管 { shi=num2/10;ge=num2%10;key1=1;key2=0;P2=table[ge];delay(1);key1=0;key2=1;P2=table[shi];delay(1);} void main()

武汉理工大学《Protel应用》课程设计报告书

{

init_T1();led1=0;led6=0;while(1){

keyscan();

上一篇:济南市中考满分作文《为自己高兴》下一篇:财务总监就职