用简单C语言编程数码管时钟,成功C DIY 单片机(3)51单片机直接实现最简单的时钟...

//这是采用查询方式的,比较占CUP资源,

#include  //包含器件配置文件

#define uchar unsigned char

#define uint unsigned int

//这里定义了所有二进制--十六进制转换

#define B00000000 0x0

#define B00000001 0x1

#define B00000010 0x2

#define B00000011 0x3

#define B00000100 0x4

#define B00000101 0x5

#define B00000110 0x6

#define B00000111 0x7

#define B00001000 0x8

#define B00001001 0x9

#define B00001010 0xa

#define B00001011 0xB

#define B00001100 0xc

#define B00001101 0xd

#define B00001110 0xe

#define B00001111 0xf

#define B00010000 0x10

#define B00010001 0x11

#define B00010010 0x12

#define B00010011 0x13

#define B00010100 0x14

#define B00010101 0x15

#define B00010110 0x16

#define B00010111 0x17

#define B00011000 0x18

#define B00011001 0x19

#define B00011010 0x1a

#define B00011011 0x1B

#define B00011100 0x1c

#define B00011101 0x1d

#define B00011110 0x1e

#define B00011111 0x1f

#define B00100000 0x20

#define B00100001 0x21

#define B00100010 0x22

#define B00100011 0x23

#define B00100100 0x24

#define B00100101 0x25

#define B00100110 0x26

#define B00100111 0x27

#define B00101000 0x28

#define B00101001 0x29

#define B00101010 0x2a

#define B00101011 0x2B

#define B00101100 0x2c

#define B00101101 0x2d

#define B00101110 0x2e

#define B00101111 0x2f

#define B00110000 0x30

#define B00110001 0x31

#define B00110010 0x32

#define B00110011 0x33

#define B00110100 0x34

#define B00110101 0x35

#define B00110110 0x36

#define B00110111 0x37

#define B00111000 0x38

#define B00111001 0x39

#define B00111010 0x3a

#define B00111011 0x3B

#define B00111100 0x3c

#define B00111101 0x3d

#define B00111110 0x3e

#define B00111111 0x3f

#define B01000000 0x40

#define B01000001 0x41

#define B01000010 0x42

#define B01000011 0x43

#define B01000100 0x44

#define B01000101 0x45

#define B01000110 0x46

#define B01000111 0x47

#define B01001000 0x48

#define B01001001 0x49

#define B01001010 0x4a

#define B01001011 0x4B

#define B01001100 0x4c

#define B01001101 0x4d

#define B01001110 0x4e

#define B01001111 0x4f

#define B01010000 0x50

#define B01010001 0x51

#define B01010010 0x52

#define B01010011 0x53

#define B01010100 0x54

#define B01010101 0x55

#define B01010110 0x56

#define B01010111 0x57

#define B01011000 0x58

#define B01011001 0x59

#define B01011010 0x5a

#define B01011011 0x5B

#define B01011100 0x5c

#define B01011101 0x5d

#define B01011110 0x5e

#define B01011111 0x5f

#define B01100000 0x60

#define B01100001 0x61

#define B01100010 0x62

#define B01100011 0x63

#define B01100100 0x64

#define B01100101 0x65

#define B01100110 0x66

#define B01100111 0x67

#define B01101000 0x68

#define B01101001 0x69

#define B01101010 0x6a

#define B01101011 0x6B

#define B01101100 0x6c

#define B01101101 0x6d

#define B01101110 0x6e

#define B01101111 0x6f

#define B01110000 0x70

#define B01110001 0x71

#define B01110010 0x72

#define B01110011 0x73

#define B01110100 0x74

#define B01110101 0x75

#define B01110110 0x76

#define B01110111 0x77

#define B01111000 0x78

#define B01111001 0x79

#define B01111010 0x7a

#define B01111011 0x7B

#define B01111100 0x7c

#define B01111101 0x7d

#define B01111110 0x7e

#define B01111111 0x7f

#define B10000000 0x80

#define B10000001 0x81

#define B10000010 0x82

#define B10000011 0x83

#define B10000100 0x84

#define B10000101 0x85

#define B10000110 0x86

#define B10000111 0x87

#define B10001000 0x88

#define B10001001 0x89

#define B10001010 0x8a

#define B10001011 0x8B

#define B10001100 0x8c

#define B10001101 0x8d

#define B10001110 0x8e

#define B10001111 0x8f

#define B10010000 0x90

#define B10010001 0x91

#define B10010010 0x92

#define B10010011 0x93

#define B10010100 0x94

#define B10010101 0x95

#define B10010110 0x96

#define B10010111 0x97

#define B10011000 0x98

#define B10011001 0x99

#define B10011010 0x9a

#define B10011011 0x9B

#define B10011100 0x9c

#define B10011101 0x9d

#define B10011110 0x9e

#define B10011111 0x9f

#define B10100000 0xa0

#define B10100001 0xa1

#define B10100010 0xa2

#define B10100011 0xa3

#define B10100100 0xa4

#define B10100101 0xa5

#define B10100110 0xa6

#define B10100111 0xa7

#define B10101000 0xa8

#define B10101001 0xa9

#define B10101010 0xaa

#define B10101011 0xaB

#define B10101100 0xac

#define B10101101 0xad

#define B10101110 0xae

#define B10101111 0xaf

#define B10110000 0xB0

#define B10110001 0xB1

#define B10110010 0xB2

#define B10110011 0xB3

#define B10110100 0xB4

#define B10110101 0xB5

#define B10110110 0xB6

#define B10110111 0xB7

#define B10111000 0xB8

#define B10111001 0xB9

#define B10111010 0xBa

#define B10111011 0xBb

#define B10111100 0xBc

#define B10111101 0xBd

#define B10111110 0xBe

#define B10111111 0xBf

#define B11000000 0xc0

#define B11000001 0xc1

#define B11000010 0xc2

#define B11000011 0xc3

#define B11000100 0xc4

#define B11000101 0xc5

#define B11000110 0xc6

#define B11000111 0xc7

#define B11001000 0xc8

#define B11001001 0xc9

#define B11001010 0xca

#define B11001011 0xcB

#define B11001100 0xcc

#define B11001101 0xcd

#define B11001110 0xce

#define B11001111 0xcf

#define B11010000 0xd0

#define B11010001 0xd1

#define B11010010 0xd2

#define B11010011 0xd3

#define B11010100 0xd4

#define B11010101 0xd5

#define B11010110 0xd6

#define B11010111 0xd7

#define B11011000 0xd8

#define B11011001 0xd9

#define B11011010 0xda

#define B11011011 0xdB

#define B11011100 0xdc

#define B11011101 0xdd

#define B11011110 0xde

#define B11011111 0xdf

#define B11100000 0xe0

#define B11100001 0xe1

#define B11100010 0xe2

#define B11100011 0xe3

#define B11100100 0xe4

#define B11100101 0xe5

#define B11100110 0xe6

#define B11100111 0xe7

#define B11101000 0xe8

#define B11101001 0xe9

#define B11101010 0xea

#define B11101011 0xeB

#define B11101100 0xec

#define B11101101 0xed

#define B11101110 0xee

#define B11101111 0xef

#define B11110000 0xf0

#define B11110001 0xf1

#define B11110010 0xf2

#define B11110011 0xf3

#define B11110100 0xf4

#define B11110101 0xf5

#define B11110110 0xf6

#define B11110111 0xf7

#define B11111000 0xf8

#define B11111001 0xf9

#define B11111010 0xfa

#define B11111011 0xfB

#define B11111100 0xfc

#define B11111101 0xfd

#define B11111110 0xfe

#define B11111111 0xff

const unsigned char

LED7Code[]={ //0~9的数码管段码

0x3F, // 0

0x06, // 1

0x5B, // 2

0x4F, // 3

0x66, // 4

0x6D, // 5

0x7D, // 6

0x07, // 7

0x7F, // 8

0x6F, // 9

};

char

DATA_BIT[5]={0xFF,~(B00000001),~B00000010,~B00000100,~B00001000};//位选

uchar

hour=8,min=30,sec=0; //时、分、秒单元清零

uchar

deda=0; //5mS计数单元清零

bit

d_05s=0; //0.5秒标志

bit

o_f=0; //闹时启/停标志

uchar

set=8; //模式设定标志

uchar m=0;

void delay(uint

k); //延时子函数

void

conv(); //走时单元转换

void

dirve(); //走时时间输出驱动子函数

//走时函数

void time()

{

conv(); //走时单元转换

dirve(); //走时时间输出驱动子函数

}

//定时器T0 5mS初始化

void init_timer()

{

TMOD=0x01;

TH0=-(4800/256);

TL0=-(4800%256);

IE=0x82;

TR0=1;

}

//扫描按键子函数

void scan_key()

{

delay(1);

if(P3_4==0)set++;

if(set>=2)set=0;

F0: if(P3_4==0)goto

F0; //按键未释放,在此等候

}

