单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序

上传人:无*** 文档编号:192047715 上传时间:2023-03-06 格式:PDF 页数:41 大小:2.86MB
收藏 版权申诉 举报 下载
单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序_第1页
第1页 / 共41页
单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序_第2页
第2页 / 共41页
单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序_第3页
第3页 / 共41页
资源描述:

《单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序》由会员分享,可在线阅读,更多相关《单片机开发板计算器电梯密码锁万年历交通灯课程设计宝贝及程序(41页珍藏版)》请在装配图网上搜索。

1、开发板 实 验 报 告 设 计 课 题:基于单片机的简易计算器 指 导 老 师:班 级:学 号:姓 名:一 设计内容和目的 本次实验的任务就是要以 51 系列单片机为核心实现一个简易计算器计算器,它的结构非常简单,外部主要由 4*4 矩阵键盘和一个液晶显示屏构成,内部由一块 AT89C51 单片机构成,通过软件编程可实现简单加减乘除。目的:做自己喜欢的实验,提高自学能力。二 方案论证 经分析,计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。具体如下:)LCD显示电路 LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,但是初学者往往要注意结合L

2、CD本身的时序图来完善初始化程序。又以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,故采用LCD.)4*4键盘扫描电路(中断式,扫描式,反转式)用户设计行列键盘接口,一般常采用3 种方法读取键值。一种是中断式,外两种是扫描法和反转法。中断式:在键盘按下时产生一个外部中断通知CPU,并由中断处理程序通过不同的地 址读取数据线上的状态,判断哪个案件被按下。本实验采用中断式实现用户键盘接口。扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一 位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是低,则表

3、明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表1 得到的 键码。这个就仁者见仁智者见智了,不过如果熟悉了扫描式,建议果断升级自己的硬件(很简单加个74LS08与门),故采用节省CPU的中断式扫描电路。)单片机微控制电路 微控制电路就是以AT89C51为核心的控制核心,主要注意晶振电路的接法和复位电路的接法。三 硬件电路的设计 21 硬件设计电路框图 22 硬件设计电路的元件清单 器件名称 数量 AT89C51 1 按键 17 74LS08 1 10K 电阻 9 电容 22uF 1 LCD1602 1 晶振 12MHz 1 电容 30pF 2 5K 电位器

4、1 23 硬件设计电路图 将 4*4 的键盘直接接在 P1 口上,用 P0 口作为 LCD 的显示输出,P3.2 口的 INT0 作为外部中断位。51 系列单片机系统 4*4 键盘 LCD 显示 晶振电路 复位电路 线路原理框图 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6

5、/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51X1CRYSTALC122pC222pC322pR11k+5VD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LRV1k+5V+5V234567891RP1RESPACK-8+5V123U2:A74LS08456U2:B74LS089108U2:C74LS08 24 硬

6、件设计的补充说明 四 软件设计程序及描述 本程序组成可分为 3 个模块:矩阵键盘模块,LCD 显示模块,和运算模块(源程序见底页)开始 初始化参数 初始化 LCD 显示 有键输入?读取键码 LCD 显示 数字键 清零键 功能键 状态清零 输入数值 数值送显示缓冲 Y N 等待数值输入 结果送显示缓冲 根据上次功能键和输入的数据计算结果 本次功能键?等待数值输入 结果送显示缓冲 等待数值输入 结果送显示缓冲 五 硬软件的调试及方法 我个人遇到的主要问题出现在 LCD1602 上,要不是我自己买了块新的 LCD 恐怕我的结论,就只能在软件仿真实现了。硬件上:在不加芯片调试时,LCD1602 只显示

