资源简介
基于lpc2136开发的数字时钟
具有时间设置功能;
五个按键功能分布:
KEY1 P0 26 小时加
KEY2 P0 27 分钟加
KEY3 P0 28 第一次按下 进入时间设置状态;再按保存
当前设置时间
KEY4 P0 29 第一次按下 进入闹钟设置状态;再按保存
当前设置时间
KEY5 P0 30 停止闹钟">基于lpc2136开发的数字时钟
具有时间设置功能;
五个按键功能分布:
KEY1 P0 26 小时加
KEY2 P0 27 分钟加
KEY3 P0 28 第一次按下 进入时间设置状态;再按保存
当前设置时间
KEY4 P0 29 [更多]
代码片段和文件信息
#include “lpc2136.h“
#include “typedef.h“
#include “delay.h“
#define CS (1 << 7) //选择P0.7 作为CS
#define DI (0x1 << 6) //选择P0.6 作为数据输入
#define CLK (0x1 << 4) //选择P0.4 作为时钟
#define DECODE_MODE 0x09 //译码控制寄存器
#define INTENSITY 0x0A //亮度控制寄存器
#define SCAN_LIMIT 0x0B //扫描界限寄存器
#define SHUT_DOWN 0x0C //关断模式寄存器
#define DISPLAY_TEST 0x0F //测试控制寄存器
#define KEY1 (1<<26)
#define KEY2 (1<<27)
#define KEY3 (1<<28)
#define KEY4 (1<<29)
#define KEY5 (1<<30)
#define BEEP (1<<18)
void Write7219(uint8 addressuint8 dat);
uint8 sum = 0;
uint8 h = 0m = 0s = 0count = 0;
uint8 key3num = 0key4num = 0;
uint8 clock_hour = 12clock_minute = 0;
uint8 beep_falg = 0;
uint8 key_flag = 0;
/******************************************************************************
*
*函数名Init_Max7219
*功能:MAX7219 初始化设置MAX7219 内部的控制寄存器
*参数:无
*返回值:无
*******************************************************************************
*/
void Init_Max7219(void)
{
Write7219(SHUT_DOWN0x01);// 开启正常工作模式(0xX1)
Write7219(DISPLAY_TEST0x00);// 选择测试模式(0xff)
Write7219(DECODE_MODE0xf);//选用CODEB 0-3
Write7219(SCAN_LIMIT0x03);//选择0-3
Write7219(INTENSITY0x04);//设置初始亮度
//Write7219(DISPLAY_TEST0x00);// 选择工作模式(0xX0)
Write7219(10); // 第一个数码管(从右到左)
Write7219(20); //
Write7219(30); //
Write7219(40); //
}
/******************************************************************************
*
*函数名Write7219
*功能:地址、数据发送子程序
*参数 :无
*返回值:无
*******************************************************************************
*/
void Write7219(uint8 addressuint8 dat)
{
uint8 i;
IO0CLR = CS; // 拉低片选线 选中器件
for (i=0;i<8;i++) // 移位循环8 次
{
IO0CLR = CLK; // 清零时钟总线 0000 0001 0000 0001
if( (address &0x80))// 每次取高字节 1000 0000
IO0SET = DI;
else
IO0CLR = DI;
address <<=1; // 左移一位
IO0SET = CLK; // 时钟上升沿发送地址
}
for (i=0;i<8;i++)
{
IO0CLR = CLK;
if( (dat&0x80)) //0xxx xxxx xxxx xxx0
{ //1000 0000
IO0SET = DI;
}else
{
IO0CLR = DI;
}
dat <<=1;
IO0SET = CLK;
}
IO0SET = CS; // 发送结束上升沿锁存数据
}
/******************************************************************************
*
*函数名init_system
*功能:初始化CS | DI | CLK,并使CS | DI | CLK 初始状态为高
*参数 :无
*返回值:无
*******************************************************************************
*/
void init_system()
{
IO0DIR = CS | DI | CLK | BEEP;
IO0SET = CS | DI | CLK;
IO0CLR = BEEP;
}
/****************************************************************************
* 名 称:Time0Init()
* 功 能:初始化定时器,定时时间为S。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Time0Init(void)
{ /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
MCR 0000 1100 0000
*/
T0PR = 9; // 设置定时器分频为分频,得Hz
T0MCR = 0xc0; // 匹配通道匹配中断并复位T0TC
// T0MR2 = 110591; // 比较值(1S 定时值)
T0MR2 = 137247;
T0TCR = 0x03; // 启动并复位T0TC
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 330 2012-03-03 16:30 lpc2136_max_time\code\delay.h
文件 34374 2013-04-01 19:19 lpc2136_max_time\code\LPC2136.h
文件 10101 2014-01-17 11:43 lpc2136_max_time\code\main.c
文件 600 2014-03-16 16:23 lpc2136_max_time\code\typedef.h
文件 248 2014-01-15 17:23 lpc2136_max_time\Jli
文件 19516 2014-01-17 11:10 lpc2136_max_time\lpc2136_max_time.axf
文件 23384 2014-01-17 11:10 lpc2136_max_time\lpc2136_max_time.htm
文件 279 2014-01-17 11:10 lpc2136_max_time\lpc2136_max_time.lnp
文件 52670 2014-01-17 11:10 lpc2136_max_time\lpc2136_max_time.map
文件 196 2014-03-16 16:24 lpc2136_max_time\lpc2136_max_time.plg
文件 479 2014-01-15 17:22 lpc2136_max_time\lpc2136_max_time.sct
文件 969 2014-01-17 11:10 lpc2136_max_time\lpc2136_max_time.tra
....... 58562 2014-03-16 16:24 lpc2136_max_time\lpc2136_max_time.uvopt
....... 14614 2014-01-15 19:55 lpc2136_max_time\lpc2136_max_time.uvproj
文件 521 2014-03-16 16:24 lpc2136_max_time\lpc2136_max_time_lpc2136_max_time.dep
文件 241 2014-01-15 17:03 lpc2136_max_time\lpc2136_max_time_Target 1.dep
....... 58558 2014-03-16 16:23 lpc2136_max_time\lpc2136_max_time_uvopt.bak
....... 14575 2014-01-15 17:23 lpc2136_max_time\lpc2136_max_time_uvproj.bak
文件 13460 2014-01-17 11:10 lpc2136_max_time\main.crf
文件 91 2014-01-17 11:10 lpc2136_max_time\main.d
文件 35192 2014-01-17 11:10 lpc2136_max_time\main.o
文件 159 2014-01-17 11:10 lpc2136_max_time\main.__i
文件 44463 2014-01-15 17:22 lpc2136_max_time\Startup.lst
文件 3092 2014-01-15 17:22 lpc2136_max_time\Startup.o
文件 14886 2010-03-30 14:49 lpc2136_max_time\Startup.s
目录 0 2014-01-15 17:04 lpc2136_max_time\code
目录 0 2014-03-16 16:24 lpc2136_max_time
----------- --------- ---------- ----- ----
401560 27
............此处省略0个文件信息
- 上一篇:毕业设计计算机类外文+翻译
- 下一篇:一键FTP工具
相关资源
- Proteus数字时钟电路仿真.rar
- 数字逻辑课设:数字时钟logisim文件
- VHDL多功能数字万年历
- 嵌入式系统多功能数字时钟的设计(
- 51单片机数字时钟-proteus仿真文件及
- 基于51单片机定时器实现的数字时钟
- 数字钟仿真+源程序.zip
- Qt模拟时钟+数字时钟+万年历的程序
- 数字时钟[VHDL]
- 基于PIC16F877A单片机字符液晶显示数字
- 简单的flash数字时钟,可用于ppt,或
- 用Quartus2编的数字时钟(VHDL语言)
- FPGA 数字时钟
- 微机原理课程设计报告-数字时钟的实
- C51的数字时钟.rar
- 基于AT89C51数字时钟设计过程与仿真
- 数字时钟电路图PCB
- VerilogHDL在FPGA中实现的数字时钟
- 单片机课程设计数字时钟
- pcf8583数字时钟程序清单.
- 数字时钟数字时钟课程设计
- 基于Proteus的数字时钟设计与仿真
- 单片机多功能数字时钟报告1602LCD Ds
- 数字逻辑数字时钟原理图
- Verilog数字钟设计实验报告
- 51单片机数字时钟设计
- 数字时钟课程设计报告
- proteus实验\\数字时钟电路设计proteus仿
- 数字时钟,采用555构成的多协振荡器
- 数字时钟基于Multisim
评论
共有 条评论