//延时子函数

void delay(uint k)

{

uint i,j;

for(i=0;i

for(j=0;j<121;j++)

{;}

}

}

//5mS定时中断服务子函数

void zd(void) interrupt 1

{

TH0=-(4800/256);

TL0=-(4800%256);

deda++;

}

//调整走时时间

void time_adj()

{

uchar m;

if(P3_5==0)delay(1);

if(P3_5==0)hour++;

if(hour==24)hour=0;

for(m=0;m<30;m++)

{

dirve();

if(P3_2==0)P2_7=0;

else P2_7=1;

delay(1);

}

if(P3_7==0)delay(1);

if(P3_7==0)min++;

if(min==60)min=0;

for(m=0;m<30;m++)

{

dirve();

if(P3_2==0)P2_7=0;

else P2_7=1;

delay(1);

}

}

//时、分、秒单元及走时单元转换

void conv()

{

if(deda<=100)d_05s=0;

else d_05s=1;

if(deda>=200){sec++;deda=0;}

if(sec==60){min++;sec=0;}

if(min==60){hour++;min=0;}

if(hour==24){hour=0;}

}

//走时时间输出驱动子函数

void dirve()

{ if((hour/10)>0)

P2=LED7Code[hour/10];

else

P2=0x00;

P3=DATA_BIT[1];

delay(1);

P2=LED7Code[hour%10];P3=DATA_BIT[2];

delay(1);

if(d_05s==1){if(P3_2==0)P2_7=0;else P2_7=1;}

delay(1);

P2=LED7Code[min/10];P3=DATA_BIT[3];

delay(1);

if(o_f==1){if(P3_1==0)P2_7=0;else P2_7=1;delay(1);}

P2=LED7Code[min%10];P3=DATA_BIT[4];

delay(1);

}

//主函数

void main()

