共7条
1/1 1 跳转至页
max 请教谁有max7219驱动8个数码管的c51汇编程序
问
小弟是做毕业设计的,请教谁有max7219驱动8个数码管的c51汇编程序,我是用的串口传送的,自己编的怎么也不行,各位求你们了,我快答辩了,还没调好,谢谢谢谢!!!!!急救呀!!!!!!
答 1:
你用ZLG7289多方便用ZLG7289即便宜又有参考的中文资料及汇编例程!
答 2:
硬件早做好了要改也没时间了硬件早做好了要改也没时间了
答 3:
是选修课论文吧
答 4:
“c51汇编程序”不太懂。费解。
答 5:
我有,给我发个EMAIL。给我发EMAIL我传给你
答 6:
max7219部分原代码MAX7219的编程非常简单,只占用系统的3个普通I/O口,本例使用的是P1.5,P1.6与P1.7口,
实际上改用其它任意3个普通I/O口都可以。
(1)从CPU输出I/O口到MAX7219芯片DIN数据输入口的基本数据传输格式为16位串行数据,
不管是传送控制数据还是显示数据,都是按16位串行数据进行的。
(2)对单片MAX7219而言,传送的顺序从DIG0到DIG7,即先送高位,后送低位,而且每一
位所对应的16位串行数据也是从位15开始至位0结束,这一点恰好与常用的单片机系统移位
寄存器74LS164相反。
(3)在多片MAX7219串联方式下,CPU先最远端的MAX7219芯片传送数据,然后依次由远到
近,最后才传送相邻最靠近的CPU的那一片MAX7219。
对两片MAX7219一次同时传送数据,即采用32位串行数据移位通信的方法,也可以充分利用
MAX7219的不工作方式寄存器。对两片MAX7219分别送16位串行数据,这样程序会更简洁一些,
而且可读性更好。
……
MOV 70H,#0FFH ;译码方式控制字
MOV 71H,#0F5H ;亮度控制字(可调) MOV 72H,#0F5H ;扫描个数控制字
MOV 73H,#0F1H ;关闭REG控制字
MOV 74H,#0F0H ;显示测试控制字
MOV R1,#05H ;7219-1初始化
MOV R2,#09H
MOV R5,#00H
MOV R0,#70H
LCALL DIP
MOV R1,#05H ; 7219-2初始化
MOV R2,#09H
MOV R5,#0FH
MOV R0,#70H
LCALL DIP
……
(40H为显示BCD码缓冲区首址)
MOV R1,#06H ; 7219-1送数
MOV R2,#01H
MOV R5,#00H
MOV R0,#40H
LCALL DIP
MOV R1,#06H ; 7219-2送数
MOV R2,#01H
MOV R5,#0FH
MOV R0,#46H
LCALL DIP
……
(显示驱动子程序)
DIP: NOP
PL1: MOV A,R5 ;R5=0 送数据给7219-1
JNZ PL2 ;R5≠0 送数据给7219-2
MOV 21H,#00H ;启动不工作方式REG
MOV 20H,#00H
LCALL DIP2
PL2: MOV 21H,R2 ;7219REG地址指针送21H
MOV 20H,@R0 ;BCD码缓冲区指针送20H
INC R2
INC R0
LCALL DIP2
MOV A,R5
JZ PL3
MOV 21H,#00H
MOV 20H,#00H
LCALL DIP2
PL3: SETB P1.5 ;LOAD上升沿锁存最后移入的16位数
DJNZ R1,PL1 ; 如未完,接着送下一组16位数
RET
(16位数据移位子程序)
DIP2: CLR P1.5
CLR P1.6
MOV R7,#10H
PL4: MOV C,0FH ;16位数的最高位送7219的DIN
MOV P1.7,C
SETB P1.6 ;7219CLK的上升沿锁存该位数
MOV A,21H ;移位操作
RL A
MOV 21H,A
MOV A,20H
RLC A
MOV 20H,A
MOV 08H,C
CLR P1.6 ;下降沿把数据移出DOUT端口
DJNZ R7,PL4
RET
答 7: WWW。ICBES。COM
实际上改用其它任意3个普通I/O口都可以。
(1)从CPU输出I/O口到MAX7219芯片DIN数据输入口的基本数据传输格式为16位串行数据,
不管是传送控制数据还是显示数据,都是按16位串行数据进行的。
(2)对单片MAX7219而言,传送的顺序从DIG0到DIG7,即先送高位,后送低位,而且每一
位所对应的16位串行数据也是从位15开始至位0结束,这一点恰好与常用的单片机系统移位
寄存器74LS164相反。
(3)在多片MAX7219串联方式下,CPU先最远端的MAX7219芯片传送数据,然后依次由远到
近,最后才传送相邻最靠近的CPU的那一片MAX7219。
对两片MAX7219一次同时传送数据,即采用32位串行数据移位通信的方法,也可以充分利用
MAX7219的不工作方式寄存器。对两片MAX7219分别送16位串行数据,这样程序会更简洁一些,
而且可读性更好。
……
MOV 70H,#0FFH ;译码方式控制字
MOV 71H,#0F5H ;亮度控制字(可调) MOV 72H,#0F5H ;扫描个数控制字
MOV 73H,#0F1H ;关闭REG控制字
MOV 74H,#0F0H ;显示测试控制字
MOV R1,#05H ;7219-1初始化
MOV R2,#09H
MOV R5,#00H
MOV R0,#70H
LCALL DIP
MOV R1,#05H ; 7219-2初始化
MOV R2,#09H
MOV R5,#0FH
MOV R0,#70H
LCALL DIP
……
(40H为显示BCD码缓冲区首址)
MOV R1,#06H ; 7219-1送数
MOV R2,#01H
MOV R5,#00H
MOV R0,#40H
LCALL DIP
MOV R1,#06H ; 7219-2送数
MOV R2,#01H
MOV R5,#0FH
MOV R0,#46H
LCALL DIP
……
(显示驱动子程序)
DIP: NOP
PL1: MOV A,R5 ;R5=0 送数据给7219-1
JNZ PL2 ;R5≠0 送数据给7219-2
MOV 21H,#00H ;启动不工作方式REG
MOV 20H,#00H
LCALL DIP2
PL2: MOV 21H,R2 ;7219REG地址指针送21H
MOV 20H,@R0 ;BCD码缓冲区指针送20H
INC R2
INC R0
LCALL DIP2
MOV A,R5
JZ PL3
MOV 21H,#00H
MOV 20H,#00H
LCALL DIP2
PL3: SETB P1.5 ;LOAD上升沿锁存最后移入的16位数
DJNZ R1,PL1 ; 如未完,接着送下一组16位数
RET
(16位数据移位子程序)
DIP2: CLR P1.5
CLR P1.6
MOV R7,#10H
PL4: MOV C,0FH ;16位数的最高位送7219的DIN
MOV P1.7,C
SETB P1.6 ;7219CLK的上升沿锁存该位数
MOV A,21H ;移位操作
RL A
MOV 21H,A
MOV A,20H
RLC A
MOV 20H,A
MOV 08H,C
CLR P1.6 ;下降沿把数据移出DOUT端口
DJNZ R7,PL4
RET
答 7: WWW。ICBES。COM
共7条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |