单片机驱动数码管显示设计

时间:2013-01-15来源:网络
点击浏览下一页
图6

现在让我们把目标文件"smg1.hex"烧写到单片机中去,看看实际的效果吧,将ISP编程器硬件连接好(见下图7)。

点击浏览下一页
图7:ISP

将产品配套光盘中的“ISP编程器驱动软件”文件夹复制到你电脑硬盘的D盘根目录下,并将其目录下的所有文件的只读属性去掉,具体操作如下:全选文件夹中的文件,鼠标右键单击出现文件属性对话框,单击“只读”属性前面复选框中的勾,使其只读属性去掉即可。然后双击文件夹中的“ISP编程器驱动软件.exe”启动编程软件,点击"文件",在打开文件的对话框中找到工程文件夹中的目标文件"smg1.hex"打开即可,然后点击“AUTORUN”将程序烧写到单片机内部(如下图8)。

点击浏览下一页
图8:将程序烧写到单片机内部

烧写完成了,把单片机从编程器中取出,然后插到S51增强型实验板上,插上USB电源,看看显示效果是不是和上面图4显示一样,是否有一点点的成就感呀!初学者也许会问:数码管显示一个数字“6”就要15行程序,太复杂了?的确有点复杂了,在上面程序中为了显示数字“6”,数码管的段码"b"、段码"dp"输出的是高电平,其它引脚输出的是低电平,实际上从单片机的P0.0~P0.7输出的是二进制码“10000010”,转换成十六进制为82H。因此,我们只要把所有要显示的数字和字符的段码根据硬件连接编制一个字形表,显示时直接把相应的字形码送到P0口就可以了。

共阳LED数码管字形(段码)表
显示数字
(字符)
P0.7
"dp"
P0.6
"g"
P0.5
"f"
P0.4
"e"
P0.3
"d"
P0.2
"c"
P0.1
"b"
P0.0
"a"
二进制代码
十六进制代码
0
1
1
0
0
0
0
0
0
11000000
C0H
1
1
1
1
1
1
0
0
1
11111001
F9H
2
1
0
1
0
0
1
0
0
10100100
A4H
3
1
0
1
1
0
0
0
0
10110000
B0H
4
1
0
0
1
1
0
0
1
10011001
99H
5
1
0
0
1
0
1
1
0
10010110
92H
6
1
0
0
0
0
0
1
0
10000010
82H
7
1
1
1
1
1
0
0
0
11111000
F8H
8
1
0
0
0
0
0
0
0
10000000
80H
9
1
0
0
1
0
0
0
0
10010000
90H
A
1
0
0
0
1
0
0
0
10001000
88H
B
1
0
0
0
0
0
1
1
10000011
83H
C
1
1
0
0
0
1
1
0
11000110
C6H
D
1
0
1
0
0
0
0
1
10100001
A1H
E
1
0
0
0
0
1
1
0
10000110
86H
F
1
0
0
0
1
1
1
0
10001110
8EH
H
1
0
0
0
1
0
0
1
10001001
89H
O
1
1
0
0
0
0
0
0
11000000
A3H
P
1
0
0
0
0
1
0
0
10000100
8CH
N
1
1
0
0
1
0
0
0
11001000
C8H

从上面表格中可以看到,显示“6”的十六进制段码值为"82H",因此我们把刚才的程序修改一下,修改后的完整程序如下:

MAIN:MOV P0,#82H ;将数字"6"的段码输出到P0口
 MOV P2,#0FEH;从P2口输出数码管选通代码,即输出二进制“11111110”
 AJMPMAIN;跳转到开始重新进行
 END ;程序结束

1 2 3 4

关键词: 单片机 数码管显示

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版