资源简介
这个是数码管驱动,2个IO口驱6位数码管,而且同时还能外接12个按键
代码片段和文件信息
/*
*单片机型号: AT89S52
*开发环境: Keil uVision3
*晶震频率: 12M
*功能: TM1637做时钟显示,可以由按键控制数码屏显示0-9
*/
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar CODE[16] = {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71};
uchar show_LED[6]key;
uchar TIME_count;
uchar TIME_secondsseconds_2sub_1sub_2; //时间寄存器依次从秒个位至分十位
/**********************************
定时中断函数入口
功能: 每50MS中断一次
**********************************/
void time0(void) interrupt 1 using 2
{
TH0=0x3c;
TL0=0xb0;
TIME_count++;
if(TIME_count==20)
{
TIME_count = 0;
TIME_seconds++; // 秒寄存器加1
}
}
/*********************************
时钟函数
功能: 处理时钟显示
**********************************/
void TIME_show()
{
show_LED[0] = CODE[TIME_seconds];// 数码屏上最后一个“8”字,依次下去
show_LED[1] = CODE[seconds_2]; //数码屏倒数第二个“8”字,
show_LED[2] = CODE[sub_1];
show_LED[3] = CODE[sub_2];
if(TIME_seconds == 10) //对时间数据进行处理,以免溢出。
{
TIME_seconds = 0;
seconds_2+=1;
}
if(seconds_2 == 6)
{
seconds_2 = 0;
sub_1 +=1;
}
if(sub_1 == 10)
{
sub_1 = 0;
sub_2 +=1;
}
if(sub_2 == 6)
{
sub_2 = 0;
sub_1 = 0;
seconds_2 = 0;
}
}
/*********************************
延时函数
功能: 1ms延时
**********************************/
void delay_ms(uchar cyc)
{
//cyc=1的时候延时1ms
uchar iijj;
for(jj=1;jj<=cyc;jj++)
{
for(ii=0;ii<200;ii++)
{
nop;
}
}
}
//----------主函数-----------------
void main()
{
P1=0xff;//初始化单片机I/O口
TH0=0x3c;
TL0=0xb0;
TMOD=0x01; //定时器设置
IE=0x82;
EA=1;
ET0=1;
TR0=1;
while(1)//循环
{
key=readkey();
if (key !=255) show_LED[5] = CODE[key];
TIME_show();
showled(show_LED);
delay_ms(50);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12569 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637
文件 2008 2010-10-31 11:48 ok!TM1637-c51数码管显示演示代码\tm1637.c
文件 3820 2010-03-23 17:18 ok!TM1637-c51数码管显示演示代码\TM1637.H
文件 2254 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637.hex
文件 44 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637.lnp
文件 4966 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637.LST
文件 15469 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637.M51
文件 13966 2010-03-23 17:32 ok!TM1637-c51数码管显示演示代码\tm1637.OBJ
文件 1450 2010-04-07 22:20 ok!TM1637-c51数码管显示演示代码\tm1637.Opt
文件 268 2010-04-07 22:20 ok!TM1637-c51数码管显示演示代码\tm1637.plg
文件 2009 2010-04-07 21:25 ok!TM1637-c51数码管显示演示代码\tm1637.Uv2
文件 1450 2010-04-07 21:25 ok!TM1637-c51数码管显示演示代码\tm1637_Opt.Bak
文件 1995 2010-03-23 16:30 ok!TM1637-c51数码管显示演示代码\tm1637_Uv2.Bak
目录 0 2010-06-02 18:31 ok!TM1637-c51数码管显示演示代码
----------- --------- ---------- ----- ----
62268 14
- 上一篇:ant design pro动态菜单
- 下一篇:用prolog解决农夫过河问题
相关资源
- VHDL按键设计
- 2位数码管封装
- 松翰单片机定时中断数码管程序
- verilog实现八位数码管显示
- 51单片机Protues仿真舵机,可以通过按
- cypress 的触摸按键程序
- STM32F103,4*4矩阵按键
- 介绍一种LED小灯控制系统的设计方法
- 多种switch封装库,包括贴装按键,多
- 数码管原理图库
- KNN识别LED数码管
- MC9S12HY64 上的休眠 按键唤醒例程
- AD采集数据在数码管上显示
- 基于51单片机的简单计算器数码管显示
- 51单片机1602+ADIIC+按键
- 基于msp430g2553的触摸按键程序
- 基于51单片机定时器实现的数字时钟
- stm32+MAX7219数码管模块显示程序 spi接口
- 24C02存储显示计时时间
- 8255扩展4*4按键
- TM1616驱动四位数码管
- 按键控制MSP430F5529单片机控制灯闪烁
- 液晶数码管字体汇总(共22款)
- 实验5 外部中断实验.zip
- c51使用ds18b20测试温度使用数码管显示
- 12864时钟程序+按键可调
- ws2812b单按键变色
- c51单片机数码管显示温度
- 数码管驱动TM1640驱动程序
- Verilog HDL实现数码管动态扫描
评论
共有 条评论