900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > LED数码管静态显示 C语言程序 PIC单片机驱动LED数码管显示程序

LED数码管静态显示 C语言程序 PIC单片机驱动LED数码管显示程序

时间:2020-12-16 21:06:38

相关推荐

LED数码管静态显示 C语言程序 PIC单片机驱动LED数码管显示程序

;*****该程序用于驱动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

本程序完毕,本程序的c语言版本请打开 /mcu/558.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。