7、一排全黑,一般说明该元件是好的。(但也不一定,我那时就一直认为我的元件没坏);给 15,16 管脚分别接上+5v 和 0v,测试背光是否完好;给VEE 接上电位器,检查对比度是否可调;一般 LCD 易出现的现象,我再做实验的时候遇到过以下几种情况:状态 1 上电之后,1602 的第一行全黑,即 16 个 5x7 黑块 产生原因:液晶根本就没有进行初始化操作,需要检查连线或者程序。运气不好的情况下就是整块 LCD 是坏的。状态 2 屏上显示两排灰格 产生原因:程序中对液晶初始化不正常,应是部分初始化指令没有正常接收,建议按照标准初始化步骤调整程序,或者调整指令之间的延时(加大一些试试)-补充:也

8、有可能是对比度太大,建议优先调整对比度电阻 状态 3 显示乱码 这是我在实验室组合版上做的,原因是接线问题 状态 3 正确显示 六 实验结果与性能达标 我的计算器只能准确进行得数为 09 的四则运算。1.加法计算 D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L 2.减法计算 D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L 3.乘法计算 D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L

9、 4.除法计算 D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L 5.字符显示 A0A7A6A5A4A3A2A1D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD2LM016L 实物与仿真不一致。这就是传说中的 BUG 了。我不明白。七 实验改进与心得体会 很明显我的计算器处理数据及显示存在太大的局限性,我觉得主要还是我对程序中的运算模块理解不深,这点仍需大大加强。这个实验给我的感觉,硬件和软件上都不是很难。我的焊工也不马虎,即使难看了点,但只要软件能行,就能完美运行。可

10、惜,我就败在 LCD1602,从学校拿了两块,幸好最后实在没办法,自己买了一块。最终证实我之前的实验就是 LCD 的损坏。没知识真可怕,我不懂真正排查 LCD 的好坏。不过也因祸得福,我在磕磕碰碰中,固执的认为 LCD 是好的,反而使我对 LCD 初始化,LCD 字符显示,3 种不同的矩阵键盘扫描的方法,及软件上的巧妙技巧有了更好的了解。我在这次实验上,感觉收获的更多.下面是源代码:#include#define CLEARSCREEN LCD_write_command(0 x01)#define uint unsigned int#define uchar unsigned char /*

11、定义接口*/#define LCDIO P0#define KEYBOARD P1/保留 sbit LCD1602_RS=P20;sbit LCD1602_RW=P21;sbit LCD1602_EN=P22;/*/code uchar mayuan16=0,1,2,3,4,5,6,7,8,9,0,/,*,-,+,=;/不错,这个比较明了 unsigned char code keycode=0 x11,0 x21,0 x41,0 x81,0 x12,0 x22,0 x42,0 x82,0 x14,0 x24,0 x44,0 x84,0 x18,0 x28,0 x48,0 x88;/键盘编码值

12、()int i,j,k=1,s;/int t,t1,t2,a;/void delay(uchar);/延时/*定义函数*/void LCD_init(void);/初始化函数 void delay_nms(unsigned int n);/延时函数 void LCD_write_command(unsigned char command);/写入指令函数 void LCD_write_dat(unsigned char dat);/写入数据函数 void delay_10ms();initial();uchar keyscan();/键盘扫描函数 calc(uchar);/计算函数 uchar

13、 num,temp,key,keynum;void main()/主函数 LCD_init();delay_nms(100);while(1)initial();/有中断 KEYBOARD=0 xf0;/键盘的列值全置高电平 /*开中断*/initial()EA=1;/总开关 EX0=1;/中断方式 0 开启 IT0=0;/*/*中断函数*/void inter0()interrupt 0 unsigned char n;delay_10ms();/延时 if(INT0=0)/没键按下 EX0=0;/关中断 n=keyscan();calc(n);EX0=1;/开中断 KEYBOARD=0 x

