单片机让第3个单片机数码管显示示1个3字,求程序

51单片机程序——按键控制单个数码管显示
14:08:13来源: eefocus 关键字:&&&&
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};// 显示数值表0-9
void main (void)
& & while(1) & & & & & & & & & & & & & & & //主循环
&P1 = 0x01; & & & & & & & & & & & & & &//打开数码管的位选
&switch(P3) & & & & & & & & & & & & & &//P3口作为独立按键输入端,检测端口电平并做如下判断 & & & & & & & & & & & & & &
case 0xff:P0=table[0]; & &//0xfe= & & & & & & & & & & & & & & & & & & & &
case 0xfe:P0=table[1]; & &//0xfe= & & & & & & & & & & & & & & & & & &
case 0xfd:P0=table[2]; & &//0xfd=&
case 0xfb:P0=table[3]; & &//0xfb=&
case 0xf7:P0=table[4]; //0xf7=&
& & & &default: & & & & & & & & &//如果都没按下,直接跳出 &
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。51单片机C语言程序(三)数码管
10:30:00&&&来源:eefocus &&
利用动态扫描方法在六位数码管上显示出稳定的654321.
时钟频率为11.0592M
#include& //52单片机头文件
//包含有左右循环移位子函数的库
#define uint unsigned int&&& //宏定义
#define uchar unsigned char& //宏定义
sbit dula=P2^6;&&&&&& //数码管段选锁存端
sbit wela=P2^7;&&&&&& ////数码管位选锁存端
uchar code table[]={&& //数码管显示编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar,uchar,uchar,uchar,uchar,uchar); //函数声明
void delay(uint);
void main()
&&display(6,5,4,3,2,1);&&&&&&&& //始终显示
void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six)
&&&&&&& dula=1;
&&P0=table[one];&& //送段数据
&&P0=0&&//送位数据前关闭所有显示,防止打开位选锁存后段选数据通过位选锁存器
&&delay(1);
&&P0=table[two];
&&delay(1);
&&P0=table[three];
&&delay(1);
&&P0=table[four];
&&P0=0xf7;
&&delay(1);
&&P0=table[five];
&&delay(1);
&&P0=table[six];
&&delay(1);
void delay(uint z)&&&&&& //延时子函数
&uint x,y;
&for(x=z;x>0;x--)
&&for(y=110;y>0;y--);
用动态扫描方法和定时器1在数码管的前三位显示出秒表,
精确到1%秒,即最后一位显示1%秒,一直循环下去
#include& //52单片机头文件
//包含有左右循环移位子函数的库
#define uint unsigned int&&& //宏定义
#define uchar unsigned char& //宏定义
sbit dula=P2^6;&&&&&& //数码管段选锁存端
sbit wela=P2^7;&&&&&& ////数码管位选锁存端
uchar ge,shi,
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar,uchar,uchar); //函数声明
void delay(uint);
void main()
&TMOD=0x10;//设置定时器1为工作方式1
&TH1=()/256;
&TL1=()%256;
&EA=1;//开总中断
&ET1=1;//开定时器1中断
&TR1=1;//启动定时器1
&&display(bai,shi,ge);
void exter0() interrupt 3&& // 定时器1中断
&TH1=()/256;
&TL1=()%256;
&if(tt==1000)
&bai=tt/100;
&shi=tt%100/10;
&ge=tt%10;
void display(uchar one,uchar two,uchar three)
&&&&&&& dula=1;
&&P0=table[one];&& //送段数据
&&P0=0&&//送位数据前关闭所有显示,防止打开位选锁存后段选数据通过位选锁存器
&&delay(1);
&&P0=table[two];
&&delay(1);
&&P0=table[three];
&&delay(1);
void delay(uint z)&&&&&& //延时子函数
&uint x,y;
&for(x=z;x>0;x--)
&&for(y=110;y>0;y--);
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
51单片机相关资源
C语言程序相关资源
数码管相关资源
编辑:什么鱼
本文引用地址:
大学堂最新课程
本周热门资源推荐
EEWORLD独家单片机程序之三,数码管显示0-9自检
15:18:02来源: eefocus 关键字:&&&&
这个学习板的是用P0显示笔划,P2选通每个字的
unsigned char data dis_
unsigned char code dis_code[11] =&
{0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF}; //共阳极数码管
unsigned char data dis_buf[10];
unsigned char data dis_
unsigned char i = 0, j = 0;
void main(void)
P0 = 0xFF;
P2 = 0xFF;
TH0 &= 0xFC;
TL0 &= 0x17;
IE & = 0x82;
for(i=0;i<=9;i++)
dis_buf[i] = dis_code[i];
dis_digit = 0xFE;
dis_index = 0;
void timer0() interrupt 1
//定时器0中断服务程序, 用于数码管的动态扫描
//dis_index--显示索引, 用于标识当前显示的数码管和缓冲区的偏移量
//dis_gigit--位选通道, 传送到P2口用于选通当前数码管的数值, 如为0xFE时选通P2.0口数码管
//dis_buf--显示缓冲区基地址
TH0 = 0xFC;
TL0 = 0x17;
P2 = 0xFF; //先关闭所有数码管
P0 = dis_buf[dis_index];
dis_digit = _crol_(dis_digit, 1); //位选通道左移, 下次中断时选通下一位数码管
& & & & //最简单的延时之后换显示内容
if (i==100)
if (j == 5)
dis_index++;
if (dis_index == 10)
dis_index = 0;
//dis_index &= 0x07; //8个数码管全部扫描完, 重新开始
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。单片机用一个按键控制数码管显示图_百度知道
单片机用一个按键控制数码管显示图
我有更好的答案
#include&reg52.h&#define uint unsigned int#define uchar unsigned char //宏定义sbit key1=P0^0; //定义键盘IO口sbit key2=P0^1;
//sbit beep=P2^3;sbit key3=P0^2;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共阳数码管编码号void keyscan();//键扫描函数void display();
void delayms(uint);void main()
//主函数{ while(1) //大循环 {
///display(); //显示函数
keyscan();
//键扫描函数
display(); //显示函数
}}void display()//显示函数,使函数调回主函数{
P1=table[num];//显示数码管编码数
delayms(5);
}void keyscan() //键扫描函数{ if(key1==0)
//判断键一是否按下 {
if(key1==0)
delayms(10);
while(!key1);//未按下,键开路
delayms(50);
if(num==10)
while(!key1);
} } if(key2==0) {
if(key2==0)
delayms(10);
delayms(50);
while(!key2);
if(num==0)
while(!key2);
} } if(key3==0) {
if(key3==0)
delayms(50);
while(!key3);
void delayms(uint xms) //延时函数{ int i,j; for(i=i&0;i--) for(j=110;j&0;j--);}
采纳率:40%
说的再具体点,太抽象,
最好把电路图拿来看看
为您推荐:
其他类似问题
您可能关注的内容
数码管显示的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机:并行使数码管逐个显示1-9程序(asm)_百度知道
单片机:并行使数码管逐个显示1-9程序(asm)
我有更好的答案
0x92,0x82;
sled_disp_buff[3] = mun_to_char[count/10000];j++){ /*单次字符显示延时*/2,0xf9,0xa4,0x8e},0xff,0xff}; /*寄存8位数码管数据*/ while(1){
for(j=0;j&*输出字符代码*/
sled_wm_port = sled_bit_table[i];/*1MS为单位的延时程序*/void delay_1ms(uchar x){
while(x--){
for(j=0;8;
sled_disp_buff[4] = mun_to_char[count%10000&#47.h&
#include &10];uchar code sled_bit_table[]={0x7f; /*主程序*//*头文件*/#include &
sled_disp_buff[6] = mun_to_char[count%100/
sled_disp_buff[5] = mun_to_char[count%xbf,0xdf,0xfb,0xfd,0xa1,0x86,数码管显示出来
说明,0xef,0xf7;intrins,0xff,01000],0xfe},0x90,0x88;/*定义需要点亮的数码管*&#47,0xb0,0x99;reg52,0xff,0*点亮第i个数码管*/
delay_1ms(1); uint count=0;*端口定义*/#define sled_dm_port
/ &#47.h&#define uint unsigned int#define uchar unsigned char&#47:使用本程序你必须把 SE5设置为ON(2-3)短接
*****************************************************************/*定义数码管显示字符跟数字的对应数组关系*/i++){ /*扫描输出8位数码管*/
sled_wm_port = 0 /*关闭数码管显示*/
sled_dm_port = sled_disp_buff[i];
sled_disp_buff[7] = mun_to_char[count%10]; uchar sled_disp_buff[8]={0xff,0xff,0xf8,0x80;uchar mun_to_char[]={0xc0;void main(){
*定义LED显示的段码数据脚*/j&125;j++)
for(i=0;i&#define sled_wm_port
/*定义LED显示的位码数据脚*//****************************************************************
数字自动加1计数&#47,0x83,0xc6
DPTR,#LEDMOV R1,#1BBB:MOV A,#0AAA:MOVC A,@A+DPTRMOV
P0,ALCALL SHOWINC ACJNE A,#9,AAAJMP BBBSHOW:PUSH AMOV A,R1RR AMOV R1,AMOV P1,A数码管选通LCALL DELAYPOP ARETDELAY:MOV R2,#0FFHDJNZ
R2,$RETLED:DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
为您推荐:
其他类似问题
单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 单片机数码管显示 的文章

 

随机推荐