历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2018年01月14日 | PT6311器件子程序

2018-01-14 来源:eefocus

VFD控制驱动器
;占用: ACC, R0, R1

;************ 公共变量定义 ****************
PUBLIC WVFD_6311
PUBLIC GETKEY_6311
PUBLIC SETUP_6311
PUBLIC DIM_VFD
PUBLIC CLEAR_VFD
PUBLIC WLED_6311
;************ 公共变量定义 ***************

; EXTRN BIT(B_CLOSE_MACH) ;现键值寄存
;************* 变量说明 ******************
BC_DIN_6311 BIT P2.4 ;数据输入脚
BC_DOUT_6311 BIT P2.5 ;数据输出脚
BC_CLK_6311 BIT P2.6 ;时钟
BC_STB_6311 BIT P2.3 ;使能脚

;************ 变量说明 *****************

;************** 常数定义 ******************

;************** 常数定义 ******************
PT6311KEY_NUM EQU 16D ;现在用的6311键总数(48个)
READ_6311KEY EQU 42H ;PT6311读键值命令符
;===========公共子程序 (可被C调用)==================

;************* 写6311显示内存 **************
;********************************************
;参数1: PAR 要写的显存地址(MSB: 1 1 B5,B4,B3,B2,B1,B0 :LSB)(B5-B0 MEM START ADDRESS)
;参数2: PAR+03H 写的高1位数据
;参数3: PAR+02H 写的中8位数据
;参数4: PAR+01H 写的低8位数据(先送出, 且从bit0位开始)
;返回:
;占用: ACC

WVFD_6311: ;发送数据到PT6311进行显示
CLR BC_STB_6311 ;pt6311 stb=0 (ENABLE)
MOV A,#40H ;data set command--write data to disp mem by increment address mod
LCALL DISP ;sendn data to pt6311 here is data set command
SETB BC_STB_6311 ;STD=1 (DISABLE)
NOP
CLR BC_STB_6311 ;PT6311 ENABLE
MOV A, PAR ;pt6311 disp mem start mem in 1DH
LCALL DISP ;send data to pt6311 here is address set command
; JB B_CLOSE_MACH,CLEAR_LBL1
MOV A, PAR+02H
LCALL DISP ;send data to pt6311 here is transmission data
MOV A, PAR+01H
LCALL DISP ;send data to pt6311 here is transmission data
SETB BC_STB_6311 ;PT6311 DISABLE
RET
CLEAR_LBL1: 
MOV A, #00H
LCALL DISP ;send data to pt6311 here is transmission data
MOV A, #00H
LCALL DISP ;send data to pt6311 here is transmission data
SETB BC_STB_6311 ;PT6311 DISABLE
RET
;******** 读键盘按键子程序 ************
;***************************************
;参数:
;返回: PAR 返回键值, 0=无按键
;占用: ACC

GETKEY_6311:
SETB BC_STB_6311 ;STB
SETB BC_DOUT_6311 ;pt6311 Dout
SETB BC_DIN_6311 ;pt6311 Din
NOP 
CLR BC_STB_6311 ;pt6311 STB
MOV A, #READ_6311KEY
LCALL DISP ;向pt6311发送读键值命令
MOV PAR, #PT6311KEY_NUM
NOP
LBL_P8:
CLR BC_CLK_6311 ;Pt6311 CLK
NOP
NOP
NOP 
NOP
MOV C,BC_DOUT_6311 ;pt6311 Dout
JC LBL_P9 
NOP
SETB BC_CLK_6311 ;Pt6311 CLK
NOP
DJNZ PAR, LBL_P8 ;PAR表示键位置
LJMP LBL_P99
LBL_P9:
NOP
LBL_P99:
SETB BC_STB_6311 ;pt6311 STB
RET 

;***************************************** 
;参数:
;返回:
;占用: ACC