14、f0;/键盘的列值全置高电平 /*/calc(uchar n)if(n10)/键值小于 10 t1=t1*10+n;LCD_write_command(0 x00);/写命令语句 LCD_write_dat(mayuann);/写数据函数 else if(n=10)LCD_init();t1=0;t2=0,t=0;k=1;else if(n15)t2=t1;t1=0;j=n;LCD_write_command(0 x00);LCD_write_dat(mayuann);else LCD_write_command(0 x00);LCD_write_dat(mayuann);switch(j)c

15、ase 11:t=t2/t1;break;case 12:t=t2*t1;break;case 13:t=t2-t1;break;case 14:t=t2+t1;break;if(t9)while(t9)s=t%10;t=t/10;ak=s;k+;if(t=1;i-)LCD_write_command(0 x00);LCD_write_dat(ai+48);/*键盘扫描函数*/uchar keyscan()/键盘扫描 KEYBOARD=0 xf0;/键盘的列值全置高电平 delay_10ms();/延时 if(KEYBOARD!=0 xf0)/有键按下 temp=KEYBOARD;/保存键盘此

16、刻的键植 delay_10ms();/延时 if(KEYBOARD=temp)/再次确认键盘是否被按下 uchar i;KEYBOARD=0 x0f;/键盘的行值全置高电平 delay_10ms();/10MS 时间延时 keynum=temp|KEYBOARD;/保存键盘的行值 while(KEYBOARD!=0 x0f);/松手检测 for(i=0;i0;i-)for(j=0;j10;j+);void delay_10ms()/10MS 延时 unsigned char i,j;for(i=0;i10;i+)for(j=0;j120;j+);/*/*写指令函数*/void LCD_writ

17、e_command(unsigned char command)LCDIO=command;LCD1602_RS=0;LCD1602_RW=0;LCD1602_EN=0;LCD1602_EN=1;delay_nms(10);/*/*写数据函数*/void LCD_write_dat(unsigned char dat)LCDIO=dat;LCD1602_RS=1;LCD1602_RW=0;LCD1602_EN=0;delay_nms(1);LCD1602_EN=1;/*/*初始化函数*/void LCD_init(void)CLEARSCREEN;/clear screen LCD_write

18、_command(0 x38);/set 8 bit data transmission mode LCD_write_command(0 x0c);/open display(enable lcd display)LCD_write_command(0 x80);/set lcd first display address CLEARSCREEN;/clear screen /*/为了方便初学者学习 LCD,特留下字符显示代码,电路图与本实验一致。已通过实物测试,绝对没问题。#include unsigned char table1=0 x03,0 x07,0 x0f,0 x1f,0 x1f

19、,0 x1f,0 x1f,0 x1f,0 x18,0 x1E,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x07,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x10,0 x18,0 x1c,0 x1E,0 x1E,0 x1E,0 x1E,0 x1E,0 x0f,0 x07,0 x03,0 x01,0 x00,0 x00,0 x00,0 x00,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x0f,0 x07,0 x01,0 x1f,0 x1f,0 x1f,0 x1f,0 x1f,0 x1c,0 x18

20、,0 x00,0 x1c,0 x18,0 x10,0 x00,0 x00,0 x00,0 x00,0 x00;/心图案 unsigned char table=0 x10,0 x06,0 x09,0 x08,0 x08,0 x09,0 x06,0 x00;/字符#define CLEARSCREEN LCD_write_command(0 x01)/*定义接口*/#define LCDIO P0 sbit LCD1602_RS=P20;sbit LCD1602_RW=P21;sbit LCD1602_EN=P22;/*定义函数*/void LCD_write_command(unsigned

21、char command);/写入指令函数 void LCD_write_dat(unsigned char dat);/写入数据函数 void LCD_set_xy(unsigned char x,unsigned char y);/设置显示位置函数 void LCD_dsp_char(unsigned x,unsigned char y,unsigned char dat);/显示一个字符函数 void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char*s);/显示字符串函数 void LCD_init(void);/

