1、 南昌大学实验报告学生姓名: 涂晓招 学 号: 6103413004 专业班级: 生医131 实验类型: 验证 综合 R 设计 创新 实验日期:2015/10/9 实验成绩: 实验I/O 口输入、输出实验一、实验目的 掌握单片机P0口、P1口的使用方法。二、实验内容七段数码管显示,单个数码管接P0口,循环显示0F三、实验程序/* 汇编语言程序设计演示:七段数码管显示*/* 单个数码管接P0口,循环显示0F ORG 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 DISPLAY ;
3、/*延时子程序*/DELAY1s: MOV R5,#10 DELAY50ms: MOV R7,#200 LOOP1: MOV R6,#123 NOP LOOP2: DJNZ R6,LOOP2 DJNZ R7,LOOP1 DJNZ R5,DELAY50msRET TABLE: 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, F END四、实验框图开始 初始化堆栈,将堆栈指针指向60H将地址0FF送到P0口点亮数码管亮一
4、秒熄灭数码管循环显示0F五、实验原理数码管相当于8个(7段和点号)发光二极管连接在一起,共阴极就是8个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。六、PROTUES原理图六、实验现象数码管从0F循环点亮。 七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil软件上写出一定的程序,然后用Protues仿真,最后利用stcisp烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。 ; 南昌大学实验报告学生姓名: 涂晓招 学 号: 6103413004
5、专业班级: 生医131 实验类型: 验证 综合 R 设计 创新 实验日期: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, #07HMOV 27H, #
6、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 ;亮1ms RL A ;指向下一位 CJNE R0, #28H, DISPLAY ;缓冲区扫描完毕否? LJMP LOOP/延时子程序,修改R7可以改变延时时间的长短 DELAY1
7、: MOV R7, #1000 DEL2: MOV R6, #225 NOP/ NOP/ NOP/ NOP DEL3: DJNZ R6, DEL3 DJNZ R7, DEL2 RET ; 子程序返回 END ; 开始四、实验框图 初始化堆栈,将堆栈指针指向60H点亮数码管显示码缓冲区全部数码管扫描熄灭数码管延时一秒数码管相应的位显示码送出亮延时一秒五、实验原理1. 数码管相当于8个(7段和点号)发光二极管连接在一起,共阴极就是8个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。2. 多位数码管按从左到
8、右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样,这就是数码管动态显示的基本原理。六、PROTUES原理图六、实验现象数码管动态1-8显示。 七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil软件上写出一定的程序,然后用Protues仿真,最后利用stcisp烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。 南昌大学实验报告学生姓名: 胡文松 学 号: 6103413007 专业班级: 生医131 实验类型: 验证 综合 R 设计 创新 实验日期:2015/10/
9、9 实验成绩: 实验三、四、595驱动8个数码管动态显示一、 实验目的1、 了解74HC595的结构特点及工作原理。2、 了解使用595串行输入提高端口利用率。三、实验框图开始R0=R0+1R1=R1+1 将段码送入595 将位码送人595R0=#21H, R1=#31H指向段码位码表初始化端口 定义SH_CP、SERST_CP 设置断码表、位码表 延时0.2SR0=#29?否是#include ;初始化端口SH_CP BIT P4.3 ;移位脉冲SER BIT P4.0 ;串行数据位ST_CP BIT P5.4 ;锁存脉冲 ORG 0000H ;程序起始地址#includeMAIN: MOV
10、 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, #07FH ;第8个数码管 DISPLAY: MO
11、V R0, #21H MOV R1, #31HDISPLAY1:MOV A, R1;其指令功能将R0的内容为地址的存储单元内的数据送入累加器A 先取位码LCALL WR595 ;位码写入595MOV A, R0;取段码LCALL WR595 ;段码写入595LCALL LH595 ;锁存数据 INC R0 ; INC R1 ; LCALL DELAY200MS CJNE R0,#29H,DISPLAY1 LJMP DISPLAY /写入595子程序:串行发送累加器A中的8位数据到74HC595 WR595: MOV R2,#08H WR595i: RLC A /带进位左环移 MOV SER,C
12、 /赋值进位CY给595 CLR SH_CP NOP NOP SETB SH_CP /方波,上升沿有效 DJNZ R2,WR595i /减一不为零跳转,等于零则说明8位数据移入完毕 RET /数据锁存子程序:将接收到的8位数据送到并行输出端 LH595: CLR ST_CP NOP NOP SETB ST_CP /方波,上升沿有效,将移入的8位数据送到并行输出端 RET /延时子程序DELAY200MS:;11.0592MHzNOPNOPNOPPUSH 30HPUSH 31HPUSH 32HMOV 30H,#7MOV 31H,#186MOV 32H,#56NEXT:DJNZ 32H,NEXTD
13、JNZ 31H,NEXTDJNZ 30H,NEXTPOP 32HPOP 31HPOP 30HRETEND三,实验原理1. 数码管相当于8个(7段和点号)发光二极管连接在一起,共阴极就是8个二极管的阴极连接在一起,二极管要亮必需正偏,就是阴极接低电平,阳极接高电平,所以共阴极数码管位选必需是低电平选通,这样段选加高电平该段才能亮。2. 多位数码管按从左到右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样,这就是数码管动态显示的基本原理。3. 每一片74HC595都需要串行输入8位数的段码,数码管才能显示,而且4片595是串联使用的,所以,想控制任意一个数码管的显示,都必须一次串行输入4个数码管的段码才行,即串行输入4X8=32位数,而且是DIS4的段码在前,DIS1的段码在后,每个段码的8位数要求是高位在前,低位在后,即先输出最高位,后输出最低位。四,实验结果1、proteus仿真结果延时0.2S,595驱动8个数码管动态显示082、STC实验箱烧录运行结果延时0.2S七、实验心得 单片机需要我们在掌握硬件的基础上,用单片机语言在keil软件上写出一定的程序,然后用Protues仿真,最后利用stcisp烧到试验箱上,实现其特定的功能。而在编程时需要逻辑力,创新力,知识组合力,知识搜索。