SETUP_6311:
CLR BC_STB_6311 ;ready to send data to pt6311 STB
MOV A,#0CH ;0000,1010=0AH
LCALL DISP ;send command to pt6311,here is set displayer mod,11dig/17seg
SETB BC_STB_6311 ;STD
RET

;********** 打开荧光显示 **************
;参数:
;返回:
;占用: ACC

DIM_VFD: CLR BC_STB_6311 ;STD=0 点亮显示字符
NOP
MOV A,#8FH
LCALL DISP ;send data to pt6311,here is control disp dimming
NOP
SETB BC_STB_6311 ;STD=1
RET
;********** 清除11段数据显示(清荧光屏) ******** 
;参数:
;返回:
;占用: ACC, R1

CLEAR_VFD:
MOV R1,#0EH ;清除14段数据显示
MOV PAR, #0C0H ;置显存第1段的地址
LBL200: 
MOV PAR+01H, #00H ;置低8位数据
MOV PAR+02H, #00H ;置中8位数据
LCALL WVFD_6311 ;送入pt6311显存
MOV A, PAR
ADD A, #03H
MOV PAR, A ;start address move to next digit 下一个
DJNZ R1,LBL200
RET

;********** 送数据到6311的LED口 *********

;参数: PAR 要送入的数据
;返回:
;占用: ACC

WLED_6311:
CLR BC_STB_6311 ;pt6311 stb=0 (ENABLE)
MOV A,#41H ;data set command--write data to LED PORT
LCALL DISP ;sendn data to pt6311 here is data set command
MOV A, PAR ;pt6311 LED DATA
LCALL DISP ;send data to pt6311 here is address set command
SETB BC_STB_6311 ;PT6311 DISABLE
RET

;************** 写一字节到6311 ************
;参数: ACC 要写入的数据(从bit0位开始送出)
;返回:
;占用: ACC, R0

DISP: MOV R0,#008H ;send command to pt6311
CLR C
LBL206: CLR BC_CLK_6311 ;PT6311 CLK
RRC A
MOV BC_DIN_6311,C ;send data to pt6311
NOP
NOP
NOP
NOP
NOP
SETB BC_CLK_6311 ;CLK 
NOP
NOP
NOP
NOP
DJNZ R0, LBL206
SETB BC_DIN_6311
SETB BC_CLK_6311 ;BC_CLK_6311 normal high
RET


推荐阅读

史海拾趣

Bomar公司的发展小趣事

90年代初,电子行业的竞争日益激烈,Bomar公司为了保持市场领先地位,开始寻求与全球优秀制造商的合作。在这一背景下,公司与一些精选的亚洲工厂建立了密切的合作关系。这些工厂按照Bomar公司的规格和标准进行生产,确保了产品质量的稳定性和一致性。通过与亚洲工厂的合作,Bomar公司成功降低了生产成本,提高了生产效率,进一步巩固了其在全球市场的地位。

Gustav Klauke GmbH公司的发展小趣事

近年来,随着物联网和人工智能技术的快速发展,智能化物流成为了电子行业的新趋势。Bomar公司敏锐地捕捉到了这一市场机遇,开始将业务范围拓展至智能化物流领域。通过与深兰科技等公司的合作,Bomar公司成功推出了智能化物流、仓储装备以及清洁机器人等产品,并成功销往欧洲市场。这些产品的推出不仅提升了Bomar公司的市场竞争力,也为公司的未来发展开辟了新的增长点。

聚辰(Giantec)公司的发展小趣事

在快速发展的同时,港源公司始终不忘履行社会责任。公司秉承绿色环保、节能减排的理念,在生产经营活动中以预防为主、全员参与为行动纲领,防治污染、节废减排。港源公司选用绿色环保RoHS材料,严格管控生产制造过程,确保生产出的产品符合国际环保标准。此外,公司还积极参与社会公益活动,为社会和谐发展贡献自己的力量。

Everspin公司的发展小趣事

