74HC164应用实例:驱动数码管两例(电路图和源程序)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实例1

74HC164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等. 74HC164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO口又比较紧张的电子产品中,下面浅谈使用方法:

1. 首先先了解他的引脚功能和逻辑图,如下图:

图1 引脚名称和用途

图2 真值表

通过真值表我们可以了解到,A,B两个输入端是互锁的,CLK上升沿时数据移入移位寄存器中,CLEAR为清零用的,接低电平时所有端口都输出低电平,了解了真值表之后开始运用了,先给出如下原理图:

图3 原理图

图中,采用义隆的EM78P153作为控制芯片,P50作为CLK时钟信号,注意平时数据不传输时,时钟信号是不发送的应一直保持低电平或者高电平,数据需要传输的时候才输出时钟信号^_^ ,继续P51作为移位数据输出端,接到74HC164的B端,A端接高电平,当然也可以AB端短路,然后连接到DATA移位数据端,P52作为数码管的选通信号(也可以叫消隐^_^), 作用是使数据传输过程暂时关闭显示,以免显示出不需要的数据,原因是应为164不带锁存功能,数据传输过程是一位一位的向高位移位输出的,所以要等数据全部移入后才打开始点亮数码管.

注意了哦,通过查看164的规格书发现,164输出高电平电流比输出低电平电流要小,亦称灌电流大,扇出电流弱,所以适合选用共阳数码管,如图,本人偷懒没有画出那个数码管的8字

该介绍的介绍的差不多了,废话少说,该开始干活了,任务是: 显示0-9 每秒+1 ,到9后又返回0,一直循环显示,根据任务得到如下流程图:

1. 显示部分:

将需要显示的数值送入A ==>查表求得显示段码==>将段码逐位移入164==>8位移完后点亮数码管==>延时==>返回第一步执行

2. 中断部分:

进入中断==>保存现场(以备调查取证,送你入狱^_^)==>重置TCC==>够1秒钟将需要显示的数据+1,并重置,不够就退出;

根据以上要求就开始写代码调试了,要注意一点,数据移位时一定要记得高位在前哦,否则显示错误别怪我没有说清楚,我当年实验时就因为这个数据移位方向反了排查了半天,甚至以为是时钟频率不对,又以为时许不对.....搞了半天,NND后来重看DATASHEET才发现,原来是低级错误啊,呜呼哀哉.......,希望你不要重蹈我覆辙,哎哟!! 谁! 谁! 谁扔砖头上来? 啥? 你扔的? 我废话太多.........,那俺少来两句,继续上菜, 咦好像没啥可说的了,上源程序吧

1.;中断部分:

2.

3.;;;;;;;;;;中断;;;;;;;;

4.INTPUT:

5.MOV TEMPA, A;

6.MOV A,@130;

7.MOV TCC,A;255-130=125

8.CLR RF;

9.;;;;;此处填写250Us处理程序

10. BS WKREG,T500US

11.;;;;;;;;;;;;;;;;;;;;;;;;;

12. DJZ R1MS

13.JMP INTEXT;

14.MOV A,@4

15.MOV R1MS,A;重置

16. BS WKREG,T1MS

17.;;;;;;;此处填写1ms处理程序

18.

19.;;;;;;;;;;;;;;;;;;;;;;;;;;

20. DJZ R20MS

21.JMP INTEXT;

22.MOV A,@20

23.MOV R20MS,A;重置

24.;;;此处填写1秒处理程序

25. BS WKREG,T20MS

26.;;;;;;;;;;;;;;

27. DJZ R1S

28.JMP INTEXT;

29.MOV A,@50

30.MOV R1S,A;

31.;;;;;;;;;

32.INC NUMBER

33.MOV A,NUMBER

34. SUB A,@10

35. JBS SR,2

36.JMP INTEXT

37.MOV A,@0

38.MOV NUMBER,A

39.

40.

41. INTEXT:

42.MOV A,TEMPA;

43.RETI;;;;;;;;;;;;;;;;;;;;;

44.

45.

46.

47.

48.

49.;显示部分:

50.

51.;==============TXDATA==============

52.TXDATA:

53. BS P5,CC1

54.MOV A,@8

55.MOV DATALOP,A;

56.TXLOP:

57. BC WKREG,T500US

58. BS P5,CLK;clk=高

59.NOP;

60.NOP

61. JBS DATA_BUF,7

62.JMP $+3

63. BS P5,DATA;

64.JMP $+2

65. BC P5,DATA

66.DD1MS: JBS WKREG,T500US

67.JMP $-1

68. BC P5,CLK

69. BC WKREG,T500US

70. JBS WKREG,T500US

71.JMP $-1;

72.RLC DATA_BUF

73. DJZ DATALOP

74.JMP TXLOP

75.;;;;;;;;;;

76. BC WKREG,T500US

77. BS P5,CLK;clk=高

78. BC WKREG,T500US

79. JBS WKREG,T500US

80.JMP $-1;

81. BC P5,CLK

82.;;;;;;;;

83. BC P5,CC1

84.

85.RET;;;;;;;

86.

87.;数据查表

88.;===============DSPTBL============

89.DSPTBL: ADD PC,A

90. RETL @0B01000000;0

91. RETL @0B01111001;1

92. RETL @0B00100100;2

93. RETL @0B00110000;3

相关文档
最新文档