用8051单片机怎么控制数码管控制八段数码管显示数据

单片机课程设计--8051系列单片机控制的八路智力抢答器设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机课程设计--8051系列单片机控制的八路智力抢答器设计
上传于||文档简介
&&单​片​机​控​制​的​八​路​智​力​抢​答​器​设​计​单​片​机​课​程​设​计
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩33页未读,继续阅读
你可能喜欢单片机控制一个4位的共阴数码管通电的状态下显示时间的程序_百度知道
单片机控制一个4位的共阴数码管通电的状态下显示时间的程序
if(ji&break,shi=15; }}void duan() interrupt 1
if(shi==24)
jiance()!PRESS2);
case 4,0}void xian()/i&gt,shis,feng:P3=b[7],0xef:P3=b[5];}void jiance()/
if(PRESS3==0)
if(miao==60)
miao=0; shis=shi/
} } if(ji==1) {
if(PRESS2==0)
delay(1).h&gt。{ if(PRESS1==0) {
delay(2)!PRESS3);
if(PRESS1==0)
if(PRESS3==0)
delay(1):P3=b[1];0到9 uint b[]={0
fen++!PRESS1); TL0=0xb0;
} } if(ji==3) {
if(PRESS2==0)
delay(1);sbit PRESS3=P1^2;j&
if(shi&sbit PRESS2=P1^1,0xf7;
miao++;计时中断0工作方式1函数;=4)
ji=0; miaog=miao%10;10;/i&0; miaos=miao/P2=0x40;P2=a[shig]#include &
if(fen&=60)
fen=0; }void delay(x)/
case 7; jishu++;&#47。{
shi--:P3=b[2];/#define uint unsigned int#define uchar unsigned charsbit PRESS1=P1^0,0x4f;延时函数,miaos,0
fen--;reg52; TR0=1;P2=a[fens];
fen++:P3=b[6],0x6d!PRESS2);
if(PRESS3==0)
delay(1),0x06; while(1) {
while(;break,0x7f};检测键是否按下按不同键实现不同的处理;0)
fen=59,0j--); EA=1;
} } if(ji==0)
if(miao&10; shig=shi%10;void init()/10;
} } if(ji==2) {
if(PRESS2==0)
delay(1),j,fen=58;
delay(1)。{ uint i,0x7d!PRESS2);
while(:P3=b[3];i++) {
case 0,0x5b;把时分秒送到数码管显示; TL0=0xb0;=60)
case 3; fens=fen/ for(i=x;break, TH0=0x3c,0x6f};
case 5,0x66; for(i=0; TMOD=0x01;P2=a[shis];
case 6;8; else
shi++:P3=b[0]; ET0=1,0
miao--,shig,0x07;}void main(){ init();P2=a[miaog]!PRESS3),0x7f; }; if(jishu==20) {
jishu=0;int miao=45:P3=b[4]; feng=fen%10;
if(shi&P2=a[feng]!PRESS3);i--)
for(j=120;/0)
shi=23;初始化函数设置中断寄存器的值。{ TH0=0x3c;
shi++;P2=0x40。{ jishu=0;0;P2=a[miaos];
if(fen==60)
fen++;uint a[]={0x3f
其他类似问题
为您推荐:
您可能关注的推广
单片机的相关知识
其他1条回答
基于单片机的交通灯控制器
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的...
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机C语言程序设计实训100例——基于8051 Proteus仿真
单片机C语言程序设计实训100例51 Proteus仿真
本书基于Keil &Vision程序设计平台和Proteus硬件仿真平台,精心编写了100余个8051单片机C语言程序设计案例。
全书基础设计类案例贯穿8051单片机最基本的端口编程、定时/计数器应用、中断和串口通信;硬件应用类案例涵盖常用外部存储器扩展、接口扩展、译码、编码、驱动、光机、机电、A/D与D/A转换等内容;综合设计类案例涉及大量消费类电子产品、仪器仪表及智能控制设备的相关技术。
本书可作为大专院校学生学习实践单片机c语言程序设计的教材或参考书,也可作为电子工程技术
人员或单片机技术爱好者的参考资料。
第1章 8051单片机C语言程序设计概述
 1.1 8051单片机引脚
 1.2 数据与程序内存
 1.3 特殊功能寄存器
 1.4 外部中断、定时/计数器及串口应用
 1.5 有符号与无符号数应用、数位分解、位操作
 1.6 变量、存储类型与存储模式
 1.7 数组、字符串与指针
 1.8 流程控制
 1.9 可重入函数和中断函数
 1.10 C语言在单片机系统开发中的优势
第2章 Proteus操作基础
 2.1 Proteus操作界面简介
 2.2 仿真电路原理图设计
 2.3 元件选择
 2.4 调试仿真
 2.5 Proteus与 V3的联合调试
第3章 基础程序设计
 3.1 闪烁的LED
 3.2 从左到右的流水灯
 3.3 左右来回循环的流水灯
 3.4 花样流水灯
 3.5 LED模拟交通灯
 3.6 单只数码管循环显示0~9
 3.7 8只数码管滚动显示单个数字
 3.8 8只数码管显示多个不同字符
 3.9 数码管闪烁显示
 3.10 8只数码管滚动显示数字串
 3.11 K1~K4控制LED移位
 3.12 K1~K4按键状态显示
 3.13 K1~K4分组控制LED
 3.14 K1~K4控制数码管移位显示
 3.15 K1~K4控制数码管加减演示
 3.16 4&4键盘矩阵控制条形LED显示
 3.17 数码管显示4&4键盘矩阵按键
 3.18 开关控制LED
 3.19 继电器控制照明设备
 3.20 数码管显示拨码开关编码
 3.21 开关控制报警器
 3.22 按键发音
 3.23 播放音乐
 3.24 INT0中断计数
 3.25 INT0中断控制LED
 3.26 INT0及INT1中断计数
 3.27 TIMER0控制单只LED闪烁
 3.28 TIMER0控制流水灯
 3.29 TIMER0控制4只LED滚动闪烁
 3.30 T0控制LED实现二进制计数
 3.31 TIMER0与TIMER1控制条形LED
 3.32 10s的秒表
 3.33 用计数器中断实现100以内的按键计数
 3.34 10 000s以内的计时程序
 3.35 定时器控制数码管动态显示
 3.36 8&8 LED点阵屏显示数字
 3.37 按键控制8&8 LED点阵屏显示图形
 3.38 用定时器设计的门铃
 3.39 演奏音阶
 3.40 按键控制定时器选播多段音乐
 3.41 定时器控制交通指示灯
 3.42 报警器与旋转灯
 3.43 串行数据转换为并行数据
 3.44 并行数据转换为串行数据
 3.45 甲机通过串口控制乙机LED闪烁
 3.46 单片机之间双向通信
 3.47 单片机向主机发送字符串
 3.48 单片机与PC串口通信仿真
第4章 硬件应用
 4.1 74LS138译码器应用
 4.2 74HC154译码器应用
 4.3 74HC595串入并出芯片应用
 4.4 用74LS148扩展中断
 4.5 I2C-24C04与蜂鸣器
 4.6 I2C-24C04与数码管
 4.7 用6264扩展内存
 4.8 用8255实现接口扩展
单片机C语言程序设计实训100例——基于8051 Proteus仿真下载
下载资料需要,并消耗一定积分。
下载此资料的人还喜欢:
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
本周热点资料
电子资料热门词
上传者其它资料
单片机下载排行8051单片机动态显示数码管
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
8051单片机动态显示数码管
&&& 本*表示看了独立键盘和LED直接串联起来的东西,表示比之前的提升了一个档次,所以研究了有一会儿。这段程序之后和按键一起写奉上。
&&& 数码管是个很神奇的东西-。- 本*表示数码管分两种,共阴和共阳。一般开发板上都是共阴,我这块x宝买的也是一样。
&&& 我先看了郭天祥的视频,发现他只介绍了静态数码管。而静态数码管的显示简单很多,硬件设计上也简单很多,用到了两块74HC573。
&&& 但是动态又提升了一个档次,首先是寄存器不一样,其次,设计上也负责了很多,本*表示研究了半天还一知半解。什么级联什么的,表示电路分析,模电,数电还没学好有难度。但是大致意思就是一个锁存器是8位,两个就是16位,相当于当做16位用,然后在传输数据时候一个个退一个这样最后锁存住。这里就要定义三个位变量。 数据,移位,还有锁存。
&&& 好了现在放出程序。是要在数码管上显示.
&&& #include &reg52.h&
&&& sbit DIG_DATA = P0^2;&& //数据
&&& sbit DIG_SHCP = P0^4;&& //移位
&&& sbit DIG_STCP = P2^3;&& //锁存
&&& code unsigned char Segment[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};&
&&& code unsigned char Select[] = {0xff,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};&
&&& void DigOutput(unsigned char SelectByte, unsigned char SegmentByte)
for(i=0; i&8; i++)
DIG_SHCP = 0;
&& if(SegmentByte&0x80)
&&&&&& DIG_DATA = 1;
&& DIG_DATA = 0;
DIG_SHCP = 1;
SegmentByte &&= 1;
for(i=0; i&8; i++)
DIG_SHCP = 0;
&& if(SelectByte&0x80)
&&&&&& DIG_DATA = 1;
&&&&&&& }&&&
&& DIG_DATA = 0;
DIG_SHCP = 1;
SelectByte &&= 1;
DIG_STCP = 0;
DIG_STCP = 1;
&&& void main(void)
&&&&&&& while(1)
&&&&&&&&&&& DigOutput(Select[8],Segment[1]);&&&
&&&&&&&&&&& DigOutput(Select[7],Segment[2]);&&&
&&&&&&&&&&& DigOutput(Select[6],Segment[3]);&&
&&&&&&&&&&& DigOutput(Select[5],Segment[4]);&&&
&&&&&&&&&&& DigOutput(Select[4],Segment[5]);&&&
&&&&&&&&&&& DigOutput(Select[3],Segment[6]);&&&
&&&&&&&&&&& DigOutput(Select[2],Segment[7]);&&&
&&&&&&&&&&& DigOutput(Select[1],Segment[8]);&&&
&& 表示要显示一个数字或者几个也是一样的方法,只不过如果是一个的话就不用写函数了,直接在主函数里面就可以了。我觉得静态的没什么用处,动态的用处比较多,所以学习一下还是有好处的。
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved

我要回帖

更多关于 八段数码管显示实验 的文章

 

随机推荐