2022企业服务(新型)提供商TOP150
全世界各行各业联合起来,internet一定要实现!

LED数码管仿真显示程序

2004-02-14 eNet&Ciweek

  在电子设备上广泛地使用LED数码管显示数据,在许多应用软件中也经常模拟LED数码管显示数据,使程序画面看起来很有特色。使用Delphi 程序实现LED数码管的仿真显示非常容易,具体步骤如下:

  ---- 1.启动Delphi 4.0。在“Tools”工具菜单上选择Delphi的图象编辑器“Image Editor”,建立一个新的位图,并设定位图的尺寸,宽为:48,高为:64。设定位图的底色为紫红色,前景色为红色。在位图上选择适当宽度的线条画出一个正方的8字,并将方型8字的各个拐角处用斜线断开,这样可使图象模拟的更加真实。完成后按文件名bitmap_0.bmp存储。然后用此文件复制9个文件,文件名分别为bitmap_1—9。用图象编辑器将这些方形的8字位图按文件名序号的顺序分别修改成0-9的数字位图,存储后备用。   

  ---- 2.建立一个新的工程,在窗体Form1上添加“面板”元件Panel1,设定“面板”元件的属性:bevelouter=bmRaised; bvevelInner=bvLowered; BorderWidth=4,设置后在Panel1元件上形成一个凸起的边框。在Panel1上添加一个“画板”元件PaintBox1,将PaintBox1的属性Hight 和Width设定为64和318,并适当调整Panel1面板的尺寸,使其正好包围画板元件。   

  ---- 3.在窗体中添加一个“图象列表”元件ImageList1,在元件上双击鼠标,调出添加图象对话框,将先前制作好的位图bitmap_0至bitmap_9按顺序添加进图象列表元件中去,使图象列表中位图的序号与位图本身代表的数字相同,并注意将位图设定为不透明。   

  ---- 4.转到单元编辑窗口,在Tform1的类说明部分添加一个显示LED的过程说明语句:   

  ---- procedure display_LED(number:integer); 。

  ---- 在implementation语句下面添加一个全局变量和对应上面过程说明的过程体。内容如下:  

  implementation

  {$R *.DFM}

  var

   dis_number:integer;  

  procedure Tform1.display_LED(number:integer);

  var

   I:integer;

   digital:array[0..5]of integer;

  begin

   {限制显示位数小于6位}

   if number>999999 then number:=0;

   for I:=0 to 5 do digital[I]:=0;

   {分离数字位}

   I:=0;

   while (number)>0 do

   begin

   digital[I]:=number mod 10;

   number:=number div 10;

   I:=I+1;

   end;

   {显示数字}  

   for I:=5 downto 0 do

   imagelist1.draw(paintbox1.canvas, (5-I)*54,0,digital[I]);

  end;  

  ---- 5.在Form1窗体的OnCreated 事件中输入语句:dis_number:=0; ,使显示的初始值为0。在画板元件的On Paint 事件中输入语句:display_LED(dis_number); ,此语句非常重要,它可以在初始启动时显示初值0,在窗口本身被覆盖后又恢复到前台时仍可显示正常的数值。至此已完成了显示函数的程序编制。在需要显示数字的程序中调用display_LED 函数就能将数字显示在LED 的仿真显示板上。本举例程序只显示6位以下的数字。   

  ---- 6.为了测试显示效果,我们在窗体上增加一个编辑框元件Edit1,和一个按钮元件button1。用鼠标双击按钮元件跳转到Click事件编辑窗口,输入如下语句:  

   dis_number:=strTOint(Edit1.text);

   display_LED(dis_number);

  ---- 完成后按F9键编译并运行程序。在运行窗口的编辑框中输入6位以下的整数数字,点击按钮,编辑框中的数字就显示在LED仿真显示板上。

相关频道: eNews

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@enet16.com