pic课程设计多位数码管循环显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ; processor specific variable definitions

__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

相关文档
最新文档