南昌大学单片机实验报告

上传人:第*** 文档编号:34051636 上传时间:2018-02-20 格式:DOC 页数:11 大小:2.42MB
返回 下载 相关 举报
南昌大学单片机实验报告_第1页
第1页 / 共11页
南昌大学单片机实验报告_第2页
第2页 / 共11页
南昌大学单片机实验报告_第3页
第3页 / 共11页
南昌大学单片机实验报告_第4页
第4页 / 共11页
南昌大学单片机实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《南昌大学单片机实验报告》由会员分享,可在线阅读,更多相关《南昌大学单片机实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、 南 昌 大 学 实 验 报 告学生姓名: 涂晓招 学 号: 6103413004 专业班级: 生医131 实验类型: 验证 综合 设计 创新 实验日期:2015/10/9 实验成绩: 实验I/O 口输入、输出实验一、实验目的掌握单片机P0口、P1口的使用方法。二、实验内容七段数码管显示,单个数码管接 P0 口,循环显示 0F三、实验程序/* 汇编语言程序设计演示:七段数码管显示*/* 单个数码管接 P0 口,循环显示 0FORG 0000H ;程序起始存储单元SJMP 0030H ;跳过中断向量表ORG 0030H ;程序开始单元MAIN: MOV SP,#60H ; 初始化堆栈,将堆栈指针

2、指向远离工作寄存器区域MOV P2,#00H START: MOV P0,#0FFH ; 点亮数码管LCALL DELAY1s ; 保持亮一秒钟MOV P0,#80H ; 熄灭数码管MOV R2,#00H ;/ 循环显示 0-FDISPLAY:MOV A,R2 ; 指向本次显示字符MOV DPTR,#TABLE ; 指向显示码表首字符MOVC A,A+DPTR ; 查显示码MOV P0,A ; 送数码管显示 INC R2 ; 指向下一个字符LCALL DELAY1sCJNE R2,#16,DISPLAY ; 判断显示结束否MOV R2,#00H ; 显示结束后重置字符指针SJMP DISPLA

3、Y ;/*延时子程序*/DELAY1s: MOV R5,#10DELAY50ms: MOV R7,#200LOOP1: MOV R6,#123NOPLOOP2: DJNZ R6,LOOP2 DJNZ R7,LOOP1DJNZ R5,DELAY50msRETTABLE:DB 3FH,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, FEND四、实验框图五、实验原理数码管相当于 8 个(7 段和点号)发光二极管连接在一起,共阴极就是 8

4、个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。初始化堆栈,将堆栈指针指向60H开始将地址 0FF 送到 P0 口点亮数码管亮一秒熄灭数码管循环显示 0F六、PROTUES 原理图六、实验现象数码管从 0F 循环点亮。 七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil 软件上写出一定的程序,然后用 Protues 仿真,最后利用stcisp 烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。; 南 昌 大 学 实 验 报 告学生姓名: 涂晓招

5、学 号: 6103413004 专业班级: 生医131 实验类型: 验证 综合 设计 创新 实验日期:2015/10/9 实验成绩: 实验I/O 口输入、输出实验一、实验目的掌握单片机P0口、P1口的使用方法。二、实验内容七段数码管显示,8 个数码管动态显示三、实验程序ORG 0000H ;程序起始地址MAIN: MOV SP,#60H ; 设堆栈指针 MOV P2, #0FFH ; 全灭显示,MOV 20H, #06H ;1 显示码缓冲区MOV 21H, #5BH ;2MOV 22H, #4FHMOV 23H, #66HMOV 24H, #6DHMOV 25H, #7DHMOV 26H, #

6、07HMOV 27H, #7FHLOOP: MOV R0, #20H ;R0 指向显示缓冲区,全部数码管扫描完毕后,重新循环扫描MOV A, #0FEH ;A 中为位选择,初始值指向第一个数码管DISPLAY: MOV P0, #00H ;灭显示LCALL DELAY1;灭延时DISPLAY1:MOV P2, A ; P2 口驱动数码管相应的位MOV P0, R0 ;显示码送出INC R0 ;指向下一个显示码缓冲区 LCALL DELAY1 ;亮 1msRL A ;指向下一位CJNE R0, #28H, DISPLAY ;缓冲区扫描完毕否?LJMP LOOP/延时子程序,修改 R7 可以改变延