{ int i;

init_timer(); //定时器T0初始化

while(1) //无限循环

{

if(P3_4==0)

scan_key(); //有按键,调用按键扫描子函数

switch(set)

{

case

0:time();break; //走时时间程序

case

1:time_adj(); //走时时间调整

case 8:

{

for(i=0;i<100;i++)

{

time();

}

P2=0xff;P3=0xff;delay(400);

//熄灭400mS

}

default:break;

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1274085146&asin=B0011BY8OG&sr=8-1 小型电子监探装置制作DIY 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 小型电子监探装置制作DIY 基本信息 ·出版社:科学出版社 ·页码:288 页 ·出版日期:2007年04月 ·ISBN:9787030188229 ·条形码:9787030188229 ·版本:第1版 ·装帧:平装 ·开本:16开 产品信息有问题吗?请帮我们更新产品信息。 内容简介 《小型电子监探装置制作DIY》为“图解电子创新制作”丛书之一。全书共十五章,介绍101种小型电子监探装置的制作。主要内容包括监听和录音装置、电话和数码相机的改造、隐蔽摄像及其改造、夜视设备、监听器和信号发射器、计算机监控、无线电频率扫描器、保护和反制设备、激光监探装置以及小型视控间谍机器人等。 作者简介 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 编辑推荐 《小型电子监探装置制作DIY》通过详细的步骤说明,指导读者如何在少花费资金的情况下制作出各种有趣的监探装置。   《小型电子监探装置制作DIY》可作为安防设备研发人员的参考资料,亦可作为电子爱好者的参考书。 目录 1 绪论  关于本书  真相就摆在那里 2 监听和录音  项目1 微型录音机的改造  项目2 超高声音增益的麦克风前置扩音器  项目3 仿生学立体声间谍耳  项目4 抛物线碟盘麦克风  项目5 使用计算机处理音频  项目6 过滤背景噪声  项目7 妙借身体进行录音 3 电话设备改造  项目8 电话音频接口   项目9 自动电话录音机  项目10 通过声音激活的计算机电话记录程序  项目11 超隐秘的电话监听器  项目12 电话输入/输出盒  项目13 通过计算机效果伪装声音  项目14 简单的数字声音伪装电路  项目15 终极电话声音修改器  项目16 让计算机开口讲话  项目 17 全球范围内的电话监听 4 数码相机改造  项目18 增强处理数字照片  项目19 改造数码相机的快门  项目20 手提包中暗藏的数码相机  项目21 数码相机定时拍摄快门  项目22 移动感应的数码相机快门  项目23 数码相机远程瞄准器  项目24 远程数字拍摄系统 5 摄像机和视频  项目25 视频信号基础知识  项目26 录制视频信号  项目27 改造定时录像的VcR设备  项目28 移动感应控制的自动录像机  项目29 多个摄像头的自动切换器  项目30 在计算机上处理视频  项目31 打造网络摄像头 6 隐蔽摄像  项目32 使用微型摄像头  项目33 经典的看护摄像头  项目34 伪装成烟雾警报器的夜视摄像头  项目35 隐秘的记号笔摄像头  项目36 “所见即所得”太阳镜  项目37 远程摄像头  项目38  显微镜摄像头 7 摄像头平移和旋转控制  项目39 摄像头平移和旋转遥控传动装置基座  项目40 遥控传动装置基座  项目41 手动控制的传动装置基座  项目42 微型控制器控制的传动装置基座  项目43 追踪画面移动的摄像头 8 夜视设备 9  监听器和信号发射器 10 视频信号发射器 11 计算机监控 12 无线电频率扫描器 13 保护和反制设备 14 激光监探设备 15 打造小型视控间谍机器人 ……
http://www.amazon.cn/mn/detailApp/ref=sr_1_1?_encoding=UTF8&s=books&qid=1274085146&asin=B0011BY8OG&sr=8-1 小型电子监探装置制作DIY 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 小型电子监探装置制作DIY 基本信息 ·出版社:科学出版社 ·页码:288 页 ·出版日期:2007年04月 ·ISBN:9787030188229 ·条形码:9787030188229 ·版本:第1版 ·装帧:平装 ·开本:16开 产品信息有问题吗?请帮我们更新产品信息。 内容简介 《小型电子监探装置制作DIY》为“图解电子创新制作”丛书之一。全书共十五章,介绍101种小型电子监探装置的制作。主要内容包括监听和录音装置、电话和数码相机的改造、隐蔽摄像及其改造、夜视设备、监听器和信号发射器、计算机监控、无线电频率扫描器、保护和反制设备、激光监探装置以及小型视控间谍机器人等。 作者简介 作者:(美)Brad Graham (美)Kathy McGowan 译者:黄刚 编辑推荐 《小型电子监探装置制作DIY》通过详细的步骤说明,指导读者如何在少花费资金的情况下制作出各种有趣的监探装置。   《小型电子监探装置制作DIY》可作为安防设备研发人员的参考资料,亦可作为电子爱好者的参考书。 目录 1 绪论  关于本书  真相就摆在那里 2 监听和录音  项目1 微型录音机的改造  项目2 超高声音增益的麦克风前置扩音器  项目3 仿生学立体声间谍耳  项目4 抛物线碟盘麦克风  项目5 使用计算机处理音频  项目6 过滤背景噪声  项目7 妙借身体进行录音 3 电话设备改造  项目8 电话音频接口   项目9 自动电话录音机  项目10 通过声音激活的计算机电话记录程序  项目11 超隐秘的电话监听器  项目12 电话输入/输出盒  项目13 通过计算机效果伪装声音  项目14 简单的数字声音伪装电路  项目15 终极电话声音修改器  项目16 让计算机开口讲话  项目 17 全球范围内的电话监听 4 数码相机改造  项目18 增强处理数字照片  项目19 改造数码相机的快门  项目20 手提包中暗藏的数码相机  项目21 数码相机定时拍摄快门  项目22 移动感应的数码相机快门  项目23 数码相机远程瞄准器  项目24 远程数字拍摄系统 5 摄像机和视频  项目25 视频信号基础知识  项目26 录制视频信号  项目27 改造定时录像的VcR设备  项目28 移动感应控制的自动录像机  项目29 多个摄像头的自动切换器  项目30 在计算机上处理视频  项目31 打造网络摄像头 6 隐蔽摄像  项目32 使用微型摄像头  项目33 经典的看护摄像头  项目34 伪装成烟雾警报器的夜视摄像头  项目35 隐秘的记号笔摄像头  项目36 “所见即所得”太阳镜  项目37 远程摄像头  项目38  显微镜摄像头 7 摄像头平移和旋转控制  项目39 摄像头平移和旋转遥控传动装置基座  项目40 遥控传动装置基座  项目41 手动控制的传动装置基座  项目42 微型控制器控制的传动装置基座  项目43 追踪画面移动的摄像头 8 夜视设备 9  监听器和信号发射器 10 视频信号发射器 11 计算机监控 12 无线电频率扫描器 13 保护和反制设备 14 激光监探设备 15 打造小型视控间谍机器人 ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值