数码管显示实验报告文档格式.docx
- 文档编号:15171429
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:12
- 大小:23.21KB
数码管显示实验报告文档格式.docx
《数码管显示实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数码管显示实验报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
}
(2)若是想实现类似实验(三)通过键盘动态控制循环速度,考虑一下应该如何设计?
答:
systickperiodset(sysctlclockget()/x)
//设置x的大小就可以控制循环的速度。
voidreset_counter_speed(intx)
{systickintdisable();
systickdisable();
systickperiodset(sysctlclockget()/x);
//设置x,控制计数频率,值与频率成正比systickenable();
systickintenable();
,达到预期的效果。
二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)
学习、了解和掌握数码管工作原理和使用方法实验结果及检查
(1)默认在在oled屏幕上分行显示自己的学号、姓名、项目序号、时间,女口“2010011001”、“zhangsan”、“work4”、“2012-11-”
(2)首先在屏幕上显示四个功能选单,通过键盘a-f键选择不同功
能,选择后屏幕显示相关功能提示,接受键盘输入的数字键0-9并在数码管上显示。
女口:
开始显示:
“pleasechoosethefunction:
”
“a:
?
”“b:
”“c:
”“d:
”按下“a键后,显示”nowyouchoosefunctiona”
(3)按下键盘后,根据不同功能在数码管上显示按键字符。
其中“a功能表示键盘输入的字符在数码管最右端显示,
“b功能表示键盘输入的字符在数码管最左端显示,
“c功能表示键盘输入的字符在数码管上从最右端到最左端循环显示,
“d功能表示键盘输入的字符在数码管从最左端到最右端循环显示,
“e功能表示键盘输入的字符会依次从最右端往左端移动显示,如按
下“1”、“2”、“1”、“
空空空12”
3”,在数码管上显示“空空空空空1”到“空
到“空空空121”到“空空1213”,超过6个以后,最左端的丢掉(4)扩展:
根据自己的想法,扩展“f按键,在数码管上显示与上
面不同的效果。
(5)扩展:
根据自己的想法,扩展“f”+按键,即先按f再按a
才有该功能。
三、实验内容和步骤(重点阐述自己的思路及遇到的问题)
(一)keil开发环境中对项目project配置
(1)建立项目
1、新建一个project;
2、选择cpu中的luminarylm3s8962;
3、加载库文件;
4、项目相关配置项修改。
加载必要程序:
本次实验提供了几个源程序rit128x96x4.h,rit128x96x4.c,
startup.s,utility.c,utility.h,definition.h。
其中,definition.h文件中定义了一些宏定义,用于将整个工程中的宏定义放在一起,目的是为了程序的可读性更好。
本例中定义了五个不同的功能模式,可以根据自己习惯进行修改。
utility.c和utility.h中包含了数码管显示处理函数。
其函数声明如下:
voiddisp(charx,intlocation);
使用方法:
第一个参数表示要显
示的字符,在本例中,就是键盘中断服务程序执行完后保存在oledkey[0]里的字符,第二个参数表示显示的位置,其中1表示数码管的最右端,6表示数码管的最左端,2-4依次表示中间4个数码管。
(2)新建主函数程序,并加载到项目中新建一个文件,保存为main.c,把main.c也加载到项目中。
本次实验需要增加以下头文件
#includestdio.h
#includelm3sxxxx.h
#includehw_ints.h
#includehw_memmap.h
#includehw_types.h
#includegpio.h
#includeinterrupt.h
#includesysctl.h
#includerit128x96x4.h
#includeutility.h
#includedefinition.h
(2)嵌入式c程序开发
(3)利用中断,接收键盘输入
(3)--
(1)在主函数中开启键盘中断,示例如下:
/*使能外设gpio*/sysctlperipheralenable(sysctl_periph_gpioc);
sysctlperipheralenable(sysctl_periph_gpiod);
/*设置gpio为输入*/
gpiopintypegpioinput(gpio_portd_base,gpio_pin_7);
gpiopintypegpioinput(gpio_portc_base,gpio_pin_4);
/*使能中断*/
intenable(int_gpiod);
intmasterenable();
gpiopinintenable(gpio_portd_base,gpio_pin_7);
gpiointtypeset(gpio_portd_base,gpio_pin_7,
gpio_rising_edge);
注意:
其中,gpio_portc用于传输按下的键值,gpio_portd用于向cpu发起中断请求。
(4)利用系统systickhandler中断,控制循环速度本步骤与实验
(二)对应部分一样,不再重复。
(5)修改主函数,实现本次实验要求的功能(5)-
(1)在主函数中对七段数码管进行相关配置和初始化,如下所示:
sysctlperipheralenable(sysctl_periph_gpiob);
/*配置gpio端口为输出*/
//7segd1(pb6);
7segd2(pb4);
7segd3(pb5)gpiopintypegpiooutput(gpio_portb_base,gpio_pin_4|gpio_pin_5|gpio_pin_6);
//bitcode0(pc5);
bitcode1(pc6);
bitcode2(pc7)gpiopintypegpiooutput(gpio_portc_base,gpio_pin_5|gpio_pin_6|gpio_pin_7);
//7segd0(pd4);
7segdot(pd5);
rst(pd6)gpiopintypegpiooutput(gpio_portd_base,gpio_pin_4|gpio_pin_5|gpio_pin_6);
(5)-
(2)系统启动后,首先通过键盘输入选择不同功能,并在屏幕上显示不同提示信息。
“a功能表示键盘输入的字符在数码管最右端显示
“b”功能表示键盘输入的字符在数码管最左端显示
“c”功能表示键盘输入的字符在数码管上从最右端到最左端循环显示“d”功能表示键盘输入的字符在数码管从最左端到最右端循环显示
“e”功能表示键盘输入的字符会依次从最右端往左端移动显示,如按下“1”、“2”、“1”、“3”,在数码管上显示“空空空空空1”到
“空空空空12”到“空空空121”到“空空1213,”超过6个以后,最左端的丢掉。
(5)--(3)选好a-e功能后,按键后在数码管上按照不同的功能显示不同格式的字符。
注意:
数码管上所有位置的数字同时显示,可以使用for循环赋值并进行显示:
for(j=1;
j7;
j++)
disp(digits[j],j);
for(k=0;
kdelaytime;
k++);
//设置适当的延迟,缓和显示过快的字符重合现象
(5)编译、连接,生成可执行程序文件
(编译)
(链接)
(6)反复(3)--(5)步骤,直到完成如果中间出现错误,修改代码,一直到无错,生成最后程序。
(三)硬件连接
(7)硬件连接
1、接上电源线,先关闭开关
2、用蓝色usb线接上仿真器,仿真器另一jtag端接lm3s8962(左下较大子板),usb线接电脑
3、确认连接无误后,打开电源开关cpu板
【篇二:
数码管实验报告】
篇一:
实验八数码管led实验报告
苏州大学实验报告
院、系年级专业姓名学号课程名称成绩指导教师同组实验者实验日期
实验名称:
数码管led实验
一.实验目的
理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管lg5641ah与mcu的接线图。
二.实验内容
理解8段数码管原理,运行与理解各子程序,编制一个4连排8段
数码管程序,mcu的排8段数码管显示mcu复位后的开始到现在的运行时间。
由于只有四个数码管,所以只显示mcu运行到目前为止的分钟和秒,当计时达到一个小时,就重新从00:
00开始计时。
另
外,也可以通过pc方的串口通信程序,指定计时的开始值。
三.实验过程
(一)原理图
图8-2数码管外形
dp
abc
efgdp
图8-1数码管
(二)接线图
图8-3mcu与4连排8段数码管的连接第1页
(三)基本原理
8段数码管一般由8个发光二极管(llight-emittingdiode,led)组成,每一个位段就是一个发光二极管。
一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)
组成。
根据公共端所接电平的高低,可分为共阳极和共阴极两种。
有时数码管不需要小数点,只有7个位段,称7段数码管。
共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,比如:
要使a段发光,则在发光。
四.编程
(一)流程图
图8-4数码管led显示流程图(及其中断子程序)
(二)所用寄存器名称及其各个位
程序中没有使用与led显示相关的控制和状态寄存器,仅仅使用了通用i/o口a口和b口。
(三)主要代码段
1第2页第3页
2.c
第4页第5页篇二:
数码管实验报告单片机实验报告
一、实验名称数码管动态扫描显示01234567(实验五)
二、实验目的
(1)掌握数码管显示数字的原理。
(2)通过不同的编程实现灵活运用数码管。
三、实验原理
四、相关原理图
五、实验内容数码管显示12345678c程序:
#includereg51.h
#includeintrins.h
unsignedchardatadis_digit;
unsignedcharcodedis_code[11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数码管 显示 实验 报告