唐德礼,王 襄
(十堰职业技术学院电子工程系 湖北十堰 442000)
摘 要:详细论述了51系列单片机学习机及编程器的设计思路和实现方法,该学习机既是仿真器又是编程器,他可以编程EPROM 和E 2PROM 及A T 89C 51(2),在该机上可以进行机器语言程序的输入、调试、修改和运行;同时软件编程可以在PC 机上完成,通过串行通信下载到该机的仿真RAM 中运行。该装置是一款物美价廉的单片机软、硬件的学习工具和开发工具,有着重要的使用价值和推广价值。 关键词:单片机;仿真器;编程器;串行通信
中图分类号:T P 36811 文献标识码:B 文章编号:1004373X (2005)1211704
D esign i ng on Si ngle Ch ip M icrocom puter L earn i ng M ach i ne and Programm er
TAN G D eli ,W AN G X iang
(D epart m ent of E lectronics and Engineering ,Sh iyan Technical Institute ,Sh iyan ,442000,Ch ina )
Abs tra c t :T h is article gives a particu lar descri p ti on of the design ing app roach and realizing m ethod of 51series SC M (Single Ch i p
M icrocompu ter )1It is a si m u lato r and p rogramm er 1It can p rogram based on EPROM ,E 2PROM and A T 89C 51(2)1T he inpu t ,
comp ile ,am end and run tho se p rogram sare are developed by m ach inery language 1A lso w e can p rogram in PC by advanced languages and run in its RAM dow n loaded from serial comm un icati on 1T h is equ i pm en t is a cheap single ch i p develop ing too l ,also a device to investigate softw are and hardw are ,w h ich can be w idely u sed and generalized in m any fields 1
Ke yw o rds :single ch i p m icrocompu ter ;si m u lato r ;p rogramm er ;serial comm un icati on
收稿日期:20050224
本系统用A T 98C 52单片机组成一个学习机,他可以开发M CS
51系列的任何单片机。其中8k 的
FLA SHROM 存放仿真器监控程序。用3片8k 静态RAM 6264作为外24k RAM ,可以扩展为64k 。同时每片6264可换为E 2 PROM 2864进行编程。并行口选用一片8155作为键盘 显示控制器,另外一片并行口8255作为EPROM 编程器驱动器,同时可以驱动打印机。 本系统键盘配有30个小按键,1个复位键,16个数字键,13个命令键。本系统用6个共阴极数码管作为显示器,其中左边高4位显示地址或状态,低2位显示数据或代码。
本系统借助片内的S I O ,通过一片M A X 232形成简易的R S 232串行接口,可以与PC 机或单片机串行通信。在PC 机上完成51汇编语言或者C 51程序的编写、汇编、调试,最后变成H EX (16进制)格式,通过串行通信口写入到仿真器中从2000H 开始的内存单元,在仿真机上运行程序。
本装置将PSEN 与RD 相与形成统一的读信号线,这样片外的RAM 既是数据存贮器又是程序存贮器。
本系统特点:
(1)可以作为单片机原理及单片机汇编语言的学习
机,用户可以用键盘直接输入机器语言程序,进行运行、调试程序。
(2)又是EPROM ,E 2PROM 和A T 89C 51(2)的编
程器。
(3)能与PC 机实现串行通信,在PC 机上完成汇编程
序或C 51的编写、调试汇编,最后转换成H EX 格式,通过串行通信写入到仿真器的从2000H 开始的内存单元运行调试程序。
(4)还可以与其他单片机进行串行通信,实现数据
交换。
(5)还可以把ROM 中数据移动到RAM 中或E 2
PROM 中去,同时在RAM 和E 2
PROM 之间互相移动
数据。
(6)还可演示交通灯、8字旋转、实时时钟和电子音
乐等。并能进行A D 和D A 转换及定时器实验。
(7)还可作为一个精确的电子时钟使用,或作为自动
打铃器使用。2 学习机电路原理211 键盘显示器电路
键盘 显示电路原理如图1所示。
本系统采用一片8155作为键盘扫描 显示器接口。字位口用达林顿集成电路UNL 2003A 驱动,字形口用
74L S 244驱动,8155的A 口输出字形码,B 口输出字位精准灌溉系统海棠
码,C 口作为键回扫信号。6个高亮度数共阴极数码管作为显示器。30个小按键,其中16个是数字键,13个为命令键,1
个为复位键。
图1 键盘 显示电路原理图
圈套器212 主电路
主电路原理图如图2所示。
图2 主电路原理图
主电路由A T 89C 52作为控制器,扩展3片RAM 6264或E 2
PROM 2864,系统的RAM 为24k ,扩展1片8255A 作为EPROM 编程和A T 89C 51(2)编程接口电路。为了满足固化程序的需要,扩展了1片74L S 02实现或逻辑。同时为了满足固化信号时序的需要,用三极管9103和9105及二极管D 3、D 4组成电压放大和电压切换电路,为固化程序提供+5V 和+12V 电压。本系统可以固化EPROM 2764和27128及A T 89C 51(2)。
电阻R 2和D 1,D 2组成或逻辑,使仿真RAM 既可作数据存贮器又可作程序存贮器使用。
主电路扩展了1片M A X 232EC 作为电平转换,实现本系统与PC 机的串行通信。
主电路扩展了1片ADC 0809用以完成8通道的A D 转换,本系统只用了一个输入通道,用W 1改变输入模拟电压的大小,其转换的数字量显示在数码管上。
本系统扩展了1片DA C 0832作为D A 转换,为了得到电压输出使用了1片运算放大器LM 324作为电流-电压转换放大电路。
本系统用74L S 138作地址译码器为各芯片提供片选信号。RAM 1的CE 接Y 0,RAM 2的CE 接Y 1,RAM 3的CE 接Y 2,8155的CS 接Y 3,8255的CS 接Y 4,0809接
Y 5,0832接Y 6。
3 系统资源的使用
(1)用户仿真数据存贮器空间为0000~5FFFH 。其中RAM 1为0000H ~1FFFH ,RAM 2
为2000H ~3FFFH ,RAM 3为4000H ~5FFFH 。
(2)用户仿真程序存贮器空间为0000~
1FFFH 。
(3)系统上并行I O 接口8255的端口地址
为:A 口为8F 00H ;B 口为8F 01H ;C 口为8F 02H ;控制口为8F 03H
(4)系统上并行I O 口接8155的端口地址
为:控制口为7F 00H ;A 口为7F 01H (字位口);
B 口为7F 02H (字形口);
C 口为7F 03H 内部RAM 地址为:7E 000H ~7EFFFH (监控占用)。
(5)A D 转换器的地址为BF 00H ,D A 转换器的地
址为D F 00H 。
(6)监控程序使用A T 89C 52内部的RAM 分配如下:3A H ,3BH ,3CH ,3DH ,3EH ,3FH 为源首址低位、源
首址高位、目的首址低位、目的首址高位存贮单元。79H ,
7A H ,7BH ,7CH ,7DH ,7EH 为显示缓冲区。位地址78H
为U P 键标志,7CH 为错误标志。4 系统软件说明411 监控程序说明
键盘监控程序固化在A T 89C 52FLA SHROM 中,地址为0000H ~1FFFH ,共8kB ,用户程序 数据存贮器空间为0000H ~5FFFH ,8155的内部RAM 供监控占用,用户不能使用。A T 89C 52内部RAM 的128B 全部给用户使用。
41111 单板态
在本状态时显示器显示P 8031字符,表示开发机处于初始化状态,等待操作。在计算机接通电源自动复位时处于单板状态;按压R ESET 键复位后使本机处于单板状态;在单板状态下可以进行以下操作:
(1)按任一数字键,显示该键输入的数字。
(2)按PCCOM 键,进入与PC 机通信、调试状态,显
示器全暗;PC 机的程序可以传到单机RAM 中。
(3)按EXEC 键,从ROM 中或从仿真RAM 中连续执行用户程序。
(4)按BA ZI 键,显示8字循环;说明本系统良好。(5)按PCCH 键,检查要固化的EPROM 是否为空;空时返回监控,不空时返回EPROM 中第一个不空的地址和数据。
(6)按PAD 键,可以将模拟信号转换为数字信号并显示在显示器上。
(7)键盘入2位数字,再按下EXAM 键或R EAD 键
盘可以进行片内RAM或SFR的检查。
(8)键盘入4位数字,再按下EXAM键或R EAD键可以进行外部RAM的内容检查。
(9)按W R IT键,可以给显示的地址的单元写入数据,写入数据后地址加1。
(10)按标志键F,装入源程序首址,即把当前显示器的内容作为源程序首址,装入本机的约定单元,并显示“ ”标志符;再按标志键“F”,装入源程序末址,即把当前显示的内容作为源程序末址,装入本机
约定的单元,并显示“ ”标志符。按标志F可以进行的操作为:
①按M OV E键,进入程序 数据块移动,操作如下:源首址,F,源末址,F,目标首址,M OV E。
②按T I M E键,显示000000,要输入时间初值,按EXE键运行时钟。
41112 上功能键盘状态
按下U P键时,显示器显示“P1”字。表示系统处于上功能态。上功能态的操作有:
(1)EPROM编程操作:源程序首址,F,源程序末址, F,目标首址,BA ZI。
(2)E2PROM编程操作:源程序首址,F,源程序末址, F,目标首址M OV。
(3)单片机之间接收操作:源程序首址,F,源程序末址,F,目标首址,RAD。
(4)单片机之间发送数据操作:源程序首址,F,源程序末址F,W R IT。
(5)单步执行程序:源程序首址,EXEC。
仿真恐龙制作(6)固化区内容移入目标RAM操作:源程序首址, F,源程序末址,F,目标首址,EPCH。
(7)播放电子音乐:U P,T I M E。
(8)交通灯演示:U P,PAD。
(9)A T89C52编程:U P,PDA。
412 系统监控软件分析
系统监控软件用C51语言编写。系统软件框图如图3所示。系统程序由显示子程序、主控程序、键盘扫描子程序、键功能程序等组成。
41211 主控程序
主控程序首先调用初始化程序和键盘扫描子程序,得到键值以后进行判断,如果键值≥16则为功能键,再去查功能表转去执行相应的功能程序;如果键值<16则为数字键,则执行数字键处理程序。数字键处理程序是把键值显示在数码管上,显示的顺序是由右向左。
41212 键盘扫描子程序
键盘扫描子程序的特点:利用两次调用显示子程序作为延时程序来消除键抖动,这样就可以不用再编
写延时程序,简化了程序的编写。扫描子程序返回主程序的变量是A,其值为键号。41213 A T89C51(2)编程器程序设计水性聚氨酯胶粘剂
A T89C51编程流程图如图4
所示。
图3
系统软件图
图4 A T89C51编程流程图
在要编程的A T89C51的XTAL1和XTAL2端接6M H Z的晶振,V CC接+5V,V SS接地,8255的PB口与A T89C51的P0口相接,8255的A口与A T89C51的P1口相接作为低地址信号,8255的C口低5条线与A T89C51的P2口相接,作为高位地址信号。由8255的PC7产生其AL E PR G信号。由P117控制EA V PP=+ 12V和EA
V PP=+5V的信号转换。
首先在PC机上编写程序,然后进行编译、连接,再转换成H EX文件格式,PC机以串行通信的方式下载到仿真RAM,最后在单片机控制下由仿真RAM写入A T89C51的FLA SHROM中。
A T89C51(2)的擦除时序是:首先使P216=+5V, P217=0V,P316=0V,P317=0V,EA V PP=+12V,
AL E PR G=0V,延时10m s,然后使AL E PR G=+5V, EA V PP=+5V。这样就可以完全擦除芯片。在A T89C51编程前必须先擦除芯片。
A T89C51(2)的编程时序是:首先用8255的A口和C口送地址到P1口和P2口,用8255的B口送数据到P
0口;再使主控CPU的P312=0V,P313=+5V,P314= +5V,P315=+5V,P117=0V,(即EA V PP= +12V),8255的PC7=+5V(即AL E PR G=0V);然后延时20m s;最后使EA V PP=+5V,AL E PR G=+5 V。如此反复直到数据写完为止。
主电路图中的R15,R16,+12V的稳压管D9及三极管Q3组成V PP由+12V和+5V之间的转换电路。其原理是:当P117为0时,Q3截止,D9输出+12V电压;当P117= +5V时,Q3导通,D9输出的+12V电压由R15和R16分压,稳压器近似输出+315V的电压。实践证明这是可行的。
在编程中用延时(延时20m s)的方法代替校验方式,经过实践证明,不会出现错误。
41214 EPROM固化程序设计
EPROM编程采用快速智能化编程方法,利用多次执行调用显示程序来实现写入延时,这样即可以实现延时又可以完成显示。根据EPROM的编程时序,8255的A口向EPROM的数据口传送数据,8255的B口和C口为EPROM提供地址,8255的PC7为其提供PRO G信号, 8255的PC6控制O E信号和+1215V电压与+5V电压的转换,主电路图中的Q1,Q2,D3,D4,R4,R5,R6及74L S02组成了O E信号和V PP=+1215V与V PP= +5V的转换电路。
EPROM在固化前必须进行擦除,紫外线擦除后要检测其是否空,因此本系统又提供了查空子程序。
为了把固化的程序读出来运行,本系统又提供了固化区程序移动子程序。这里要注意的是,V PP电压必须稳定在+1215V,对V PP电压要加电源滤波电路。主电路图中C15和C16实现滤波功能。
413 PC机的软件包
在PC机上利用现成的KE I L C51的W indow s集成开发环境ΛV IS I ON51和软件仿真器D SCO PE51(网上可免费下载),他可以完成源程序的编辑、调试、编译、连接定位到目标文件的仿真调试等全部工作。在PC机上运行与单片机的通信程序P511EXE可以把H EX目标文件发送给本系统,进行运行或编程。或者接收本系统中ROM 或RAM中的内容进行进一步的调试。
PC机的通信程序用C语言编写,波特率设置为9600B s,通信格式为1位起始位,8位数据位,无奇偶校验,1位停止位。PC机上发送的是16进制数据,而且发送的文件必须符合I N T EL的H EX格式。
由于PC机的波特率是标准波特率,而单片机由于其使用的晶振不同,其波特率的设置往往不是标准的。为了满足波特率相匹配,本系统采用了晶振为1110592M H z。这时只要将单片机中的定时器1设置为方式2作为波特率发生器,且置TH1=250,S M OD=1;PC机中设置除数寄存器的值为0CH,波特率为标准的9600B s。如果采用6M H z的晶体,那么单片机就难设置成标准的波特率。这时只要将PC机的除数寄存器设置为0BH,单片机T1方式2,置TH1=253,S M OD=1,则波特率近似为10417B s。虽然可以实现通信但会产生一定的误差。
反光雨衣
在DO S环境下的操作是:在单片机上按下COMM 键,在PC机上输入命令:p51r hex文件名(回车)。这时就可以把首地址从0000H书写的应用程序的hex文件发送到单片机的从0000H开始的地址单元去;或者把从2000H书写的应用程序的hex文件发送到单片机的从2000H开始的地址单元去。这时就可以从2000H处运行程序。在单片机上按下U P+COMM键,同时给出传输的字节长度(4位),在PC机上输入命令:p51s hex文件名(回车),PC机就可以把单片机中从2000H开始的、长度为给定值的数据传送到PC机中的H EX文件中去。
5 结 语
本装置体积小,功能强,性价比高。既是学习机,又是编程器,还可以进行程序仿真和演示,是一款实用的学习单片机软、硬件的工具。实践证明其性能良好、稳定可靠、写片速度快、精度高,在单片机应用系统开发中有重要的推广价值。
参 考 文 献
[1]张毅刚1M CS51单机应用设计[M]1哈尔滨:哈尔滨工
业大学出版社,20001
[2]何立明1单片机应用技术选编[M]1北京:北京航空航天
大学出版社,19961
[3]李朝青1PC机及单片机数据通信技术[M]1北京:北京
航空航天大学出版社,20021
[4]徐爱钧,彭秀华1单片机高级语言C51W indow s环境编程
与应用[M]1北京:电子工业出版社,20031
[5]李振格1微机高级语言与汇编语言接口技术和实例[M]1
北京:北京航空航天大学出版社,19941
作者简介 唐德礼 男,1946年出生,毕业于西安交通大学电气工程系电气技术专业,现任湖北十堰职业技术学院电子工程系电子信息技术教研窒主任,副教授。从事电气技术和电子技术的教学和研究。