本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导。本文章会陆续推出,隔几天一个章节。所使用单片机为ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原理图和KEIL环境下的注释,希望对广大即将接触单片机的人有所帮助,如果有错误欢迎回帖指出与本人交流或加入QQ群143586739.
LED数码管是单片机外围接口设备中常用的显示设备,有七段管和米字管两种,实验室中常用的是七段管。其工作方式有两种:共阴极和共阳极。所谓共阴极是把LED的com端都接地,而共阳极就是把com端都接高电平。其驱动显示方式也有两种:静态显示和动态显示。 静态显示中每个数码管占用单片机的一个八位口I/O口,工作时点亮的段常亮。于该种方式而言,硬件电路简单,编程简单,但是浪费单片机的I/O口。下面简单演示一下该种驱动方式。 P2口接一个数码管,数码管显示的数字每秒钟自动加一,加到9后清0,一直循环,本实验中数码管采用共阴极接法。 实验原理图如下: 分析:共阴数码管的公共端接地,所以只要段选给出相应的数据数码管就会做出相应的显示。程序如下:
第04行:该数组为共阴数码管的编码; 第17行:for循环控制循环显示; 第20行:将数据送给P2口; 第23行:循环次数超过10后,清零; 其实,for循环还可以这样实现: 
程序中,将循环变量作为数组的查询变量,程序就简化了,执行效率得到了提高。运行效果截图:
|