在XXXX年,Everspin的股票开始在纳斯达克全球市场交易,股票代码为MRAM。这一上市动作不仅为Everspin提供了更多的资金支持,也进一步提升了其在行业中的知名度和影响力。此外,兆易创新旗下的GigaDevice半导体(香港)有限公司还斥资500万美元购买了Everspin约5%的股份,显示出市场对Everspin技术和发展前景的认可。

amcc [applied micro circuits corp]公司的发展小趣事

在XXXX年,Everspin的股票开始在纳斯达克全球市场交易,股票代码为MRAM。这一上市动作不仅为Everspin提供了更多的资金支持,也进一步提升了其在行业中的知名度和影响力。此外,兆易创新旗下的GigaDevice半导体(香港)有限公司还斥资500万美元购买了Everspin约5%的股份,显示出市场对Everspin技术和发展前景的认可。

Axiomtek公司的发展小趣事

尽管Everspin在初期经历了亏损,但随着时间的推移,其财务状况逐渐改善。特别是在XXXX年和XXXX年,Everspin的总收入和净利润均实现了显著增长。这一财务表现证明了Everspin在MRAM领域的领先地位和持续盈利能力。

问答坊 | AI 解惑

飞思卡尔HCS08和coldfire v1 KBI教程

这是我们写的一个教程,适用于飞思卡尔的HCS08系列单片机和coldfire v1系列的MCU…

查看全部问答>

求个s3c6410,wince6 外部中断驱动

求个s3c6410,wince6下外部中断16驱动程序, 只要能接收中断就行, 如果产生中断,调用ReadFile()返回,没有中断,ReadFile()阻塞。 …

查看全部问答>

请教linux下刻录DVD!!!急讶!帮忙讶!

那位大虾在linux下用命令行刻录过DVD的,指点一下。 我现在要在Fedora11下用命令行(不要用界面方式)进行刻录DVD盘,刻录的内容是一般数据。要求刻录的格式为UDF格式。请问谁能给一个清晰的指导建议不?先谢谢了! 我在网上找了很多相关资 ...…

查看全部问答>

关于单片机的问题

请问单片机是什么?那一种好?价格怎样? 还有,怎么做流水灯试验?编程语言怎样? 最好有比较适合新手的语言,谢谢!!…

查看全部问答>

威睿电通(杭州)招聘

高级嵌入式驱动开发工程师 职责: 1、基于 ARM 的 Chip CORE 及外围芯片驱动开发 2、负责嵌入式系统的架构及平台设计 3、进行参考项目的开发,支持及嵌入式相关疑难问题的调试,定位及解决 4、负责客户培训和指导 5、负责部门内新员工 ...…

查看全部问答>

VxWorks应用层通信程序

  有在VxWorks应用层通信的软件没,比如传送一个文件或一串消息? 请各位高手指点?…

查看全部问答>

急死我了,请各位大虾不吝赐教

语音卡实现电话小秘书 有哪位大虾开发过?我现在是毫无头绪啊,请各位大虾不吝赐教 语音卡是V系列PCI 8路模拟接口语音处理卡,一片卡上有8个待分配的语音通道,可配置外线、内线、录音三种模块…

查看全部问答>

请问,STM32的串口能接GPRSModem吗?只用RX/TX/GND可以吗?

                                 请问,STM32的串口能接GPRS Modem吗? 只用RX/TX/GND可以吗?…

查看全部问答>

你第一linux操作系统是什么,你现在用什么linux操作系统

  调查,我的第一个linux操作系统是ubuntu,我从09年暑假开始接触linux,装的就是ubuntu8.04,然后虽然接触过fedora,redhat,debian,suse等,但一直觉得ubuntu爽快,哈哈,现在一直在用ubuntu,甚至开发FPGA,大家呢,欢迎大家讨论…

查看全部问答>

DIY数控电源进度帖

安装了controlSUIT,开始回顾TI的例程,用官方的.c文件,建了工程,编译通过了。 Piccolo的资料相对没有2812那么多。进度不是很快,有压力啊。…

查看全部问答>