22、初始化函数 void delay_nms(unsigned int n);/延时函数/*/*初始化函数*/void LCD_init(void)CLEARSCREEN;/clear screen LCD_write_command(0 x38);/set 8 bit data transmission mode LCD_write_command(0 x0c);/open display(enable lcd display)LCD_write_command(0 x80);/set lcd first display address CLEARSCREEN;/clear screen /*/

23、*写指令函数*/void LCD_write_command(unsigned char command)LCDIO=command;LCD1602_RS=0;LCD1602_RW=0;LCD1602_EN=0;LCD1602_EN=1;delay_nms(10);/*/*写数据函数*/void LCD_write_dat(unsigned char dat)LCDIO=dat;LCD1602_RS=1;LCD1602_RW=0;LCD1602_EN=0;delay_nms(1);LCD1602_EN=1;/*/*设置显示位置*/void LCD_set_xy(unsigned char x,

24、unsigned char y)unsigned char address;if(y=1)address=0 x80+x;else address=0 xc0+x;LCD_write_command(address);/*/*显示一个字符*/void LCD_dsp_char(unsigned x,unsigned char y,unsigned char dat)LCD_set_xy(x,y);LCD_write_dat(dat);/*/*显示字符串函数*/void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char*s)

25、LCD_set_xy(X,Y);while(*s)LCD_write_dat(*s);s+;/*/*延时*/void delay_nms(unsigned int n)unsigned int i=0,j=0;for(i=n;i0;i-)for(j=0;j10;j+);/*/*主函数*/void main(void)unsigned char i,j,k,tmp;LCD_init();delay_nms(100);tmp=0 x40;/设置 CGRAM 地址的格式字 k=0;for(j=0;j8;j+)for(i=0;i8;i+)LCD_write_command(tmp+i);/设置自定义字

