LED接口代码实验
1、 实验内容或题目
编写程序使实验板上八段数码管循环显示0 到9字符。
(1) 实验系统八段数码管循环显示0 ~ 9字符
(2) 编写程序,实现以下要求功能,用第一个8段数码管由9-0循环显示,第二个8段数码管由一至三循环显示。记录源程序和结果。
2、实验目的与要求
(1) 通过实验掌握LED 的显示控制方法。
(2) 巩固实验4.1中所掌握的对存储区进行访问的方法。
3、 实验步骤与源程序
⑴ 实验步骤
1. 准备实验环境
使用 Embest 仿真器连接目标板,使用 Embest EduKit-III 实验板附带的串口线,连接实验
板上的UART0 和PC 机的串口。
2. 串口接收设置
在 PC 机上运行 windows 自带的超级终端串口通信程序(波特率 115200、1 位停止位、无校验位、无硬件流控制) ;或者使用其它串口通信程序。
3. 打开实验例程
1) 拷贝光盘CD1\Software\EduKit44b0文件夹到EmbestIDE\Examples\Samsung\ EduKit44b0\ 4.6_8led_test目录下;
2) 使用 Embest IDE 通过 Embest JTAG 仿真器连接实验板,打开实验例程目录4.6_8led_test 子目录下的8led_test.pjf 例程,编译链接工程成功;
3) 点击IDE 的Debug 菜单,选择Remote Connect 项或F8键,远程连接目标板;
4) 点击IDE 的Debug 菜单,选择Download 下载调试代码到目标系统的RAM中;
5) 点击Debug 菜单的Go 或F5键运行程序。
4. 观察实验结果
1) 实验系统八段数码管循环显示0 ~ 9字符。
2)完成实验习题程序。
⑵ 源代码
void led8_test(void)
{
iic_init();
for(;;)
{ 751com.cn
for(i=0;i<8;i++){
iic_write(0x70, 0x10+i, f_szDigital[18]);
}
iic_write(0x70, 0x10+4, f_szDigital[17]);
iic_write(0x70, 0x10+4, f_szDigital[20]);
iic_write(0x70, 0x10+4, f_szDigital[19]);
for(j=9;j>=0;j--){
iic_write(0x70, 0x10+0, f_szDigital[j]);
}
}
delay(1000);
}
4、 测试数据与实验结果(可以抓图粘贴)
(1) LED0~LED8分别显示数字9~2,第二次刷新为8~1,第三次刷新为7~0,第四次刷新为6~0(其中LED8为“0”不变)以此类推,最后全部刷新为“0”。
(2) 第二个8段数码管由一至三循环显示
5、 结果分析与实验体会
本次实验是嵌入式系统的第四次实验,实验开始将实验箱按上次的接法连好,然后接通电源开上。在电脑上mbestIDE\Examples\Samsung\ EduKit44b0\ 4.6_8led_test目录下,先运行源程序,可以看到2个8段数码管的数字变化,它循环显示0-9的数字。题目二要求们修改程序,用第一个8段数码管由9-0循环显示,第二个8段数码管由一至三循环显示。
0x10+i,其中i若为0表示第1个数码管,i为1表示第二个数码管。f_szDigital[]是调用数组,数组已经在前面定义好:
unsigned char f_szDigital[] ={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,// 0 ~ 9
0xEE,0xFF,0x9C,0xFD,0x9E,0x8E,// A 8. C 0. E F
0x1,0x2,0x0,0x92,0x90};// . 一 close 三 二
接着数调用哪个数就写数组的序号,非常方便理解。
通过前四次的嵌入式系统实验,我们对这门课程有了些基本的理解,虽然课堂上的知识可能会有些抽象,但经过实验,我们懂得了不少。实验课对我们学习一门课程还是非常有帮助的。219