PS1008-BASIC单片机应用系统设计方法及实例

🏠 首页 《无线电》杂志 1996年 🔗 第5期 🔗 第10页 分类:胆机设计与交流大赛 🔗 祁劲松 🔗

PS1008是一种可以使用BASIC形式的高级语言编程的单片机,其最突出的特点是易学易用。但有不少使用者以前对单片机的应用没有经验,这里特介绍用PS1008 BASIC单片机设计应用系统的步骤方法,并对照在“力源杯”上获奖的一个实例加以说明。

一、设计方法

设计的一般步骤如图1所示。

图1
图1 🔍原图 (496×941)

1.需求分析

项目确定以后,首先要进行需求分析,即明确要解决的问题和要求,所需的输入、输出参数等。这是一个不可忽略的环节,不重视它可能导致大量返工。

2.总体设计

问题明确后将硬件分成各个模块,各模块以单片机为核心联接起来,画出硬件框图。

软件的总体规划同时进行,也分成各个模块,并画出软件流程图。

要注意的是硬件和软件的设计应穿插结合起来,反复优化。

3.具体设计

硬件方面将单片机的各个I/O端口的功能定下来,设计各模块电路,绘制完整原理图。做出印制电路板,或暂用实验板。

软件方面将单片机的各个RAM的用途定下来,编写主程序和各个模块。

因为PS1008的端口较少、RAM和程序容量也不多,所以要用端口复用、RAM分时复用、多调用子程序等方法反复调整,以满足要求。

4.调试

首先进行各硬件、软件模块的分别调试,在此基础上将系统联成实际使用环境,进行在线整体调试。

在调试中可多用DEBUG语句,以辨别程序的走向、参数的变化、输入输出的改变等。

当发现问题时就需要对系统的具体设计甚至总体设计进行适当的修正,并反复调试,直至达到系统的设计要求。

二、实例

以下用楼宇对讲电脑安全门系统的控制部分为例,进行对照说明。

1.需求分析

楼宇对讲电脑安全门系统电子控制部分由在单元铁门上的一台主机和各住户家安装的分机组成,主要功能有两个:

●客人来到单元大门口,在主机上按下欲拜访的住户房号如701,701室的分机就振铃,住户提机可与客人对话,确认是要见的客人后,在分机上按下遥控开门键,主机就将电磁锁打开。

●单元内住户外出归来可按密码开门。

2.总体设计

硬件:主、分机方框图见图2。分机与主机之间的联线为4根:电源线起主机向分机供电作用,音频线传输上下行声音信号,信号线传输开门、选通信号,再一条地线。采用12键的键盘,即10个数字键,1个密码功能键和1个清除键(复位键),键盘还带按键发光功能。锁采用12伏的电磁锁。

图2
图2 🔍原图 (528×1028)

软件:程序流程图见图3。与系统功能对应,软件主要分成密码判断、执行部分和通话控制部分。

图3
图3 🔍原图 (568×1371)

3.具体设计

单片机的控制口安排如下:

SYMBOL P-CLK=0 ’移位时钟口(输出)

SYMBOL P-LOCK=1 ’开锁控制口(输出)

SYMBOL P-MIC=2 ’麦克风控制口(输出)

SYMBOL P-SPK=3 ’喇叭控制口(输出)

SYMBOL P-KEY1=4 ’键盘口1(输入)

SYMBOL P-KEY2=5 ’键盘口2(输入)

SYMBOL P-LED=6 ’键盘发光控制口(输出、复用)

SYMBOL P-DATA=7 ’移位数据口(输出、复用)

SYMBOL P-BUTT=6 ’分机按键信号口(输入、复用)

SYMBOL P-ECHO=7 ’分机回送信号口(输入、复用)

RAM安排如下:

SYMBOL B-KEY=B0 ’键值字节

SYMBOL B-OUT=B1 ’分机号字节

SYMBOL B-POT=B2 ’电阻值字节

SYMBOL B-POT1=B3 ’查询电阻值字节

SYMBOL B-ADD=B4 ’键值计算字节

SYMBOL B-SOUND=B5 ’声音频率字节

SYMBOL B-SECRET=B6 ’密码字节

SYMBOL B-COUNT0=B8 ’计数器0字节

SYMBOL B-COUNT1=B9 ’计数器1字节

SYMBOL W-COUNT=W4 ’计数器字(16位)

因整个系统原理图较多、程序较长,这里以键盘模块的具体设计说明如下。

原理图见图4,键盘上除一复位键外,有11个键,为使读键稳定,所用电阻、电容都用误差在±5%以内的,并用2个口读入,复用的P-LED口可使键盘在按键时照明,通话时熄火节电。

图4
图4 🔍原图 (1161×1028)

程序如下:

’读键子程序

KEY

FOR B-COUNT1=1 TO 100’100*100ms=10s

PAUSE 100 ’暂停100ms

B-ADD=0 ’从P-KEY1读值不变

POTP-KEY1,S-SCALE,B-POT

IF B-POT>3 THEN CALC’有键按下则转换键值

B-ADD=6 ’从P-KEY2读值加6

POTP-KEY2,S-SCALE,B-POT

IF B-POT>3 THEN CALC’有键按下则转换键值

NEXT

GOTO KEY-RET ’超时返回

CALC:

HIGHP-LED ’开键盘发光管

FOR B-KEY=0 TO 5

LOOKUP B-KEY,(8,16,32,64,128,255),B-POT1

’查询POT值

IF B-POT<B-POT1 THEN DONE

NEXT

DONE:

B-KEY=B-KEY+B-ADD+1/11校正键值

SOUND P-SPK(S-F500,5) ’按键提示音

KEY-RET

RETURN ’键盘子程序返回

4.调试

也以键盘为例:

我们开始是用与使用说明书上例子中一样,每相邻键阻值相同,在实际使用中前几个读数稳定,后几个不稳,后来用误差理论分析得出,这样取值使第一个键电容、电阻误差可为30%,而最后一个只有7%,所以键盘电阻值不应为等差数列,而是键读出POT值应为等比数列,这样每一个键对应电阻的误差范围才一样。我们把6个键的POT值定为6,12,24,48,96,192,比较值定为8,16,32,64,128,255,取电容为0.1μF,电阻为470,1k,2k,4k3,10k,30k时,这样当电容、电阻值在正负33.3%以内变化时,对读键值没有影响。修改后的产品通过了-5℃~80℃度的温度实验,读数很稳定。(祁劲松)