26、符的 CGRAM 地址 delay_nms(2);LCD_write_dat(table1k);/向CGRAM写入自定义字符表的数据 k+;delay_nms(2);tmp=tmp+8;LCD_dsp_string(1,1,LCD TEST );/在第一行第一列显示LCD TEST LCD_dsp_string(1,2,SUCCESSFUL );/在第二行第一列显示SUCCESSFUL for(i=0;i4;i+)LCD_dsp_char(12+i,1,i);/在第一行第12列位置显示心图案的上半部 delay_nms(1);for(i=4;i8;i+)LCD_dsp_char(12+i-4,

27、2,i);/在第二行第12列位置显示心图案的下半部 delay_nms(1);while(1);/*/3.1 硬件连接 图 3-1 所示为简易计算器的电路原理图。P3 口用于键盘输入,接 4*4 矩阵键盘,键值与键盘的对应表如表-所示,p0 口和 p2 口用于显示,p2 口用于显示数值的高位,po 口用于显示数值的低位。图 3-1 简易计算器电路原理图 键值与功能对应表 键值 0 1 2 3 4 5 6 7 8 9+-/=ON/C 功能 0 1 2 3 4 5 6 7 8 9+-=清零 表 3-1 3.2 计算器的软件设计#include /头文件#define uint unsigned i

28、nt/#define uchar unsigned char sbit lcden=P23;/定义引脚 sbit rs=P24;sbit rw=P20;sbit busy=P07;char i,j,temp,num,num_1;long a,b,c;/a,第一个数 b,第二个数 c,得数 float a_c,b_c;uchar flag,fuhao;/flag表示是否有符号键按下,fuhao 表征按下的是哪个符号 uchar code table=7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0 x2f-0 x30,4,5,6,

29、0 x2a-0 x30,1,2,3,0 x2d-0 x30,0 x01-0 x30,0,0 x3d-0 x30,0 x2b-0 x30;void delay(uchar z)/延迟函数 uchar y;for(z;z0;z-)for(y=0;y0)c=a-b;else c=b-a;while(c!=0)write_date(0 x30+c%10);c=c/10;if(a-b0)write_date(0 x2d);write_date(0 x3d);/再写=a=0;b=0;flag=0;fuhao=0;else if(fuhao=3)write_com(0 x80+0 x4f);write_co

30、m(0 x04);c=a*b;while(c!=0)write_date(0 x30+c%10);c=c/10;write_date(0 x3d);a=0;b=0;flag=0;fuhao=0;else if(fuhao=4)write_com(0 x80+0 x4f);write_com(0 x04);i=0;c=(long)(float)a/b)*1000);while(c!=0)write_date(0 x30+c%10);c=c/10;i+;if(i=3)write_date(0 x2e);if(a/b=0)write_date(0 x30);write_date(0 x3d);a=0

31、;b=0;flag=0;fuhao=0;break;case 15:write_date(0 x30+table1num);flag=1;fuhao=1;break;main()init();while(1)keyscan();第 4 章 仿真和调试 下面用 KEIL uVision 与 porteus 仿真软件实现简易计算器的仿真与调试。4.1 keil 软件的介绍 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于 MC

32、S-51 单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发 MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作

33、系统。掌握这一软件的使用对于使用 51系列单片机的爱好者来说是十分必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用 C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51 开发系统基本知识 Keil C51 开发系统基本知识 1.系统概述 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再

34、使用 C 来开发,体会更加深刻。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍 Keil C51 开发系统各部分功能和使用。2.Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构中,其中 uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接

35、、调试、仿真等整个开发流程。开发人员可用 IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由 OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 EPROM中。3.采用 KEIL 开发的 89c51 单片机应用程序一般需要以下步骤:(1)在 uVision 集成开发环境中创建新项目(Project

36、),扩展文件名为.UV2,并为该项目选定合适的单片机 CPU 器件(本设计采用 ATMEL 公司下的 AT89C51)(2)用 uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使 C 语言文件(扩展名.C),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。(3)通过 uVision 2 的相关选择项,配置编译环境、连接定位器以及 Debug 调试器的功能。(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的 HEX 文件,如果出现编译连接错误则返回到第 2 步,修改源文件中的错误后重构整个项目。(

37、5)对没有语法错误的程序进行仿真调试,调试成功后将 HEX 文件写入到单片机应用系统的 ROM中。4.2 本设计的操作 根据上述操作可得图 4-1 编译调试程序后,从 Build 一栏可以看到“creating hex file from jsq”“jsq-0 Error(s),0 Warning(s).”下一步就可以在 Proteus 软件了调用 hex 文件及烧入单片机。图 4-1 keil 调试 4.3 proteus 7.1 介绍 Proteus 的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的

38、专业的单片机软件仿真系统。该软件的特点:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS 一 232 动态仿真、1 C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分析于一身的仿真软件,

39、功能极其强大,可仿真 51、AVR、PIC。4.4 Proteus 对于本设计的仿真 操作步骤如下:(1)进入 proteus ISIS 集成环境,在工作前,在 systerm 菜单下设置界面的颜色、图形界面大小等项目,我采用了系统默认值。(2)通过工具栏中的(从库中选择元件命令)命令,在 pick devices 窗口中选择电路所需的元件,放置元件到编辑区并调整其相对位置,进行元件参数设置,元器件间连线。器件库如表 4-1 所示,选择后如图 4-12 所示。器件库 器件名称 Microprocessor ICs 89C51 Switches&Relays BUTTON Optoelectro

40、nics LM016L Resistors RESPACK-8 Resistors POT-LIN Terminals Mode POWER 表 4-1 器件库及所选器件 (3)连线并加上需要的说明,并完成仿真原理图,如图 4-3 所示。操作说明:(1)本计算器实现 8 位数的加、减、乘、除运算。(2)按下数值键,显示按下的“数字”按运算符,再,按第 2 个操作数,显示,按“=”键,得到运算结果。(3)按“清零”键清除运算结果,可重新开始。图 4-3 仿真原理 (4)加载程序。将编译调试完成的简易计算器机器码程序(hex 文件)加载到 AT89C51 单片机中。(5)单击仿真工具栏中的仿真键,

41、观察仿真结果。可以按暂停、继续、单步、等按钮,查看效果。运行 单步运行 暂停 停止 图 4-4 仿真工具栏(6)调试与思考 图 4-2 器件列表 第 5 章 Protel 作图及 PCB 制板 5.1 Protel DXP 2004 简介 到现在许多 PCB 工程师们也许还在使用 Protel99 或者 protel99se 在他们所熟悉的编辑环境下进行 PCB 设计,他们都很有经验,能够在 protel99 或 protel99se 上设计出一块很棒的PCB。但有的时候他们甚至不相信软件的智能化给他们带来的巨大方便。于是许多 PCB 工程师根本不使用软件带有的强大的自动布线功能,因为即使重复

42、布上几百次都不能得到他们满意的方案,或是调整的线太多还不如完全手工布线。这些都让他们不愿意接受也不相信更新换代了的人工智能能给他们的设计带来什么巨大的方便,他们相信的只是他们多少年积累的经验。但实际上他们都很清楚当他们设计一块多层高密度 PCB 所需要付出的代价是什么,同时他们也希望真的有那么一款软件能让他们的设计效率有极大的提高的 PCB 设计软件。现在 Altium 公司 2004 年最新产品 Protel 2004 完全能满足这方面的要求。当然 Protel 2004 面对的用户不光是为了方便这些有多年经验的 PCB 工程师们。Protel 2004 同时还降低了制作 PCB 的门槛,通

43、过短时间的培训(即使是自学),很短时间您都可以很快的制作一块合格的 PCB。Protel 2004 共可进行 74 个板层设计,包含 32 层 Signal(信号走线层);16 层Mechanical(机构层);16层Internal Plane(内层电源层);2层Solder Mask(防焊层);2层Paste Mask(锡膏层);2 层 Silkscreen(丝印层);2 层钻孔层(钻孔引导和钻孔冲压);1 层 Keep Out(禁止层);1 层 Multi-Layer(横跨所有的信号板层)。5.2 Protel 设计电路 打开 Protel DXP 的操作界面,从文件“菜单”下“创建”“

44、原理图”见下图 图 5-1 创建原理图 图 5-2 元件库找到器件 从元件库找到所需要的器件,点击 Place 按键,就可以把相关器件放入到设计工作区,见图 5-2 演示。见图 5-2 演示 元件库及所选器件 器件库 器件名称 Atmel Microcontroller 8051 Architecture.IntLib AT89C51 Miscellaneous Connectors.IntLib 16-Pin 1602 封装 Miscellaneous Devices.IntLib SW-PB Miscellaneous Devices.IntLib Cap Miscellaneous De

45、vices.IntLib XTAL Miscellaneous Devices.IntLib CapPol2 Miscellaneous Devices.IntLib Res2 自己画的电阻排库 RP1 表 5-1 元件库及所选器件 (3)按照设计原理,点击工具栏中的“放置导线”按键,就可以把把器件按设计的电路图依次连接起来。见下图。图 5-3 protel 原理图(4)从“文件”菜单下“创建”“项目”“PCB 项目”,在创建 PCB 文件,之后把原理图导入 PCB 项目下。使用自动布线便可生成 PCB 图。然后自己再修整下线路,可得到下图。图 5-4 PCB 印刷电路板图 致 谢 在论文完成之际,我首先要向那些热心帮组的同学表示最真挚的谢意。在论文写作期间,我遇到了很多不懂的地方,包括理论知识和做实物的过程,我都向他们请教,他们都无私热情的告诉我。我还要特别感谢*、*同学给予了我无私的帮助,正是在他们的的鼓励和帮助之下,我得以顺利完成论文。其次我还要更特别的感谢四年来默默关心我、支持我、鼓励我的家人,亲戚,朋友;是他们让我有信心、有勇气克服了太多的困难,最终得以顺利完成学业,在此对他们表达我深深的谢意。由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同行提出宝贵意见。最后,忠心感谢在百忙中评阅论文和参加答辩的各位评委老师!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!