微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 用AT90S1200代换显示驱动芯片MC14499的应用电路

用AT90S1200代换显示驱动芯片MC14499的应用电路

时间:03-20 来源:互联网 点击:

单字节指令,可进行十位数字运算,在32个工作寄存器中只有16~31个寄存器可执行立即数据的操作,并支持C语言编程,而且灵活方便,下面给出用AT90S1200代换MC1449的显示数据转换子程序和接收数据子程序。

4.1 驱动显示子程序

由于AT90S1200不能查表。故在显示子程序中应分别进行处理,主程序内使用了通用寄存器R26中带为的接收BCD码,并通过本子程序转换为段码,仍由R26带出并返回到调用程序处,本示例为0、1、2、3、4五个字段码的转换:
Data:CPI R26,$00 ;数据0的转换
BRNE Data0
LDI R26,$7B
RJMP DataD
Data0:CPI R26,$01 ;数据1由BCD转换为段码
BRNE Datal
LDI R26,$48
RJMP DataD
Datal:CPI R26,$02 ;数据2的转换
BRNE Data2
LDI R26,$D3
RJMP DataD
Data2:CPI R26,$03 ;数据3的转换
BRNE Data3
LDI R26,$D9
RJMP DataD
Data CPI R26,$04 ;数据4的转换
BREN Data4
LDI R26,$E8
RJMP DataD

DataD:RET

4.2 数据接收子程序

首先把状态寄存器的数据送到R18暂存,然后分别接收小数点及四位BCD码,并将数据寄存在R20、R21、R22、R23、R24中,程序如下:
PROG:IN R18,SREG ;状态标志寄存
CLC
SBIC PIND,0
SEC
ROL R29
ROL R28
ROL R27
INC R16
CPI R16,$14
BRNE PROGD
MOV R20,R27;小数点位置位的接收,寄存在R20
ANDI R20,$0F
MOV R21,R28 ;显示首位数据接收
SWAP R21
ANDI R21,$0F
MOV R22,R28 ;第二位接收
ANDI R22,$0F
MOV R23,R29 ;第三位接收
SWAP R23
ANDI R23,$0F
MOV R24,R29 ;第四位接收
ANDI R24,$0F
CLR R16
CLR R27
CLR R38
CLR R29
CPI R24,$0A
BRL0 RPOGD
CLR R20
LDI R21,$0F
LDI R22,$0F
LDI R23,$0F
LDI R24,$00
PROGD RETI

5 结束语

文中所述的方案已被成功应用于无功补偿控制器的显示系统中,经使用表明:AT90S1200不仅可以完全取代MC14499进行驱动显示,而且还具有功耗低、使用方便的特独性能,仅用8只外接电阻即可驱动四位动态显示系统,且接口非常灵活,可方便地与任何单片机接口,并可编程为串行同步接口、I2C接口、 SPI接口等,更重要的是提出了一种用MCU代换ADIC设计方案和实现思路,并经过实用表明完全可行,也比较有实用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top