7、时时间的长短 DELAY1: MOV R7, #1000DEL2: MOV R6, #225NOP/ NOP/ NOP/ NOPDEL3: DJNZ R6, DEL3DJNZ R7, DEL2RET ; 子程序返回END ; 四、实验框图初始化堆栈,将堆栈指针指向60H点亮数码管延时一秒熄灭数码管开始显示码缓冲区全部数码管扫描五、实验原理1. 数码管相当于 8 个(7 段和点号)发光二极管连接在一起,共阴极就是 8 个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。2. 多位数码管按从左到右或从右到左

8、顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样,这就是数码管动态显示的基本原理。六、PROTUES 原理图六、实验现象数码管动态 1-8 显示。 七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil 软件上写出一定的程序,然后用 Protues 仿真,最后利用数码管相应的位显示码送出亮延时一秒stcisp 烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。南 昌 大 学 实 验 报 告学生姓名: 胡文松 学 号: 6103413007 专业班级: 生医131 实验类型: 验证

9、综合 设计 创新 实验日期:2015/10/9 实验成绩: 实验三、四、595 驱动 8 个数码管动态显示一、 实验目的1、 了解 74HC595 的结构特点及工作原理。2、 了解使用 595 串行输入提高端口利用率。三、实验框图开始定义 SH_CP、SERST_CP设置断码表、位码表 R0=#21H, R1=#31H指向段码位码表将位码送人 595将段码送入 595R0=R0+1R1=R1+1初始化端口否 是#include;初始化端口SH_CP BIT P4.3 ; 移位脉冲SER BIT P4.0 ; 串行数据位ST_CP BIT P5.4 ; 锁存脉冲ORG 0000H ;程序起始地址

10、#includeMAIN: MOV SP,#60H ; 设堆栈指针 /段码 0F 字表MOV 21H, #006H ; 1MOV 22H, #05BH ; 2MOV 23H, #04FH ; 3MOV 24H, #066H ; 4MOV 25H, #06DH ; 5MOV 26H, #07DH ; 6MOV 27H, #007H ; 7MOV 28H, #07FH ; 8/位码表MOV 31H, #0FEHMOV 32H, #0FDHMOV 33H, #0FBHMOV 34H, #0F7HMOV 35H, #0EFHMOV 36H, #0DFHMOV 37H, #0BFHMOV 38H, #0

11、7FH ;第 8 个数码管DISPLAY: MOV R0, #21HMOV R1, #31HDISPLAY1: MOV A, R1 ;其指令功能将 R0 的内容为地址的存储单元内的数据送入累加器 A 先取位码R0=#29?延时 0.2SLCALL WR595 ;位码写入 595MOV A, R0 ;取段码LCALL WR595 ;段码写入 595LCALL LH595 ;锁存数据INC R0 ;INC R1 ;LCALL DELAY200MSCJNE R0,#29H,DISPLAY1LJMP DISPLAY/写入 595 子程序:串行发送累加器 A 中的 8 位数据到 74HC595WR595

12、: MOV R2,#08H WR595i: RLC A /带进位左环移MOV SER,C /赋值进位 CY 给 595CLR SH_CPNOPNOPSETB SH_CP /方波,上升沿有效DJNZ R2,WR595i /减一不为零跳转,等于零则说明 8 位数据移入完毕RET/数据锁存子程序:将接收到的 8 位数据送到并行输出端LH595:CLR ST_CPNOPNOPSETB ST_CP /方波,上升沿有效,将移入的 8 位数据送到并行输出端RET/延时子程序DELAY200MS: ;11.0592MHzNOPNOPNOPPUSH 30HPUSH 31HPUSH 32HMOV 30H,#7MO

13、V 31H,#186MOV 32H,#56NEXT:DJNZ 32H,NEXTDJNZ 31H,NEXTDJNZ 30H,NEXTPOP 32HPOP 31HPOP 30HRETEND三,实验原理1. 数码管相当于 8 个(7 段和点号)发光二极管连接在一起,共阴极就是 8 个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。2. 多位数码管按从左到右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样,这就是数码管动态显示的基本原理

14、。3. 每一片 74HC595 都需要串行输入 8 位数的段码,数码管才能显示,而且 4 片 595 是串联使用的,所以,想控制任意一个数码管的显示,都必须一次串行输入 4 个数码管的段码才行,即串行输入 4X8=32 位数,而且是 DIS4 的段码在前,DIS1 的段码在后,每个段码的 8 位数要求是高位在前,低位在后,即先输出最高位,后输出最低位。四,实验结果1、proteus 仿真结果2、STC 实验箱烧录运行结果延时 0.2S,595 驱动8 个数码管动态显示08七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil 软件上写出一定的程序,然后用 Protues 仿真,最后利用stcisp 烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。延时 0.2S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号