资源简介
这个是数码管驱动,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解决农夫过河问题
相关资源
- DAS1302蜂鸣 独立按键 闹钟设定 IIC存储
- 【单片机】51单片机数码管显示万年历
- 25.数码管显示0-99
- Verilog按键代码
- STC12C5A60S2 CH4521 驱动数码管 显示
- 课程设计蔬菜大棚自动控制系统,包
- CH454键盘与数码管显示程序
- 基于EWB软件的数码管显示控制器
- 单片机电子琴 数码管显示
- FPGA按键消抖
- CMD批处理模拟鼠标按键事件
- 74hc244驱动数码管显示电路及程序
- 数码管字体
- STM32F407实时时钟_DS1302实时时钟模块和
- 基于STM32F103的实时时钟程序,采用D
- 51单片机_DS1302时钟芯片_共阴数码管
- 倒计时与选手数码管编号显示的四人
- 用delphi实现的类似于按键精灵的脚本
- 串口条码枪转模拟按键
- 基于51单片机的智能十字路口交通灯系
- 基于STM32+TM1638芯片的共阳极数码管驱
- 畅学系列STM32开发板实验箱8位独立按
- 单按键开关控制电路
- 第五章 畅学多功能实验箱4位一体数码
- 畅学ARM多功能实验箱数码管显示源码
- 用WinIo模拟按键
- 易语言用WinIO模拟按键源码
- 易语言winio模拟键盘源码易语言测试源
- 解决STM32每次程序都需要断电
- 嵌入式按键设计大全含电路原理图
评论
共有 条评论