历史上的今天
今天是:2024年11月28日(星期四)
2019年11月28日 | 51单片机定时器程序超简单实现数码管24小时时钟显示
2019-11-28 来源:51hei
用74hc573实现数码管24小时时钟显示,对于74hc573芯片如果不了解可以看看文件里面的手册,不多说先上代码
/*以下程序是根据74hc573芯片的锁存器
**原理来写的
**若有不懂的地方可以看看文件夹的芯片
**手册或者百度*/
#include typedef unsigned char u8; typedef unsigned int u16; //串口定义没什么好说的 sbit LSA = P2^2; sbit LSB = P2^3; sbit LSC = P2^4; u8 code mabiao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~f的码表,不过这里我们就用0~9 /*时 分 初值定义*/ u16 sex = 0,s = 56,min = 59,h = 23;//sex中断进入次数控制变量,s,min,h是秒,分,时。 u8 shu[8]; //控制扫描数组得到码表值 void Int0(){ TMOD |= 0x01; //定时器方式1 TH0 = 0xFC; //1ms定时 TL0 = 0x18; TR0 = 1; ET0 = 1; EA = 1; } void delay10us(u16 i) //10us延时 { while(i--); } void shaomiao(){ //数码管扫描 u8 i; for(i = 0;i <8;i++){ switch(i){ case 0: LSA = 0; LSB = 0; LSC = 0; break; case 1: LSA = 1; LSB = 0; LSC = 0; break; case 2: LSA = 0; LSB = 1; LSC = 0; break; case 3: LSA = 1; LSB = 1; LSC = 0; break; case 4: LSA = 0; LSB = 0; LSC = 1; break; case 5: LSA = 1; LSB = 0; LSC = 1; break; case 6: LSA = 0; LSB = 1; LSC = 1; break; case 7: LSA = 1; LSB = 1; LSC = 1; break; } if(i == 2||i==5){ //这句主要控制如时间:14-12-56(14点12分56秒)中间的“-” P0 = 0x40; delay10us(1); P0 = 0x00; } else if(i != 2||i!=5){ //扫描使数码管得值 P0 = mabiao[shu[i]]; delay10us(1); P0 = 0x00; } } } void main(){ Int0(); while(1){ shaomiao(); } } void TimeInt0() interrupt 1{ TH0 = 0xfc; TL0 = 0x18; sex++; if(sex == 1000){ // 中断1000次即1s sex = 0; s++; if(s == 60){ //60s到了归零 s = 0; min++; } } if(min == 60){ //60min到了归零 min = 0; h++; if(h == 24) //24h到了归零(24小时格式) h = 0; } shu[0] = s % 10; //秒的计算 shu[1] = s / 10; shu[3] = min % 10; //分的计算 shu[4] = min / 10; shu[6] = h % 10; //小时的计算 shu[7] = h / 10; }
史海拾趣
|
大家好!我早上收到的东西,打开包装,接通电源,切换开关打到NOR FLASH一端,然后开机启动,白屏一下就黑屏了。关机,开关打到NAND FLASH一端,再开机,白屏,没反应。。 我按照说明书上的操作,调出超级终端,接收到的数据和说明书上 ...… 查看全部问答> |
|
我的手机是200万象素的,照相摄影的时候分辨率还是蛮好的。。 但是摄像的时候,分辨率只有120×160了,郁闷啊。。 我是用Directshow来采集数据的。。。 枚举视频格式的代码如下:hr = m_pCaptureBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, ...… 查看全部问答> |
|
我用ATL开发了ActiveX控件,直接在模拟器运行 class ATL_NO_VTABLE CMainObject : public CComObjectRootEx, public CComCoClass, public IDispatchImp ...… 查看全部问答> |
|
...input a;output b;reg b;always @ (a)if(a)b=1\'b1;elseb=1\'b0;------------------------------------------------------------...input a;output b;assign b= a ? 1\'b1 : 1\'b0; 两段代码书写方法不一样。综合结果都是一个选择器。 ...… 查看全部问答> |
|
#include #include #define uchar unsigned char #define uint unsigned int sbit sda=P2^1; sbit scl=P2^2; void delay(void) { _nop_( ...… 查看全部问答> |




