英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4811|回复: 3
打印 上一主题 下一主题

pic单片机驱动led数码管显示程序

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-21 18:43:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1、2、3、4、5、6、7、8*******
;****单片机学习网经典程序已测试,led数码管共阴和共阳不同请修改码值转换表部分
LIST P=18F458
INCLUDE "P18F458.INC"
;所用的寄存器
XIANR EQU 0X20
ORG 0X00
GOTO MAIN
ORG 0X30
;****************以下为码值转换表********************
CONVERT ADDWF PCL,1
RETLW 0XC0 ;0,显示段码与具体的硬件连接有关
RETLW 0XF9 ;1
RETLW 0XA4 ;2
RETLW 0XB0 ;3
RETLW 0X99 ;4
RETLW 0X92 ;5
RETLW 0X82 ;6
RETLW 0XD8 ;7
RETLW 0X80 ;8
RETLW 0X90 ;9
RETLW 0X88 ;A
RETLW 0X83 ;B
RETLW 0XC6 ;C
RETLW 0XA1 ;D
RETLW 0X86 ;E
RETLW 0X8E ;F
RETLW 0X7F ;"."
RETLW 0XBF ;"-"
RETLW 0X89 ;H
RETLW 0XFF ;DARK
RETURN
;**************初始化子程序*****************
INITIAL
BCF TRISA,5 ;置RA5为输出方式,以输出锁存信号
BCF TRISC,5
BCF TRISC,3 ;设置SCK与SDO为输出方式
BCF INTCON,GIE ;关闭所有中断
MOVLW 0XC0
MOVWF SSPSTAT ;设置SSPSTAT寄存器
MOVLW 0X30
MOVWF SSPCON1 ;设置SPI的控制方式,允许SSP方式,并且时钟下降
;沿发送数据,与"74HC595当其SCLK从低到高电平
;跳变时,串行输入数据(DI)移入寄存器"的特点相对应
MOVLW 0X11 ;显示值寄存器赋初值,每个值占两个字节,
MOVWF XIANR ;从8开始显示
RETURN ;返回
;***************led数码管显示子程序******************
;SPI发送显示子模块
DISPLAY
TRANSMIT CLRF PORTA ;LACK送低电平,为锁存做准备
MOVWF SSPBUF ;启动发送
WAIT
BTFSS PIR1,SSPIF
GOTO WAIT ;等待发送结束
BCF PIR1,SSPIF ;清除中断标志
NOP
BSF PORTA,5 ;最后给一个锁存信号,代表一显示任务完成
RETURN
;*****************pic单片机驱动led显示程序的主程序开始***************
MAIN NOP
CALL INITIAL ;调用系统初始化子程序
LOOP MOVF XIANR,W
CALL CONVERT ;查出XIANR的显示段码值
CALL DISPLAY
DECF XIANR
DECF XIANR ;显示值减2,因为按字存放,按字节读取
MOVF XIANR,W
SUBLW 0X01
BTFSS STATUS,Z
GOTO LOOP ;若送完显示的数,则退出显示
HERE GOTO HERE
END

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-23 23:11 , Processed in 0.051491 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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