搜索
bottom↓
回复: 14

发一个在产品中使用的HT1621A的51汇编驱动

[复制链接]

出0入0汤圆

发表于 2006-5-30 21:07:37 | 显示全部楼层 |阅读模式
; MCU   89C52

; Fosc  11.0592MHz

;*************************************************************************************

;/*HT1621 4x32 Segment lcd Driver IC                                                 */

;/*    /CS: 片选

;   BZ,/BZ: 声音输出

;      /WR: 写脉冲输入,接一上拉电阻。在/WR信号的上升沿,DATA线上的数据写到HT1621。

;      /RD: 读脉冲输入,接一上拉电阻。在/RD信号的下降沿,HT1621内存的数据被读到

;           DATA线上,主控器可以在下个上升沿时锁存这些数据;

;     DATA: 外接上拉电阻的串行数据输入/输出;

;     /IRQ: 时基或WDT溢出输出,NMOS开漏输出;

;  命令          代码                   数据/命令    功  能

;  DEAD       110,A5A4A3A2A1A0,D0D1D2D3   数据     读RAM数据

;  WRITE      101,A5A4A3A2A1A0,D0D1D2D3   数据     写数据到RAM

;  READ-MODI

;  FY-WRITE   101,A5A4A3A2A1A0,D0D1D2D3   数据     读和写数据

;  SYS DIS    100,0-0000-000X    (00H)    命令0    关闭系统振荡器和LCD偏压发生器

;  SYS EN     100,0-0000-001X    (02H)    命令0    打开系统振荡器

;  LCD OFF    100,0-0000-010X    (04H)    命令0    关闭LCD偏压发生器

;  LCD ON     100,0-0000-011X    (06H)    命令0    打开LCD偏压发生器

;  TIMER DIS  100,0-0000-100X    (08H)    命令0    时基输出失效

;  WDT DIS    100,0-0000-101X    (0AH)    命令0    WDT溢出标志输出失效

;  TIMER ON   100,0-0000-110X    (0CH)    命令0    时基输出使能

;  WDT ON     100,0-0000-111X    (0EH)    命令0    WDT溢出标志输出使能

;  TONE OFF   100,0-0001-000X    (10H)    命令0    关闭声音输出

;  TONE ON    100,0-0001-001X    (12H)    命令0    打开声音输出

;  CLR TIMER  100,0-0001-1XXX    (18H)    命令0    时基发生器清零

;  CLR WDT    100,0-0001-11XX    (1CH)    命令0    清除WDT状态

;  XTAL 32K   100,0-0010-1XXX    (28H)    命令0    系统时钟源,晶振

;  RC  256K   100,0-0011-0XXX    (30H)    命令0    系统时钟源,片内256K RC振荡器

;  EXT 256K   100,0-0011-1XXX    (38H)    命令0    系统时钟源,外部时钟

;  BIAS 1/2   100,0-010a-bX0X    (XXH)    命令0    LCD 1/2偏压选项,

;                                (40H)             ab=00: 2COM

;                                (48H)             ab=01: 3COM

;                                (50H)             ab=10: 4COM

;  BIAS 1/3   100,0-010a-bX1X    (XXH)    命令0    LCD 1/3偏压选项,

;                                (42H)             ab=00: 2COM

;                                (4AH)             ab=01: 3COM

;                                (52H)             ab=10: 4COM

;  TONE  4K   100,0-10XX-XXXX    (80H)    命令0    声音频率,4KHz

;  TONE  2K   100,0-11XX-XXXX    (C0H)    命令0    声音频率,2KHz

;//////////////////////////////////////////////////////////////////////////

;  /IRQ DIS   100,1-00X0-XXXX    (00H)    命令1    使/IRQ输出失效

;  /IRQ EN    100,1-00X1-XXXX    (10H)    命令1    使/IRQ输出有效

;  F1         100,1-01XX-000X    (40H)    命令1    时基/WDT时钟输出1Hz

;  F2         100,1-01XX-001X    (42H)    命令1    时基/WDT时钟输出2Hz

;  F4         100,1-01XX-010X    (44H)    命令1    时基/WDT时钟输出4Hz

;  F8         100,1-01XX-011X    (46H)    命令1    时基/WDT时钟输出8Hz

;  F16        100,1-01XX-100X    (48H)    命令1    时基/WDT时钟输出16Hz

;  F32        100,1-01XX-101X    (4AH)    命令1    时基/WDT时钟输出32Hz

;  F64        100,1-01XX-110X    (4CH)    命令1    时基/WDT时钟输出64Hz

;  F128       100,1-01XX-111X    (4EH)    命令1    时基/WDT时钟输出128Hz

;  TOPT       100,1-1100-000X    (C0H)    命令1    测试模式

;  TNORMOL    100,1-1100-011X    (C6H)    命令1    普通模式

;                                                                           */

;

;/*****************************************************************/

SYS_DIS     DATA    00H

SYS_EN      DATA    02H

LCD_OFF     DATA    04H

LCD_ON      DATA    06H

TIMER_DIS   DATA    08H

WDT_DIS     DATA    0AH

TIMER_ON    DATA    0CH

WDT_ON      DATA    0EH

TONE_OFF    DATA    10H

TONE_ON     DATA    12H

CLR_TIMER   DATA    18H

CLR_WDT     DATA    1CH

