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仿真