首页 AVR单片机 8051单片机 PIC单片机 msp430应用 motorola单片机 C166单片机 开关电源 电源设计 电源技术应用 电磁兼容
ARM芯片开发 DSP开发技术 PowerPC处理器 RABBIT单片机 嵌入式系统设计 工业控制 控制电路 PLC编程 机器人技术 电机原理
vhdl语言学习 asic芯片技术 fpga培训 cpld编程 verilog hdl Vxworks开发 wince开发教程 嵌入式linux uclinux开发 ucos入门
电路设计 数字电路设计 模拟电路设计 音频电路设计 模拟滤波器设计 电子技术基础 电子名词解析

首页->微处理器->单片机8051->正文

两片hc595级联控制8个数码管加8个按键

作者:  来源:51mcu 

上篇:单片机编程经验
下篇:51单片机延时程序

 

以前总觉得led显示没什么了不起,可当自己真正接触到这一方面时才发现它还是很有技术含量的。尤其是led点阵,对一个工程师的要求太高了,串入并出几乎是唯一选择,可是又得尽量不占用单片机宝贵的uart。对时序的要求就上来了。这还只是一方面,其他的比如双色,灰度,彩色就更难了。

我觉得数码管的显示算是比较简单的,我用两片hc595级联控制8个数码管加8个按键(留待以后补充),一片做段码,一片做位码,先把程序贴出来,硬件待我制作成功再将原理图贴出来。

需要说明的是,这段程序在Proteus上得到了验证

程序如下(没有注释,有时间补充):


SLCK bit p2.2
sDA bit p2.0
sCLK bit p2.1
org 0000h
ljmp main
org 000bh
ljmp display
ORG 0040H
MAIN: mov r0,#32h
MOV R2,#8
mov r3,#8
mov r4,#8
mov r1,#0feh
mov tmod,#01h
mov th0,#0fbh
mov tl0,#1dh
mov ie,#82h
setb tr0
sjmp $
DISPLAY: PUSH ACC
mov th0,#0fbh
mov tl0,#1dh
CLR SLCK

DISP: MOV A,R1
disp0: clr sclk
rlc a
mov sda,c

setb sclk
djnz r2,disp0

mov r2,#8
mov a,r1
RL a
mov r1,a
mov a,@r0
MOV DPTR,#TAB
MOVC A,@A+DPTR
disp10: clr sclk
rlc a
mov sda,c

setb sclk
djnz r3,disp10
setb slck
mov r3,#8
inc r0
djnz r4,out
mov r4,#8
mov r0,#32h
out: POP ACC
reti
tab: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END

相关资料:
c语言编程的难点单片机的C语言应用程序设计
关于单片机硬件抗干扰学用8051单片机的常见问题
微处理器硬件电路设计的几个基本问题51系列单片机I/O口上拉电阻使用点滴
关于C51的中断编程嵌入式系统综述
MCS-51单片机实用子程序库(7)MCS-51单片机实用子程序库(6)
MCS-51单片机实用子程序库(5)MCS-51单片机实用子程序库(4)
MCS-51单片机实用子程序库(3)MCS-51单片机实用子程序库(2)
MCS-51单片机实用子程序库(1)单片机基础知识


网站地图 | 联系我们 | 免责声明 | 招聘信息 | 友情链接
Copyright © 2005 - 2006 单片机设计网