用Protel 99 SE玩转Word格式文档下载.docx

上传人:b****5 文档编号:18692891 上传时间:2022-12-31 格式:DOCX 页数:19 大小:1.19MB
下载 相关 举报
用Protel 99 SE玩转Word格式文档下载.docx_第1页
第1页 / 共19页
用Protel 99 SE玩转Word格式文档下载.docx_第2页
第2页 / 共19页
用Protel 99 SE玩转Word格式文档下载.docx_第3页
第3页 / 共19页
用Protel 99 SE玩转Word格式文档下载.docx_第4页
第4页 / 共19页
用Protel 99 SE玩转Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

用Protel 99 SE玩转Word格式文档下载.docx

《用Protel 99 SE玩转Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用Protel 99 SE玩转Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

用Protel 99 SE玩转Word格式文档下载.docx

DIP16

LED7-4(自制)

DPY1、DPY2

PNP

Q1~Q8

9015

9015(自制)

RES2

R1

10K

AXIAL0.4

R2~R17

680

SW—PB

K1~K8

AN(自制)

DB9

J1

DB9/F

CON8

J2~J9

SIP8

CON2

J10

POWER

SIP2

CRYSTAL

X1

12M

RAD0.2

LED

LED1~LED8

LED(自制)

元件库:

8031在ProtelDosSchematicLibrary中;

MAX232、LED7-4需自制;

其余元件在MiscellaneousDevices.lib中

二、准备元器件

三、测量元件并绘制元件的封装

一定要准确测量各元件脚之间的距离,一般都为0.1英寸(100mil)的整数倍。

9015的元件脚之间的距离不是100mil,为了适应万能板间距也要设计成0.1英寸;

发光二极管的引脚标号要用A、K否则引入网络表时有麻烦。

各元件的绘制参数如下:

四、设计PCB板

因为是要在万能板是焊接所以所有元件引脚间距也只能是0.1英寸,只能设置为单面板,导线的间距也一样并要转直角。

为了方便设计可把网格显示设置为100mil。

然后就是布线,都采用手工布线,一条一条的“拉”,就是有点费眼。

由于是单面板有些地方难免绕不过去,因此在顶层要加跳线。

下图中细线就是顶层的跳线。

七段数码管部分:

串口通讯部分:

按键部分:

发光二极管部分:

CPU部分:

五、焊接元件

焊接元件前要根据PCB设计图确定元件的位置,七段数码管部分跳线较多,有很多跳线都要在元件的下面,因此要先焊接跳线。

标出元件跳线位置:

焊接跳线:

再焊元件:

固定所有元件:

六、用“拖焊法”搭接电路

这种拖焊有一定技巧,一般情况焊接时是焊丝先离开然后是烙铁离开,但拖焊时秩序刚好相反。

当然好可用“口吹法”,总之这要多加练习。

这是一个局部效果:

七、程序实验

大功告后就可以输入一个程序进行实验了。

下面是一个时钟程序实验的效果。

这是该程序的原代码:

;

---------------

24小时时钟程序

---------------

SECDATA30H;

定义为秒寄存器

MINDATA31H;

定义为分寄存器

HOURDATA32H;

定义为时寄存器

BCD_GEDATA33H;

定义为个位BCD码寄存器

BCD_SHDATA34H;

定义为十位BCD码寄存器

DSP_GEDATA35H;

定义为个位显示位置码寄存器

DSP_SHDATA36H;

定义为十位显示位置码寄存器

ORG00H

AJMPMAIN

ORG0BH

AJMPTIMEO

ORG030H

MAIN:

MOVR0,#30H;

LOOP:

MOV@R0,#0;

INCR0;

CJNER0,#37H,LOOP;

以上为30H到37H寄存器清0

MOVTMOD,#01H;

定义T0为1工作方式

MOVTH0,#3CH;

MOVTL0,#0B0H;

T0置初值

SETBEA;

打开总中断

SETBET0

SETBTR0;

打开T0中断

NEXT:

ACALLKEY;

调键扫描子程序

ACALLCOUT;

调键值处理子程序

ACALLDISP;

调显示程序

AJMPNEXT;

TAB:

DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;

字段码表格

---------------------------------

定时中断子程序,出口值SEC,MIN,HOUR

