南昌大学单片机实验报告Word文件下载.docx
- 文档编号:16232965
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:13
- 大小:154.83KB
南昌大学单片机实验报告Word文件下载.docx
《南昌大学单片机实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《南昌大学单片机实验报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
MOVSP,#60H;
初始化堆栈,将堆栈指针指向远离工作寄存器区域
MOVP2,#00H
START:
MOVP0,#0FFH;
点亮数码管
LCALLDELAY1s;
保持亮一秒钟
MOVP0,#80H;
熄灭数码管
MOVR2,#00H;
//循环显示0-F
DISPLAY:
MOVA,R2;
指向本次显示字符
MOVDPTR,#TABLE;
指向显示码表首字符
MOVCA,A+DPTR;
查显示码
MOVP0,A;
送数码管显示
INCR2;
指向下一个字符
LCALLDELAY1s
CJNER2,#16,DISPLAY;
判断显示结束否
MOVR2,#00H;
显示结束后重置字符指针
SJMPDISPLAY;
/*延时子程序*/
DELAY1s:
MOVR5,#10
DELAY50ms:
MOVR7,#200
LOOP1:
MOVR6,#123
NOP
LOOP2:
DJNZR6,LOOP2
DJNZR7,LOOP1
DJNZR5,DELAY50ms
RET
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
//0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
END
初始化堆栈,将堆栈指针指向60H
开始
将地址0FF送到P0口
点亮数码管
亮一秒
熄灭数码管
循环显示0—F
四、实验框图
五、实验原理
数码管相当于8个(7段和点号)发光二极管连接在一起,共阴极就是8个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。
六、PROTUES原理图
六、实验现象
数码管从0—F循环点亮。
七、实验心得
单片机需要我们在掌握硬件的基础上,用单片机语言在
keil软件上写出一定的程序,然后用Protues仿真,最后利用
stcisp烧到试验箱上,实现其特定的功能。
而在编程时需要逻辑力,创新力,知识组合力,知识搜索。
;
七段数码管显示,8个数码管动态显示
ORG0000H;
程序起始地址
设堆栈指针
MOVP2,#0FFH;
全灭显示,
MOV20H,#06H;
1显示码缓冲区
MOV21H,#5BH;
2
MOV22H,#4FH
MOV23H,#66H
MOV24H,#6DH
MOV25H,#7DH
MOV26H,#07H
MOV27H,#7FH
LOOP:
MOVR0,#20H;
R0指向显示缓冲区,全部数码管扫描完毕后,重新循环扫描
MOVA,#0FEH;
A中为位选择,初始值指向第一个数码管
MOVP0,#00H;
灭显示
LCALLDELAY1;
灭延时
DISPLAY1:
MOVP2,A;
P2口驱动数码管相应的位
MOVP0,R0;
显示码送出
INCR0;
指向下一个显示码缓冲区
LCALLDELAY1;
亮1ms
RLA;
指向下一位
CJNER0,#28H,DISPLAY;
缓冲区扫描完毕否?
LJMPLOOP
//延时子程序,修改R7可以改变延时时间的长短
DELAY1:
MOVR7,#1000
DEL2:
MOVR6,#225
NOP
//NOP
DEL3:
DJNZR6,DEL3
DJNZR7,DEL2
RET;
子程序返回
END;
延时一秒
显示码缓冲区
全部数码管扫描
数码管相应的位显示码送出
亮延时一秒
1.数码管相当于8个(7段和点号)发光二极管连接在一起,共阴极就是8个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。
2.多位数码管按从左到右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样,这就是数码管动态显示的基本原理。
数码管动态1-8显示。
胡文松学号:
6103413007专业班级:
2015/10/9实验成绩:
实验三、四、595驱动8个数码管动态显示
一、实验目的
1、了解74HC595的结构特点及工作原理。
2、了解使用595串行输入提高端口利用率。
三、实验框图
设置断码表、位码表
将位码送人595
将段码送入595
R0=R0+1
R1=R1+1
初始化端口
R0=#29?
否是
#include<
STC15.INC>
SH_CPBITP4.3;
移位脉冲
SERBITP4.0;
串行数据位
ST_CPBITP5.4;
锁存脉冲
GPIO.INC>
//段码0~F字表
MOV21H,#006H;
1
MOV22H,#05BH;
2
MOV23H,#04FH;
3
MOV24H,#066H;
4
MOV25H,#06DH;
5
MOV26H,#07DH;
6
MOV27H,#007H;
7
MOV28H,#07FH;
8
//位码表
MOV31H,#0FEH
MOV32H,#0FDH
MOV33H,#0FBH
MOV34H,#0F7H
MOV35H,#0EFH
MOV36H,#0DFH
MOV37H,#0BFH
MOV38H,#07FH;
第8个数码管
DISPLAY:
MOVR0,#21H
MOVR1,#31H
DISPLAY1:
MOVA,R1;
其指令功能将R0的容为地址的存储单元的数据送入累加器A先取位码
LCALLWR595;
位码写入595
MOVA,R0;
取段码
段码写入595
LCALLLH595;
锁存数据
INCR0;
INCR1;
LCALLDELAY200MS
CJNER0,#29H,DISPLAY1
LJMPDISPLAY
//写入595子程序:
串行发送累加器A中的8位数据到74HC595
WR595:
MOVR2,#08H
WR595i:
RLCA//带进位左环移
MOVSER,C//赋值进位CY给595
CLRSH_CP
SETBSH_CP//方波,上升沿有效
DJNZR2,WR595i//减一不为零跳转,等于零则说明8位数据移入完毕
RET
//数据锁存子程序:
将接收到的8位数据送到并行输出端
LH595:
CLRST_CP
SETBST_CP//方波,上升沿有效,将移入的8位数据送到并行输出端
//延时子程序
DELAY200MS:
;
11.0592MHz
PUSH30H
PUSH31H
PUSH32H
MOV30H,#7
MOV31H,#186
MOV32H,#56
NEXT:
DJNZ32H,NEXT
DJNZ31H,NEXT
DJNZ30H,NEXT
POP32H
POP31H
POP30H
三,实验原理
3.每一片74HC595都需要串行输入8位数的段码,数码管才能显示,而且4片595是串联使用的,所以,想控制任意一个数码管的显示,都必须一次串行输入4个数码管的段码才行,即串行输入4X8=32位数,而且是DIS4的段码在前,DIS1的段码在后,每个段码的8位数要高位在前,低位在后,即先输出最高位,后输出最低位。
四,实验结果
1、proteus仿真结果
2、STC实验箱烧录运行结果
延时0.2S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 单片机 实验 报告