单片机在赤道式天文望远镜控制系统中的应用

时间:2009-04-02来源:网络

  2 、下位机软件流程图

3、子程序部分

  (1)键盘输入及显示部分

  在该系统中,我们选用了8279芯片,在程序中查询键值,送入固定单元,如果无键按下,则送#0FFH入固定单元,然后查询此单元,如果为#0FFH,则返回,否则根据单元的键值内容转入相应的功能子程序;而显示部分主要把待显示的数据经过拆分成7位(本系统采用7位数码管显示),分别送给显示缓冲区,由查表的方式从表中取出7个相应的字型,送到8279数据口实现动态显示,8279的键盘扫描及显示方式是通过初始化编程来实现的,8279初始化部分程序如下:

  MOV DPTR, #7FF0H; 8279芯片的状态地址

  MOV A, #0D1H; 清除命令

  MOV @DPTR, A; 命令字送入

  LL: MOV A, @DPTR; 读8279状态字

  JB ACC.7, LL ; 清除等待

  MOV A, #08H; 显示器左边输入外部译码,双键互锁方式

  MOV @DPTR, A; 命令字送入

  MOV A, #2AH; 时钟编程命令

  MOV @DPTR,A; 命令字送入

  RET; 返回

  (2)MC146818时钟部分

  MC146818芯片是摩托罗拉公司生产的一种可编程的时钟芯片,该系统中用它来读写恒星时,其中一些主要的操作就是芯片的初始化,读时间操作,写时间操作几大部分,在使用该芯片进行执行读/写时间操作时,必须得注意,要首先查询它的状态看它是否正在刷新数据,如果是,必须等刷新数据动作完成之后再对芯片进行读/写操作,否则容易出错,MC146818的初始化部分程序如下:

  MOV DPTR,#0BFCAH; A寄存器口地址

  MOV A,#26H; 命令字

  MOVX @DPTR,A

  INC DPL; B寄存器口地址

  MOV A,#1AH; 命令字

  MOVX @DPTR,A

  RET; 返回

  读时间子程序:

  MOV DPTR, #0BFCAH

  AA: MOVX A, @DPTR; 读取状态字

  ANL A, #80H

  JNZ AA; 芯片是否正在刷新?否,读取数据

  MOV DPTR, #0BFC0H;读秒单元

  MOVX A, @DPTR

  MOV @R1, A

  INC R1

  MOV DPL, #0C2H; 读分单元

  MOVX A, @DPTR

  MOV @R1,A

  INC R1

  MOV DPL, #0C4H; 读时单元

  MOVX A, @DPTR

  MOV @R1, A

  RET; 返回

  写时间的子程序同上类似,不再多述。

  (3)串行通信子程序

  W77E58实现双串口通信,初始化完毕后进入主流程,逐个查询串口是否有通信数据请求,如果有则进入通信子程序执行并返回,否则程序直接往下执行,把下位机的数据分别发送给把手盒和工控机,等待接收控制命令。具体的初始化程序如下:

1 2 3

关键词: 应用 控制系统 天文望远镜 赤道 单片机 汇编语言 自动找星 控制算法 单片机

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版