实验数码管基本输入输出实验Word文档格式.docx
- 文档编号:22593342
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:14
- 大小:396.61KB
实验数码管基本输入输出实验Word文档格式.docx
《实验数码管基本输入输出实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验数码管基本输入输出实验Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
运行程序,观察两只数码管的变化情况
三、实现功能用到的硬件电路设计和电路板的链接方法
1.基本输入输出实验
参看电路原理图
说明:
将跳线器JP_RB与KEY0-KEY5,JP_RD的LED0-LED7短接。
2.数码管实验
将跳线器JP_RB的KEY0,JP_RD的SEG_A~DP短接
四、软件设计
流程图设计
流程:
将p16f877a.inc包含进来
定义段码寄存器
定义COUNT1寄存器用于延时常数
定义COUNT2寄存器用于延时常数
定义程序其实
空指令
跳转到MAIN主程序
转到体1
将PORTE0设置为输出端口
将PORTE1设置为输出端口
将PORTD设置为输出端口
转到体0
将PORTD清零
将PORTE0清零
将PORTE1清零
将2存入W
与0FH相与屏蔽高4位
调用查表子程序获得笔段码
将断码值存入ONE_BIT
与80H相加,加入小数点段码
送出个位段码
关闭小数点后1位
选通个位显示位
调用延时子程序
将3与0FH相与屏蔽高4位
调用查表指令获得笔段码
送出3的段码
关闭个位显示位码和小数点
选通小数位显示位码
调用延时
跳回重复显示
3.程序设计和注释
基本输入输出
;
****************************************Copyright(c)***************************************************
**SchoolofInformationScienceandEngineering,
**YunnanUniversity
**
**--------------FileInfo-------------------------------------------------------------------------------
**Filename:
1.asm
**LastmodifiedDate:
2010-09-15
**LastVersion:
1.0
**Descriptions:
**------------------------------------------------------------------------------------------------------
**Createdby:
Zoujin
**Createddate:
2010-09-15
**Version:
1.0
Theoriginalversion
********************************************************************************************************
**功能:
本实验要求用PIC16F877A的PORTB0~5监控与之相连的六个按键KEY0~KEY5,用PORTD0~5控制与之相连的六个发光
二极管LED0~LED5。
每当有按键被按下时就点亮该按键对应的发光二极管,按键被释放后就熄灭所有的发光二极
管。
**说明:
将跳线器JP_RB的KEY0~KEY5,JP_RD的LED0~LED7短接。
运行程序,不断按击KEY0~KEY5键,看LED变化情况。
#includep16f877a.inc
TEMPEQU20H;
定义TEMP寄存器
ORG00H
NOP;
GOTOMAIN
**函数名称:
main
**函数功能:
获取RB端口的值,判断哪个按键被按击,病点亮对应的LED,松开按键熄灭所有LED。
**使用说明:
MAIN
BCFSTATUS,RP1
BSFSTATUS,RP0;
转到体
CLRFOPTION_REG;
开启内部弱上拉
CLRFTRISD;
MOVLWB'
00111111'
MOVWFTRISB;
将RB0-RB5设置为输入端口
BCFSTATUS,RP0;
CLRFPORTD;
LOOP
MOVFPORTB,0;
是,把PORTB存到TEMP
MOVWFTEMP
COMFTEMP,1;
TEMP取反
MOVLW0x3F;
将F存到W寄存器
ANDWFTEMP,1
MOVFTEMP,0;
将TEMP送到W寄存器
MOVWFPORTD;
点亮按键有变化对应的LED
GOTOLOOP;
子程序返回
*********************************************************************************************************
END
**EndOfFile
*********************************************************************************************************
数码管显示:
2.asm
用PIC中档单片机的I/O口控制两位共阴极的数码管,显示小数“.3”.其中数码管的个笔段和小数点位分别用一
个的完整I/O口的个引脚来控制,两位数码管的位选信号则用另外两个I/O口来控制。
将跳线器JP_RB的KEY0,JP_RD的SEG_A~DP短接。
运行程序,观察两只数码管的变化情况。
ONE_BITEQU20H;
COUNT1EQU21H;
定义COUNT1寄存器
COUNT2EQU22H;
定义COUNT2寄存器
********************************************************************************************************
通过RE端口来控制选通哪一只数码管,通过RD端口来控制数码管输出结果。
BCFTRISE,0;
BCFTRISE,1;
BCFPORTE,0;
将PORTE0清零
BCFPORTE,1;
LOOP
MOVLW.2
ANDLW0FH
CALLTABLE;
调用查表指令
MOVWFONE_BIT
MOVLW80H
ADDWFONE_BIT,0
显示个位段码和小数点
关闭小数点后位显示位码
BSFPORTE,1;
选通个位显示位码
CALLDELAY_20ms
MOVLW.3
显示小数段码
BSFPORTE,0;
选通小数位显示位码
CALLDELAY_20ms
GOTOLOOP
查表子程序,用于显示段码数字
数码管为共阴数码管
TABLE
ADDWFPCL,1
RETLW3FH;
"
0"
RETLW06H;
1"
RETLW5BH;
2"
RETLW4FH;
3"
RETLW66H;
4"
RETLW6DH;
5"
RETLW7DH;
6"
RETLW07H;
7"
RETLW7FH;
8"
RETLW6FH;
9"
DELAY_20ms
延时ms
**入口参数:
无
**出口参数:
MOVLWD'
28'
;
设置外部循环次数
MOVWFCOUNT1;
LOOP1
237'
设置内部循环次数
MOVWFCOUNT2;
DECFSZCOUNT2,1;
内部循环变量自减,为则跳转
GOTO$-1;
DECFSZCOUNT1,1;
外部循环变量自减,为则跳转
GOTOLOOP1;
RETURN;
返回主程序
五、实验结果与分析
六、实验小结(碰到的问题及解决方法)
1.在实验中,开始无法使LED管发光,最后发现是跳线器没有接对
2注意弱上拉的开启设置,数码管的表的设置;
3注意在数码管实验中的公共端的设置;
4实验前先检查电路是否连接完好,若没有,用跳脱线将所要用的电路连接起来,否则无法显示连接状态和显示结果;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数码管 基本 输入输出