论文部分内容阅读
摘 要:以STC单片机控制LED显示屏为例,阐述在智能家居及其相关专业开展单片机教学的特点与困境,分析LED显示屏的结构特点与控制方法,研究单片机C语言编写驱动程序的关键技术,探讨该课程一体化教学内容。最后在Proteus平台上进行软硬件交互仿真与调试,使一体化课程中的单片机模块教学更加形象具体。
关键词:教学研究;单片机;C语言;LED显示屏;智能家居;Proteus平台
中图分类号:TP393;G642.423 文献标识码:A 文章编号:2095-1302(2019)10-0-04
0 引 言
随着嵌入式系统与各类硬件设备的不断融合,尤其是物联网智能家居技术的逐步发展,以单片机为核心的计算机控制技术成为物联网智能家居相关专业学生的必修课。智能家居专业本质上属于系统集成应用,是多专业的有机融合。学生往往需要在有限的学年里完成趋于无限的课程,因而传统的教学方法与教学节奏难以满足需要。另外,单片机教学往往以单片机内部结构、单片机原理和汇编指令为核心,这种教学模式难以有效培养学生的应用技能,也难以激发学生的积极性,往往导致学生认为学习内容枯燥乏味,最终造成学生的应用能力不足。因此,单片机教学应该采用理论与实践有机结合的一体化教学方式,进而增强学生的感性认识和工程体验[1-4]。
1 LED屏结构特点及工作原理
基于发光二极管的数码管与点阵模块是一类重要的显示器件,其可靠性高,使用寿命长,环境适应能力强,操作使用方便灵活,且顯示屏面积可根据实际需求进行扩展,对控制系统性能要求低,因而在物联网智能家居产品中得到了广泛应用。根据LED的布局结构不同,常见的LED显示器可以分为数码管类与点阵类。智能家居LED显示器如图1所示。数码管显示字符的种类简单有限,主要用来显示温度、湿度、时间及少量字母组成的单词,如图1(a)所示。而点阵类可显示更加丰富的内容,如图1(b)所示。
教学中常采用8位8段数码管和8×8点阵屏,这两种显示屏成本低、显示内容灵活性强。数码管一般不具备内置字符取模器,通过查阅码表可实现对数码管显示内容的控制,而点阵屏则通常需要使用取模软件。LED显示屏如图2所示。
图2中两种显示器均以发光二极管为元件。外观上,数码管和点阵是两种不同的显示器,但是两者都通过对LED采取不同的布置方式组合而成,硬件连线与控制方法均相同,其原理如图3所示。两种显示屏各有64个LED,8个数码管共阳端即其位选线对应点阵的8根列线;8个数码管的段选并联组成8根段选线,对应点阵的8根行线。两者均可用多路复用技术即动态扫描法控制[5-6]。
开展教学时,可利用Proteus仿真软件搭建原理图,也可组织学生实际操作,采用分立元件搭建数码管与点阵,使学生加深对元件结构的认知。搭建完成后,首先带领学生使用单片机对显示屏进行简单规则的点亮与熄灭,待学生掌握控制规律后,再开展后续程序设计课程。
2 数码管滚动
数码管结构单一,显示内容有限,编码方法易于掌握,应首先开展数码管的滚动控制教学。
2.1 程序原理分析及设计
要求显示内容“HELLO”,自右至左滚动显示,周而复始。采用8位8段共阳型数码管显示5位字符,根据数码管动态扫描原理,需用3个空屏“0xFF”补足显示内容(0xFF,0xFF,0x89,0x86,0xC7,0xC7,0xC0,0xFF),若显示内容的字符数量大于8且不为8的整倍数,则应用空屏“0xFF”补足至8的整倍数。
经分析,本例滚动动画过程可分解为17帧,动画帧次分解见表1所列。将表中7帧数据循环发送至数码管即可显示滚动动态效果。由表易知,两个for循环即可满足数据的循环发送,但考虑到数据帧之间需保留一段时间使人眼能够识别,因此可通过增加一个for循环控制滚动速度[7],程序流程如图4所示。
2.2 编写程序及仿真
由上述原理,在Keil软件平台上编写C语言程序,仿真结果如图5所示,主要程序截取如下:
#define duanxuan P2//数码管段选
#define weixuan P3//数码管位选
uchar duan [] = {//字码数组
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//空屏
0xFF,0xFF,0x89,0x86,0xC7,0xC7,0xC0,0xFF,
//3个空屏补足8位显示内容
0xFF, 0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//空屏
uchar wei [] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//共阳数码管位选
void main()
{while(1)
{uchar i,j,k;
for(i=0;i
关键词:教学研究;单片机;C语言;LED显示屏;智能家居;Proteus平台
中图分类号:TP393;G642.423 文献标识码:A 文章编号:2095-1302(2019)10-0-04
0 引 言
随着嵌入式系统与各类硬件设备的不断融合,尤其是物联网智能家居技术的逐步发展,以单片机为核心的计算机控制技术成为物联网智能家居相关专业学生的必修课。智能家居专业本质上属于系统集成应用,是多专业的有机融合。学生往往需要在有限的学年里完成趋于无限的课程,因而传统的教学方法与教学节奏难以满足需要。另外,单片机教学往往以单片机内部结构、单片机原理和汇编指令为核心,这种教学模式难以有效培养学生的应用技能,也难以激发学生的积极性,往往导致学生认为学习内容枯燥乏味,最终造成学生的应用能力不足。因此,单片机教学应该采用理论与实践有机结合的一体化教学方式,进而增强学生的感性认识和工程体验[1-4]。
1 LED屏结构特点及工作原理
基于发光二极管的数码管与点阵模块是一类重要的显示器件,其可靠性高,使用寿命长,环境适应能力强,操作使用方便灵活,且顯示屏面积可根据实际需求进行扩展,对控制系统性能要求低,因而在物联网智能家居产品中得到了广泛应用。根据LED的布局结构不同,常见的LED显示器可以分为数码管类与点阵类。智能家居LED显示器如图1所示。数码管显示字符的种类简单有限,主要用来显示温度、湿度、时间及少量字母组成的单词,如图1(a)所示。而点阵类可显示更加丰富的内容,如图1(b)所示。
教学中常采用8位8段数码管和8×8点阵屏,这两种显示屏成本低、显示内容灵活性强。数码管一般不具备内置字符取模器,通过查阅码表可实现对数码管显示内容的控制,而点阵屏则通常需要使用取模软件。LED显示屏如图2所示。
图2中两种显示器均以发光二极管为元件。外观上,数码管和点阵是两种不同的显示器,但是两者都通过对LED采取不同的布置方式组合而成,硬件连线与控制方法均相同,其原理如图3所示。两种显示屏各有64个LED,8个数码管共阳端即其位选线对应点阵的8根列线;8个数码管的段选并联组成8根段选线,对应点阵的8根行线。两者均可用多路复用技术即动态扫描法控制[5-6]。
开展教学时,可利用Proteus仿真软件搭建原理图,也可组织学生实际操作,采用分立元件搭建数码管与点阵,使学生加深对元件结构的认知。搭建完成后,首先带领学生使用单片机对显示屏进行简单规则的点亮与熄灭,待学生掌握控制规律后,再开展后续程序设计课程。
2 数码管滚动
数码管结构单一,显示内容有限,编码方法易于掌握,应首先开展数码管的滚动控制教学。
2.1 程序原理分析及设计
要求显示内容“HELLO”,自右至左滚动显示,周而复始。采用8位8段共阳型数码管显示5位字符,根据数码管动态扫描原理,需用3个空屏“0xFF”补足显示内容(0xFF,0xFF,0x89,0x86,0xC7,0xC7,0xC0,0xFF),若显示内容的字符数量大于8且不为8的整倍数,则应用空屏“0xFF”补足至8的整倍数。
经分析,本例滚动动画过程可分解为17帧,动画帧次分解见表1所列。将表中7帧数据循环发送至数码管即可显示滚动动态效果。由表易知,两个for循环即可满足数据的循环发送,但考虑到数据帧之间需保留一段时间使人眼能够识别,因此可通过增加一个for循环控制滚动速度[7],程序流程如图4所示。
2.2 编写程序及仿真
由上述原理,在Keil软件平台上编写C语言程序,仿真结果如图5所示,主要程序截取如下:
#define duanxuan P2//数码管段选
#define weixuan P3//数码管位选
uchar duan [] = {//字码数组
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//空屏
0xFF,0xFF,0x89,0x86,0xC7,0xC7,0xC0,0xFF,
//3个空屏补足8位显示内容
0xFF, 0xFF,0xFF,0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//空屏
uchar wei [] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//共阳数码管位选
void main()
{while(1)
{uchar i,j,k;
for(i=0;i