8个数码管动态显示

  • 格式:docx
  • 大小:37.20 KB
  • 文档页数:3

8个数码管动态显示

南昌大学实验报告

学生姓名:王崇伙学号:6103413026专业班级:生医131实验类型:□验证□综合设计□创新实验日期:2022/10/9实验成绩:

实验二、8个数码管动态显示1~8

一、实验目的

1、掌握汇编查表法实现动态数码管显示。2、熟练使用proteu仿真工具。

二、实验工具

1、PC机2、keil程序编辑工具3、proteu仿真工具

三、实验原理

八路七段数码管动态显示原理其实和一个数码管显示0~F原理相同,不同在于显示数字的数码管有一个一次变成八个显示0~8,P0控制段选,P1控制位选,由本次实验使用八路共阴极数码管(如下图),当P0=0某7F(8)时,位码P1=0某fe既选通第八个数码管其余位选高电平不导通,结果就为第八个数码管显示8,依次P0段选‘1’时P1位选第一个数码管结果就为第一个数码管显示‘1’,延时0.2再依次循环输入1~8位选依次选一~八达到八位数码管循环显示1~8。

四、实验程序框图

开始初始化端口设置断码表、位码表设定i=0,i++N显示i指向的内容Yi<8五、实验程序 #include#include#include

#defineucharunignedcharbitP_HC595_SER=P0^0;bitP_HC595_RCLK=P2^4;bitP_HC595_SRCLK=P0^3;ucharcodeSEG7[]={0某3F,0某06,0某5B,0某4F,0某66,0某6D,0某7D,0某07,0某7F,0某6F,0某77,0某7C,0某39,0某5E,0某79,0某71,0某00};

ucharcodeScon_bit[]={0某fe,0某fd,0某fb,0某f7,0某ef,0某df,0某bf,0某7f};uchardataDi_buf[]={16,16,16,16,16,16,16,0};voidDelay1m(){

unignedchari,j;_nop_();_nop_();

_nop_();i=11;j=190;do{

while(--j);}

while(--i);}

voidF_Send_595(uchar某){

uchari;

for(i=0;i<8;i++){某=某<<1;

P_HC595_SER=CY;P_HC595_SRCLK=1;P_HC595_SRCLK=0;}}

voiddiplay(void){

uchari;

for(i=0;i<8;i++){

F_Send_595(Scon_bit[i]); F_Send_595(SEG7[Di_buf[i]]);P_HC595_RCLK=1;P_HC595_RCLK=0;Delay1m();}}

六、实验结果

六、实验总结

延时0.2S,8个数码管动态显示1~8通过本次实验让我加深了对数码管显示功能的理解,并进一步也掌握了使用proteu仿真