历史上的今天
今天是:2025年08月15日(星期五)
2019年08月15日 | 单片机码表的驱动程序
2019-08-15 来源:eefocus
#include #include "./delay/delay.h" #define SEGPORT P0 sbit start = P1^0; sbit end = P1^1; sbit seg_select = P2^1; sbit bit_select = P2^0; unsigned char flag = 1; unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char TempData[8]; unsigned char shi = 0, fen = 0, miao = 0; void display() { static unsigned char i = 0; SEGPORT = 0x0; seg_select = 1; seg_select = 0; SEGPORT = 0xff; bit_select = 1; bit_select = 0; SEGPORT = TempData[i]; seg_select = 1; seg_select = 0; SEGPORT = weima[i]; bit_select = 1; bit_select = 0; i++; if(8 == i) { i = 0; } } void time0_init(void) { EA = 1; TMOD |= 0x01; TH0 = (65536 - 2000) / 256; TL0 = (65536 - 2000) % 256; ET0 = 1; TR0 = 1; } void time0_isr() interrupt 1 { static unsigned char i = 0; TH0 = (65536 - 200) / 256; TL0 = (65536 - 200) % 256; i++; if(flag) { if(50 == i) { i = 0; miao++; if(60 == miao) { miao = 0; fen++; if(60 == fen) { fen = 0; shi++; if(24 == shi) { shi = 0; } } } } } TempData[0] = duanma[shi / 10]; TempData[1] = duanma[shi % 10]; TempData[2] = 0x40; TempData[3] = duanma[fen / 10]; TempData[4] = duanma[fen % 10]; TempData[5] = 0x40; TempData[6] = duanma[miao / 10]; TempData[7] = duanma[miao % 10]; } void time1_init(void) { EA = 1; TMOD |= 0x10; TH1 = (65536 - 2000) / 256; TL1 = (65536 - 2000) % 256; ET1 = 1; TR1 = 1; } void time1_isr() interrupt 3 { TH1 = (65536 - 2000) / 256; TL1 = (65536 - 2000) % 256; display(); } void main() { time1_init(); time0_init(); while(1) { if(0 == start) { while(!start); //È¥¶¶¶¯ delay_ms(10); while(!start); if(0 == flag) { flag = 1; } else { flag = 0; } } if(0 == end) { while(!end); //È¥¶¶¶¯ delay_ms(10); while(!end); shi = 0; fen = 0; miao = 0; } } } /*****delay.c***********/ void delay_us(unsigned char t) { while(--t); } void delay_ms(unsigned char t) { while(t--) { delay_us(245); delay_us(245); } } void delay_s(unsigned char t) { while(t--) { delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); } } /****delay.h*******/ #ifndef _DELAY_H_ #define _DELAY_H_ extern void delay_us(unsigned char t); extern void delay_ms(unsigned char t); extern void delay_s(unsigned char t); #endif
上一篇:51单片机串口通信的驱动程序
下一篇:单片机之矩阵键盘的驱动程序
史海拾趣
|
石油危机使替代能源成为了热门话题。而这篇文章介绍了七种可替代石油的新能源,以及应用这七种替代能源的汽车。[[[你对哪种最感兴趣] 曾高达每加仑4美元的汽油价格使燃烧汽油成了奢侈品,寻找替代能源成了急切的任务。但哪些汽车能应用这些替代 ...… 查看全部问答> |
|
关于the golbal default build tree (WINCEROOT) has not been set问题 我先安装好vs2005,再装上Embedded CE 6.0 用vs2005建立Platform Builder for CE 6.0工程时,提示the golbal default build tree (WINCEROOT) has not been set ......。 然后我在Tools-Options-Platform Builder for CE里面重新设置 ...… 查看全部问答> |
|
最近在用51单片机和MC30I进行GPRS拨号,PPP连接过程有问题,下面是连接过程中收发的数据包: 1,GPRS-TO-51:7E FF 03 C0 21 01 03 00 7D 39 02 06 00 0A 00 00 07 02 08 02 05 06 CF 34 94 FD 03 05 C2 23 05 EA 3B 7E 2,51-TO-GPRS:7E FF ...… 查看全部问答> |
|
PDA与单片机如何进行红外通信? 使用COM3高速红外,发送数据被包裹了红外协议Irda的数据,通过COM2口Raw IR,则数据混乱,且在1200波特,未检测到发送数据,请高手指导!!… 查看全部问答> |
|
#include <REG51.h>#define c_register 7#define n_register 15#define r_register 14sbit Din = P2^1; sbit ENB = P2^2;sbit CLK = P2^3;void MC145170_Reset(void){unsigned char Bit_shift_counter; Bit_shift_counter=0;CLK=0;ENB=1;Din=0; ...… 查看全部问答> |
|
大家好: 我在操作 Multisim 的示波器时发觉画面闪得很快,不知道有没有什么方法可以让画面显示平稳一点,或是慢动作播放,谢谢。… 查看全部问答> |
|
谁能告诉我,C2000的LAUNCHPAD板子如何下载程序?如何在线调试? 谁能告诉我,C2000的LAUNCHPAD板子如何下载程序?如何在线调试?上次从论坛得了一C2000的开发板,最近论坛在宣传培训C2000板子。于是哥填了根内存条(原来是1G的),装好之后,按照大神们的资料学习。看了半天,试了半天,但不知道如何实现程序下载 ...… 查看全部问答> |
|
电能表、配电设备、电子数据采集及变频控制等应用到的IC : ADE7752 ADE7753 ADE7758 AD7874 AD7864 AD73360  ...… 查看全部问答> |