TIMEO:

PUSHPSW;

压入堆栈

PUSHACC;

重赋初值

INCR2;

中断计数器加1

CJNER2,#20,T_RET;

中断计数器到20了吗?

50ms

MOVR2,#0;

中断计数器清0

INCSEC;

秒寄存器加1

MOVA,SEC;

CJNEA,#60,T_RET;

秒寄存器到60了吗?

MOVSEC,#0;

到了清0

INCMIN;

分寄存器加1

MOVA,MIN;

分寄存器到60了吗?

MOVMIN,#0;

分寄存器清0

INCHOUR;

时寄存器加1

MOVA,HOUR;

CJNEA,#24,T_RET;

时寄存器到了24没?

MOVHOUR,#0;

时寄存器清0

T_RET:

POPACC;

弹出堆栈

POPPSW;

RETI;

退出中断程序

------------------------

键扫描子程序,键值出口B

KEY:

MOVP3,#0FFH;

P3口高电平

MOVA,P3;

读P3口的值

CPLA;

键值取反

JNZKK;

如A不为0有键按下则跳到键处理程序

MOVB,#0;

否则键值为0

AJMPK_RET;

退出

KK:

调显示子程序并做为延时去抖

再读P3口的值

JNZKF;

如值仍不为0则确实有键按下

否则为键抖

KF:

MOVB,A;

将键值给B

K_OUT:

MOVP3,#0FFH;

JZK_RET;

如值为0则键已松开退出

否则未松开键调显示程序

AJMPK_OUT;

跳转等待键松开

K_RET:

RET;

----------------------

键处理子程序,入口值B

COUT:

MOVA,B;

读入键值

JZC_RET;

如值为0无键按下则退出

JBACC.0,STOP;

0号键按下则停秒

JBACC.1,H_ADD;

1号键按下时加1

JBACC.2,M_ADD;

2号键按下分加1

JBACC.3,RUN;

3号键校时按下确定

AJMPC_RET;

STOP:

CLRTR0;

停秒

H_ADD:

JBTR0,C_RET;

校时如没停秒无效退出

CJNEA,#24,C_RET;

如大于24则清0

M_ADD:

校分如没停秒无效退出

分加1

CJNEA,#60,C_RET;

如大于60则清0

RUN:

SETBTR0;

确认键起动T0

C_RET:

-------------------------------------

显示程序,入口值显示数SEC,MIN,HOUR,

显示位置DSP_GE,DSP_SH

DISP:

PUSHB;

读入秒数

ACALLBCD;

调BCD转换子程序

MOVDSP_GE,#07Fh;

秒个位显示位置

MOVDSP_SH,#0bfh;

秒十位显示位置

ACALLDSP;

调数码显示程序

读入分数

MOVDSP_GE,#0efh;

分个位显示位置

MOVDSP_SH,#0f7h;

分十位显示位置

读入时数

MOVDSP_GE,#0fdh;

时个位显示位置

MOVDSP_SH,#0feh;

时十位显示位置

MOVP0,#0f7h;

显示-

MOVP2,#0dbh;

-显示位置

ACALLDEL;

显示延时

POPB;

POPACC;

弹出数据

RET;

---------------------------------------

数码显示程序,入口值显示数BCD_GECD_SH

DSP:

MOVDPTR,#TAB;

MOVA,BCD_GE;

读入个位显示BCD码

MOVCA,@A+DPTR;

查表

MOVP0,A;

字段码送P0口

MOVP2,DSP_GE;

位置码送P2口

MOVA,BCD_SH;

读十位显示BCD码

MOVP2,DSP_SH;

-----------------------------------------

BCD转换子程序,入口值A,出口值BCD_GE,BCD_SH

BCD:

MOVB,#10;

送被除数

DIVAB;

除法运算

MOVBCD_SH,A;

商为十位BCD码

MOVBCD_GE,B;

余数为个位BCD码

-----------------------

显示延时子程序,延时1ms

DEL:

MOVR5,#02

DEL1:

MOVR6,#250

DJNZR6,$

DJNZR5,DEL1

RET

END

 

另我还有一带温度测量的万年历的制作过程,主要则重于C语言的编程。

如有兴趣可联系。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1