XTAL_32K    DATA    28H

RC_256K     DATA    30H

EXT_256K    DATA    38H

BIAS1_2     DATA    50H    ;/*4COM*/

;//BIAS1_2    DATA    48H    /*3COM*/

;//BIAS1_2    DATA    40H    /*2COM*/

BIAS1_3     DATA    52H    ;/*4COM*/

;//BIAS1_3    DATA    4AH    /*3COM*/

;//BIAS1_3    DATA    42H    /*2COM*/

TONE_4K     DATA    80H

TONE_2K     DATA    0C0H

;******************************************************************

DATA_1621      BIT    P1.4

WR_1621        BIT    P1.5

RD_1621        BIT    P1.6

CS_1621        BIT    P1.7

COMM_1621       DATA   07H        ;/命令码寄存器* R7 */

;/******************************************************************/

;初始化HT1621

;/******************************************************************/

INTI_HT1621:

            MOV    COMM_1621,#BIAS1_3   ;/* 设置偏压(1/3)和占空比(1/4)*/

            LCALL  SENDCOMM_1621A

            MOV    COMM_1621,#SYS_EN    ;/* 打开系统振荡器            */

            LCALL  SENDCOMM_1621A

            MOV    COMM_1621,#RC_256K   ;/* 选择片内256KHz振荡器      */

            LCALL  SENDCOMM_1621A

            MOV    COMM_1621,#LCD_ON    ;/* 打开LCD偏压发生器         */

            LCALL  SENDCOMM_1621A

            ;MOV    COMM_1621,#TONE_2K   ;/* 声音频率,2KHz            */

            ;LCALL  SENDCOMM_1621A

            

;/*******************************************************/

;/*********HT1621 命令模式子程序:                ********/

;/*********SENDCOMM_1621A: ID+0                   ********/

;/*********SENDCOMM_1621B: ID+1                   ********/

;/*******************************************************/

SENDCOMM_1621A:

            MOV    A,#80H        ;/* ID 100+0     */

            SJMP   SENDCOMM_1621

SENDCOMM_1621B:

            MOV    A,#90H        ;/* ID 100+1     */

SENDCOMM_1621:

            CLR    CS_1621       ;/* REDAY        */

            MOV    R6,#04H       ;/* SEND ID+0/1  */

            ACALL  SENDBIT_1621



            MOV    R6,#08H       ;/* SEND COMMAND */

            MOV    A,COMM_1621

            ACALL  SENDBIT_1621

            SETB   CS_1621

            SETB   WR_1621

            SETB   DATA_1621

            RETI

;/*******************************************************/

;/*******HT1621 数据模式子程序:                  ********/

;/*******数据首址在R0                            ********/

;/*******向HT1621连续写入N(R7)字节数据           ********/

;/*******HT1621RAM 首地址在寄存器 A 里           ********/

;/*******在调用该子程序前要预置地址和字节数      ********/

;/*******************************************************/

SENDDATA_1621:

            CLR    CS_1621

            SETB   C

            CLR    WR_1621          ;ID第一位

            MOV    DATA_1621,C      ;WR '1' TO 1621

            SETB   WR_1621

            ANL    A,#3FH           ;确保地址有效

            OR     A,#40H           ;ID低2位

            ;MOV    A,#40H          ;'01-000000'ID低2位+地址00

            MOV    R6,#08H

            ACALL  SENDBIT_1621

SENDDATA0:

            MOV    A,@R0            

            MOV    R6,#08H

            ACALL  SENDBIT_1621

            INC    R0               ;数据地址加1

            DJNZ   R7,SENDDATA0

            SETB   CS_1621

            SETB   WR_1621

            SETB   DATA_1621

            RETI

;/*******************************************************/

;/*******向HT1621写入n Bit数据,n=R6<=8          *********/

;/*******************************************************/

SENDBIT_1621:                    ;/* SEND n BIT TO HT1621 */

            RLC    A

            CLR    WR_1621

            MOV    DATA_1621,C

            SETB   WR_1621

            DJNZ   R6,SENDBIT_1621

            RETI

;**********************************************************

            END

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2006-5-31 11:46:36 | 显示全部楼层
现在论坛正在步21IC的后尘,汇编是每人理的,呵呵

出0入0汤圆

发表于 2008-3-30 22:10:21 | 显示全部楼层
学习学习。。。

出0入0汤圆

发表于 2008-4-12 08:57:26 | 显示全部楼层
好东西,顶一下....

出0入4汤圆

发表于 2008-9-8 09:49:14 | 显示全部楼层
能用上

出0入0汤圆

发表于 2009-3-27 09:12:01 | 显示全部楼层
用力的顶啊,终于找到一个用汇编的啦

出0入0汤圆

发表于 2009-3-27 10:49:34 | 显示全部楼层
顶,汇编是艺术。

出0入0汤圆

发表于 2009-3-28 00:48:54 | 显示全部楼层
写得好的汇编容易看懂,写得好的比C还容易看懂,

出0入0汤圆

发表于 2009-3-28 09:20:27 | 显示全部楼层
屏太小了.
320240以上的资料就好了

出0入0汤圆

发表于 2010-11-25 22:20:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 10:09:25 | 显示全部楼层
mark

出50入0汤圆

发表于 2010-12-27 11:57:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 15:58:06 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表