PIC单片机数码管闪烁程序74HC164点亮数码管程序

51单片机74HC164串口控制数码管显示
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
51单片机74HC164串口控制数码管显示
一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源。本例用移位寄存器74HC164作为数码管驱动进行控制。
74HC164特性 & 是一种8位串转并口的控制芯片,用于数码管和液晶显示等.
& & & & & & & & & & & & 工作电压2--6V
& & & & & & & 管脚定义:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& 1) &A,B管脚:与门数据输入引脚。
& & &2)QA---QH 数据并口输出引脚
& & &3) CLR 低电平时,数据清零,不能输入
& & &4) CLK 数据输入时钟,上升沿读取串口数据
&&&&&&&&&&&&&&&&&&&&&&&&& :
& & & & & & & & & & &&
&&&&&&&&&&&&&
&&&&&&&&&&&&&注意脉冲宽度:
&&&&&&&&&&&&&&&
本51单片机用的是12MHZ晶振,每条指令最小执行时间1uS》》1ns &,可以根据时序图随便使用.
&&&&&&&&&&&&&
完整的keil工程文件下载地址:
&ORG 00H & & & & & & & & & & & ;程序起始地址00H
& & & & & & & &&MOV 50H,#9 & & & & & & & & & &;立即数9放入50H单元 & 第一个数码管显示9
MOV 51H,#4 & & & & & & & & & &;立即数4放入51H单元 &第二个数码管显示4
MOV R0,#50H & & & & & & & & ;R0=50& &
MOV R1,#60H & & & & & & & & ;R1=60 &&
MOV DPTR,#TABLE & & ;将码表首地址给DPTR指针
MOV A,@R0 & & & & & & & & & ;将50H单元中的9给A
MOVC A,@A+DPTR & & ;查表得到(9+码表首地址)合成的地址中的数给累加器A
MOV @R1,A & & & & & & & & &;把立即数9的段码,放入 60H单元中
INC R1 & & & & & & & & & & & & & &;R1=61H
INC R0 & & & & & & & & & & & & & &;R0=51H&
DJNZ R2,DP0 & & & & & & & &;如果R2不等于0,则跳转到DP0
& & & & & & &//---------------从上面计算可得到: (60H)=10H,(61H)=19H
& & & & & & & & MOV R0,#60H & & & & & & & &;R0=60重新建立映射关系
MOV R1,#2 & & & & & & & & & & ;数码管有2个段码
& & & & & & & &&MOV R2,#8 & & & & & & & & & & ;一个71HC164移位寄存器需要移动8次,以产生并口输出数据给数码管
MOV A,@R0 & & & & & & & & & ;(60H)中的数9的段码,赋给累加器A
& & & & & & & & RLC A & & & & & & & & & & & & & & &;带进位标志的左移操作
MOV P2.0,C & & & & & & & & & &;串行输出一位段码数据
& & & &&CLR P2.1 & & & & & & & & & & & &;
SETB P2.1 & & & & & & & & & & ;来个上升沿以产生移位时钟, 每次来这个脉冲,移位寄存器上的数往后面移动一位,原来A=1,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & ;来个脉冲后B=1,在来个脉冲后,C=1,以此类推。。。。。
DJNZ R2,DP2 & & & & & & & &;判断8位段码是否输出完整
INC R0 & & & & & & & & & & & & & &;下一个需要输出的段码地址加1
DJNZ R1,DP1 & & & & & & & &;判断2个段码是否输出完毕
JMP $ & & & & & & & & & & & & & & &;程序停在此处
TABLE: & & & & & & & & & & & & & & & & & & & & & &;数码管码表
& & & & &DB 40H,79H,24H,30H,19H & ;0,1,2,3,4
DB 12H,02H,78H,00H,10H & ;5,6,7,8,9
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网 51hei.com , All Rights Reserved豆丁微信公众号
君,已阅读到文档的结尾了呢~~
74hc164驱动数码管电路图和程序,数码管驱动程序,单片机数码管电路图,数码管电路图,四位数码管电路图,4位数码管电路图,74hc595 数码管,74hc573 数码管,74hc164 数码管,数码管驱动芯片
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
74hc164驱动数码管电路图和程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口51单片机,用的是74HC164驱动数码管。想用C语言显示1234,_百度知道
51单片机,用的是74HC164驱动数码管。想用C语言显示1234,
51单片机,用的是74HC164驱动数码管。想用C语言显示1234,我是初学者,只懂用用位显示四个8888,实在搞不懂74HC164怎么用
我有更好的答案
595 和 164 是雷同的。
采纳率:64%
动态显示看164的规格书就可以了
静态显示呢?😂😂我连静态还没搞懂
静态显示最简单,就是把你想显示的值直接输出
可是我不懂怎么用164输入数据
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机74HC164串口控制数码管显示
> 51单片机74HC164串口控制数码管显示
51单片机74HC164串口控制数码管显示
注意脉冲宽度:本51单片机用的是12MHZ晶振,每条指令最小执行时间1uS》》1ns ,可以根据时序图随便使用.原理图:程序代码:完整的keil工程文件下载地址:http://www.51hei.com/f/k164.rarORG 00H程序起始地址00HSTART:本文引用地址:
MOV 50H,#9立即数9放入50H单元
第一个数码管显示9MOV 51H,#4立即数4放入51H单元 第二个数码管显示4MOV R0,#50HR0=50 MOV R1,#60HR1=60 MOV R2,#2DP0:MOV DPTR,#TABLE将码表首地址给DPTR指针MOV A,@R0将50H单元中的9给AMOVC A,@A+DPTR查表得到(9+码表首地址)合成的地址中的数给累加器AMOV @R1,A把立即数9的段码,放入 60H单元中INC R1R1=61HINC R0R0=51HDJNZ R2,DP0如果R2不等于0,则跳转到DP0
//---------------从上面计算可得到: (60H)=10H,(61H)=19H
MOV R0,#60HR0=60重新建立映射关系MOV R1,#2数码管有2个段码DP1:
MOV R2,#8一个71HC164移位寄存器需要移动8次,以产生并口输出数据给数码管MOV A,@R0(60H)中的数9的段码,赋给累加器ADP2:
RLC A带进位标志的左移操作MOV P2.0,C串行输出一位段码数据
CLR P2.1SETB P2.1来个上升沿以产生移位时钟, 每次来这个脉冲,移位寄存器上的数往后面移动一位,原来A=1,
来个脉冲后B=1,在来个脉冲后,C=1,以此类推。。。。。DJNZ R2,DP2判断8位段码是否输出完整INC R0下一个需要输出的段码地址加1DJNZ R1,DP1判断2个段码是否输出完毕JMP $程序停在此处TABLE:
数码管码表
DB 40H,79H,24H,30H,19H0,1,2,3,4DB 12H,02H,78H,00H,10H5,6,7,8,9END
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 单片机控制数码管程序 的文章

 

随机推荐