西南科技大学高等教育自学考试论文 开始 将DS1302写保护 数量初始化 RST一端送高电平 去除读写保护 写入DS1302读地址 RST一端送高电平 将该地址数据读出 写DS1302地址 数据读完了 向该地址写入数据 数据写完了 结束 将读出的数据暂存,带显示 图4-5 DS1302进行读写的程序流程图
4.4显示驱动模块
系统运行过程中的数据显示是人机交互对话的一个重要通道。通过系统数据的显示,我们才可以更好的了解系统运行的状态,从而便于对整个系统进行必要的操作。本系统中采用共阳极的数码管,其中采用ULN2803作为驱动数码管的段选的芯片,采用简单又便宜的9012三极管来驱动数码管的位选,节约成本,程序编写简单。 4.4.1 ULN2803驱动器的应用
考虑到数码管驱动信号要求的驱动电流较大,采用功率驱动器件ULN2803,芯片外形如图4-6所示。此芯片是八组NPN型达林顿功放三极管集成芯片,典型的输入电
28
西南科技大学高等教育自学考试论文
压是5V,集电极输出功率可达50VX600mA。因此采用ULN2803作为共阳数码管的段信号驱动器,而共阳数码管的位信号驱动则采用8个晶体管9012来实现。又由于ULN2803为低电平驱动,所以数据送到单片机端口之前,应在程序中先将数据取反,然后将数据送到与ULN2803输入端口相连接单片机的PO端口即可,简化软件程序。
图4-6 芯片外形
4.4.2 显示程序设计
其显示子程序如下:
;----------------------------------------------------------- Display: Mov R0 , DisBufptr
Mov A, @R0
DisPlayl: Mov Dptr, #DisTab
Movc A, @A+Dptr
Cpl a
Mov DisModPort, A
Mov A, DisCSPtr
Mov DisCSPort, A RL A
Mov DisCSPtr, A
Inc DisBufPtr
Jb Acc. 0, DisQuit
InitDisO: Mov DisCSPtr, #11111110B
Mov DisBufPtr, #DisBuf
DisQuit: R
;------------------------------------------------------------
29
西南科技大学高等教育自学考试论文
每次先送一位要显示的数据字节,然后再送该位LED的位地址字节,直到8位显示完全。本系统在运行过程中需要显示察看的数据有时钟及遥控器键盘显示数值。正常工作中8位显示器显示实时时钟,时间显示小时、分钟和秒钟,其中有两位用来显示“----”,用以分隔小时、分钟和秒钟,这样显示更加清晰。当然,在测试期间,数码管用来显示遥控器的键值。
4.5系统键功能
4.5.1遥控键盘
键盘是系统输入数据设备应用最广泛的一种,它也是人机交互对话。对系统进行操作的重要通道,操作者的许多操作意图是通过键盘来输入。本系统键盘不多的情况下采用中断方式,把键盘信号采集放在中断程序中除了,键盘的功能放在任务操作模式中完成。
其红外线遥控器解码的中断子服务子程序如下所示: :Function: controller Interrupt Jntoentry:Jb KeyGetF,IntQ Jb Keypress,IntQ Push ACC Push PSW
Mov GetKey+1,THO Mov GetKey,TLO Mov THO,#00H Mov TLO,@00H CLr C
Mov A,GetKey+1 Subb A,#Guide JnC IntoEnd Clr C
Mov A,GetKey+1 Subb A,#Guide Jnc IntoEnd Clr C
30
西南科技大学高等教育自学考试论文
Mov A,GetKey Subb A,@Zerol Mov A,GetKey+1 Subb A,#ZeroH Cpl C
Mov KeyBuf+1,A Jc Int00cut Xrl A,#03H Jnz Int0End Mov A,KeyBuf Subb A,#20H Mov KeyGet Setb KeyGetf Setb Keypress
Mov secl0time5,#Keyyime Clr lightF
intoEnd: Mov KeyBuf,#7FH Mov KeyBuf+1,#0FFH Int00ut: POP PSW POP ACC RetI
上面程序可以把遥控器要使用的红外遥控器每一个按键的按值读出来,并且通过数码管将键值显示出来,以便观察遥控键盘信号采集正确与否。 4.5.2 键功能处理程序
在执行完键盘采集工作后,如果有键按下,程序转入键处理功能程序。系统根据采集过程中得到的键号,散转到相应的键处理子程序,通过键盘设置修改系统工作参数,其出现如下:
DoKey: Mov a,KeyGet R1 a
Mov Dptr,#KeySub
31
西南科技大学高等教育自学考试论文
Jmp @a+dptr KeySub: Ajmp Key0 ;0 Ajmp Key1 ;1 Ajmp Key2 ;2 Ajmp Key3 ;3 Ajmp Key4 ;4 Ajmp Key ;5 Ajmp key ;6 Ajmp key ;7 Ajmp key ;8 Ajmp key ;9
可见,通过对系统不同功能进行测试,系统工作正常,与设定值相比调光误差为±5.0% ,测试效果良好,满足实用的要求。
32