首页 理论教育用C语言在数码管上显示1

用C语言在数码管上显示1

【摘要】:为了先说明数码管的工作原理,本任务只用一个7段数码管,用P0端口控制数码管发光二极管的亮灭。图5-2 一位数码管控制Keil仿真程序进入死循环后P0端口的值为“11111001B”,对应数码管的b,c位为0。

1.任务要求

在一位数码管上显示出数字“1”。

2.任务目的

通过项目实施,来掌握和理解数码管的驱动原理、电路设计及简单程序设计。

3.任务分析

数码管静态显示需要使用一组I/O口来维持一个数码管的显示,这种方法虽然会浪费掉多个宝贵的I/O口,但却能减小CPU的负荷,并能帮助我们理解数码管的驱动原理。为了先说明数码管的工作原理,本任务只用一个7段数码管,用P0端口控制数码管发光二极管的亮灭。

4.电路设计

控制数码管显示的电路如图5-1所示。

图5-1 一位数码管控制原理图

前面已经学习了在Proteus中用标注方法将原理上连通的导线用相同的网络标识来标注,本电路图的绘制主要使用该方法。P0端口要接上拉电阻,这里用排阻。本实验用共阳数码管,所以公共端接高电平,用低电平点亮发光二极管。

5.源程序设计

(www.chuimin.cn)

6.Keil uVision仿真实现

在Keil uVision环境下完成源程序的编辑和设置,然后进行如下操作:

(1)打开菜单“Peripherals”,在下拉菜单中选择“I/O-prots”,并在其子菜单中选择“prots1”。

(2)在Keil uVision中按下F5键或单击工具栏图标运行程序,观察弹出的“Paralle Port1”窗口中端口的状态变化情况,如图5-2所示。

图5-2 一位数码管控制Keil仿真

程序进入死循环后P0端口的值为“11111001B”,对应数码管的b,c位为0。

7.Proteus仿真

一位数码管控制仿真效果图如图5-3所示。

图5-3 一位数码管Proteus仿真效果图