文档详情

单片机静态显示技术实验报告.doc

发布:2017-06-07约1.71千字共4页下载文档
文本预览下载声明
桂林电子科技大学 实验报告 2016-2017 学年第一学期 开 课 单 位 海洋信息工程学院 适用年级、专业 14级机械 课 程 序 号 BS1615000_03 课 程 代 码 BS1615000 实 验 名 称 《静态显示技术》 静态显示技术实验报告 一、实验目的 1、掌握数码管与单片机的连接方法。 2、掌握段代码表的推算及数据表的使用方法。 3、掌握C语言编程方法。 采用共阴数码管,数码管的数据由单片机的P0口提供。 当P0口输出相应的数据,相应的数码管就被点亮。如:P0,则数码管最低位显示0。 74LS573这里用于提高P0口的输出电流,驱动数码管显示,并有一定的隔离干扰的作用。 本实验只用到8位数码管的其中一位。 1、打开Keil新建工程:学号-3.uv2。 2、参考实验程序,编写程序:在数码管上最低位显示“1”。生成:学号-3.hex文件。 3、打开下载软件,把学号-3.hex文件烧写到单片机,观察实验现象。 4、修改程序,让数码管最低位由0~F显示。 5、静态显示的工作原理。 6、数码管内部结构、引脚定义及驱动。 7、读懂实验程序。 三、实验结果分析 1.数码管最低位显示“1” #includereg51.h //--定义你要使用的IO口--// #define GPIO_DIG P0 //--声明全局函数--// void Delay10ms(unsigned int c); //误差 0us //主函数 (1)数码管最低位显示“1” void main(void) { unsigned char i = 0; while(1) { GPIO_DIG = 0x79; } } 2.数码管最低位由0~F显示 (2)数码管最低位由0~F显示 #includereg51.h //--定义你要使用的IO口--// #define GPIO_DIG P0 //--声明全局函数--// void Delay10ms(unsigned int c); //误差 0us //--定义全局变量--// unsigned char code DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; // 0~F的段码 void main(void) { unsigned char i = 0; while(1) { GPIO_DIG = ~DIG_CODE[i]; i++; if(i == 16) { i = 0; } Delay10ms(50); } } void Delay10ms(unsigned int c) //误差 0us { unsigned char a, b; //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--// for (;c0;c--) { for (b=38;b0;b--) { for (a=130;a0;a--); } } } 根据以上程序用开发板来进行实验,程序可以实现要求。 对于在进行实验的设计时,可能存在的错误,主要是C语言的一些使用规则的错误和对中断控制等代码的错误。等发生错误时,就应从代码的开始部分进行检查和分析,对于错误的地方进行修改,直到程序无错误为止。对于验证其功能时,应确认开发板没有损坏,正确连接电路等。 四、与讨论一个闪烁频率高,一个闪烁频率低
显示全部
相似文档