pic课程设计多位数码管循环显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:单片机原理与接口技术课程设计设计题目:多位数码管循环显示
院系:机电工程学院
班级:2010级电气工程及其自动化专业姓名:江春林
学号:20113392
指导教师:史丽萍,闫广明,张波,
张扬,王冠然
设计时间:2013年12月
一:设计方案描述与论证
本次课程设计将会设计一个多位数码管显示的系统,在系统中用到的主要原件有PIC16F877A单片机一个,数码管四个。在单片机最小系统焊接完成以后,选择将数码管的位选接在单片机的RB1,RB2,RB3,RB4口(由于RB0为INT外部触发中断的输入引脚,故在此没有占用),将数码管的段选接在单片机D口。设置方向寄存器,B口的位1,位2,位3,位4设置为输出,D口设置为全输出。当RB1,RB2,RB3,RB4都输出1时,就可以点亮四个数码管。在D口输出需要显示的数即可在数码管显示出数字。在显示延时后对数进行自动加1即可完成对0~9999的循环显示。
二:硬件设计部分
硬件电路
工作原理
B口的1,2,3,4位为为选位,D口为段选,方向寄存器TRISB写B‘00011110’,TRISD写01H,即是B口1,2,3,4和D口都为输出。PROTB输出1时就可以把四个数码管点亮,需要输出的数写入D口即可。
三;软件设计部分
程序流程框图
主程序
十位进一 百位进一 千位进一
查表程序 延时程序
源程序:
list p=16f877A ; list directive to define processor
#include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _LVP_OFF & _DEBUG_ON & _CPD_OFF
;***** V ARIABLE DEFINITIONS
w_temp EQU 0x71 ; variable used for context saving
status_temp EQU 0x72 ; variable used for context saving
GE EQU 0x40
SHI EQU 0x41
BAI EQU 0x42
QIAN EQU 0X43
JIANGE EQU 0x44
.
;********************************************************************** ORG 0x000 ; processor reset vector
clrf
PCLATH
; ensure page bits are cleared
goto MAIN ; go to beginning of program
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STA TUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
; isr code can go here or be located as a call subroutine elsewhere
movf status_temp,w ; retrieve copy of STATUS register
movwf STA TUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
MAIN
; remaining code goes here
BSF STA TUS,RP0
CLRF TRISD
BCF TRISB,1
BCF TRISB,2
BCF TRISB,3
BCF TRISB,4
BCF STA TUS,RP0
BSF PORTB,1
BSF PORTB,2
BSF PORTB,3
BSF PORTB,4 LOOP1 MOVLW 00H
MOVWF GE
MOVLW 00H
MOVWF SHI
MOVLW 00H
MOVWF BAI
MOVLW 00H
MOVWF QIAN LOOP2 CLRF JIANGE
INCF GE,F
MOVLW .10
SUBWF GE,W
BTFSC STA TUS,2
CALL GE1
MOVLW .10
SUBWF SHI,W
BTFSC STA TUS,2
CALL SHI1
MOVLW .10
SUBWF BAI,W
BTFSC STA TUS,2
CALL BAI1
MOVLW .10
SUBWF QIAN,W
BTFSC STA TUS,2
GOTO LOOP1 LOOP MOVF GE,W
CALL CHABIAO
MOVWF PORTD
BCF PORTB,1
CALL DELAY
BSF PORTB,1
MOVF SHI,W
CALL CHABIAO
MOVWF PORTD
BCF PORTB,2
CALL DELAY
BSF PORTB,2
MOVF BAI,W