历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2018年01月07日 | 计数测试数码管显示程序

2018-01-07 来源:eefocus

计数测试数码管显示程序

#include //6.000MHz 
#define uchar unsigned char 
#define uint unsigned int 
#define L 0 
#define R 1

uchar SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66, 
                0x6d,0x7d,0x07,0x7f,0x6f};/*0~9的数码管段码*/ 
#define reset() {WDT=0x1e;WDT=0xe1;} 
uchar act[2]={0xf3,0xfc};//数码管位码 
/***************************************************************/ 
uchar time_cnt; 
uchar dEDA=0;       ///*100mS计数单元清零*/  
sfr WDT=0xa6; 

/**************端口定义***********/ 
sbit INPUT=P3^2; 
sbit RL1=P1^7; 
sbit RL2=P1^6; 
sbit LED1=P1^2; 
sbit LED2=P1^3; 
sbit BZ1=P1^4; 
sbit BZ2=P1^5; 
/***************************/ 
bit LR; 
bit ERR; 
/***********************/ 
/*定时器T0初始化*/ 
void init_timer0() 

TMOD=0x11; 
TH0=-(50235/256);//100mS定时初值 
TL0=-(50235%256); 


/*定时器T1初始化*/ 
void init_timer1() 

TH1=-(2000/256);//4mS定时初值 
TL1=-(2000%256); 
TR1=1; 


//************初始化*********** 
void init(void) 
{    P0=0;P1=0xff;P2=0xff;P3=0xff; 
    reset() 
    init_timer0();           
    init_timer1();           
    ET0=1;ET1=1;EX1=1; 
    TR1=1;IT1=1; 
    EA=1;     



/*************延时子函数*************/ 
void delay(uint k) 

uint i,j; 
for(i=0;ifor(j=0;j<60;j++) 
{;}reset()} 


/*100mS定时中断服务子函数*/ 
void time_zd0(void) interrupt 1 using 1 

TH0=-(50235/256); 
TL0=-(50235%256); 
if(!INPUT)deda++; 
time_cnt++; 
    if(time_cnt==15)// 当 time_cnt==20 , 开始测试 
        { TR0=0; 
        if((deda>2)&&(deda<11))// 先检测开锁脉冲 
                {RL1=1;RL2=1;// 正常 
                delay(90); 
                BZ1=1;BZ2=1;RL1=1;RL2=0; 
                deda=0;ERR=0; 
                TR0=1;//deda=0;LR=R; 
                } 
                else ERR=1;// 否则有错 
        } 
//============================================= 
if(time_cnt==30)// 当time_cnt==20 , 开始测试 
        {TR0=0; 
        if((deda>2)&&(deda<11))// 再检测闭锁脉冲 
                {RL1=1;RL2=1;// 正常 
                BZ1=1;BZ2=1;RL1=1;RL2=1; 
                TR0=0; 
                EX1=1;} 
                else ERR=1;// 否则有错 
        } 



/**************************/ 
/*4mS定时中断服务子函数,扫描刷新两位数码管*/ 
void time_zd1(void) interrupt 3 using 3 

    TH1=-(2000/256); 
    TL1=-(2000%256); 
    LR=!LR; 
    if(LR==L) 
    {P0=SEG7[deda/10]|0x80; 
    P2=act[1];} 
    else 
    {P0=SEG7[deda%10]; 
    P2=act[0];} 


/******************主函数*****************/ 
void main() 
{    init(); 
    while(1) 
{    reset() 
    if(time_cnt<=15) 
    {    if(!INPUT) 
        {LED1=0;LED2=1;} 
         else  
          {LED1=1;LED2=1;} 
    } 
    else 
    {    if(!INPUT) 
        {LED1=1;LED2=0;} 
         else  
          {LED1=1;LED2=1;} 
    } 
    //============================================ 
    if(ERR) 
    {BZ1=0;BZ2=0;TR0=0;} 


/**********************************************************/ 

void extern_zd1(void) interrupt 2 using 2//测试启动 
{    delay(10); 
    if(!P3_3) 
    {BZ1=0;BZ2=0; 
    delay(200); 
    LR=L;ERR=0; 
    BZ1=1;BZ2=1; 
    deda=0; 
    time_cnt=0; 
    EX1=0;TR0=1; 
    RL1=0;RL2=1; 
    } 


推荐阅读

史海拾趣

Desco Tools公司的发展小趣事

Desco Tools公司一直注重客户服务和品质保障。公司建立了完善的客户服务体系,为客户提供全方位的技术支持和解决方案。同时,公司还建立了严格的质量管理体系,确保每一件产品都符合高标准的质量要求。这些举措赢得了客户的信任和好评,也为公司的长期发展提供了有力保障。

Exar [Exar Corporation]公司的发展小趣事

Exar公司一直注重全球布局和客户支持。公司在全球设立了多个研发基地和客户服务中心,以确保能够为客户提供及时、高效的技术支持和服务。此外,Exar还积极与全球各地的合作伙伴建立合作关系,共同推动电子行业的发展和进步。这种全球化的战略布局不仅为Exar赢得了更多的市场份额和客户信任,也为其未来的发展奠定了坚实的基础。

以上五个故事简要概述了Exar在电子行业中的重要发展历程。通过这些故事,我们可以看到Exar如何通过不断的技术创新、市场拓展和全球化战略来保持其在行业中的领先地位。

AMI Semiconductor公司的发展小趣事

Exar公司自1971年在加利福尼亚州成立以来,最初以生产高性能、高可靠性的线性集成电路而著名。然而,随着技术的进步和市场的变化,Exar逐渐意识到通信领域的巨大潜力。因此,在1980年代初,公司开始专注于串行通信和数据存储解决方案,包括UARTs(通用异步收发器)和存储器ICs。这一转变不仅扩大了Exar的市场覆盖范围,也为其后续的发展奠定了坚实的基础。

Elite公司的发展小趣事

随着公司规模的不断扩大和市场的不断拓展,Elite开始实施全球化战略。公司积极开拓国际市场,与全球知名企业建立合作关系,共同推动行业发展。同时,Elite还注重品牌塑造和企业文化建设,通过举办各类公益活动、提升员工福利待遇等方式,增强企业凝聚力和社会影响力。

ERA Transformers公司的发展小趣事

随着市场需求的不断增长,ERA Transformers公司面临着扩大生产规模的挑战。为了满足客户需求并保持市场竞争力,公司决定投资建设一个新的生产基地。经过精心规划和筹备,新的生产基地顺利建成并投入使用。这不仅大大提高了公司的生产能力,还进一步提升了产品质量和生产效率。新基地的建成标志着ERA Transformers公司在电子行业中的地位更加稳固。

CINTERION公司的发展小趣事

CINTERION的前身可追溯到西门子于1995年创建的无线模块业务。在成立之初,该公司便专注于工业用机器对机器(M2M)无线通信模块的研发与生产。随着技术的不断进步,CINTERION逐渐在行业内崭露头角,其产品在智能电网、汽车、公用事业等领域得到了广泛应用。1996年,CINTERION成功推出了全球第一款蜂窝模组,这一创新为公司在无线通信模组市场打下了坚实的基础。

问答坊 | AI 解惑

电子工程师必备手册(三)—EMIEMC设计秘籍

电子工程师必备手册(三)—EMIEMC设计秘籍…

查看全部问答>

一年java程序员转行嵌入式linux,征求意见?

小弟,我做java开发工作一年多了,现在想去培训然后转行嵌入式linux,现在正在犹豫,望各位高手能给点建议? 我补充以下,不对的地方望指正。我本人主要从事j2ee开发,主要是觉得java的新技术更新太频繁了,而嵌入式是基于地层的,变动会少一点, ...…

查看全部问答>

基于FPGA的电子稳像平台的研究

摘要: 分析了传统电子稳像平台的缺陷,研究并设计了基于FPGA的专用平台。针对该平台研制过程中所涉及的一些关键问题进行了详尽的分析与探讨,给出了可行的解决办法。实验结果表明该平台工作稳定,扩展性好。 关键词: 视频处理 电子稳像 FPGA ...…

查看全部问答>

转载:5年单片机学习总结

人的一生是一个不断学习、不断成长的过程。转眼间,研究生的学习生涯结束了,走上新的工作岗位。回头看看,发现自己不知不觉已经走过了五年的单片机 学习之旅。 在2003年最初接触单片机 的时候,在我心中觉得51就是单片机 ,单片机 就是51,根 ...…

查看全部问答>

终于要走了

终于提交了辞职报告, 哈哈, 散分。 …

查看全部问答>

stm32f读RTC的问题:

u32 RTC_GetCounter(void){  u16 tmp = 0;  tmp = RTC->CNTL;  *****************  return (((u32)RTC->CNTH << 16 ) | tmp)& ...…

查看全部问答>

如何驱动L297?

本人初学者,不知道L297的驱动方法,并用此驱动L298。谁能说明下,给个代码解释下就更好了,谢谢 [ 本帖最后由 wwwwwsltt 于 2011-4-16 15:35 编辑 ]…

查看全部问答>

查看计算机是否虚拟化的软件

昨天在win7 32位系统上安装ubuntu64位系统,提示没有cpu虚拟化,现已搞定,需要的软件奉献给大家: 1.使用软件查看电脑是否cpu虚拟化:leomoon-cpu-v 2、没有虚拟化进入bios菜单,进行虚拟化。 怎么不能添加附件和图片? [ 本帖最后由 machinnne ...…

查看全部问答>

【allegro】做封装哪些文件是有用的

如图,做一个封装冒出来这么多的文件,哪些是需要的啊??? …

查看全部问答>

MSP430-FLASH信息区学习心得

2.void flash_clr(int *ptr)3.{4. _DINT(); //关中断5. FCTL3 = 0x0A500; //* Lock = 0 开锁6. FCTL1 = 0x0A502; //* Erase = 1 使能擦除7. *((int *) ptr) = 0; //* 擦除段8.}9.10.FLASH存储器可以按字节写入,也可以按字写入。11. // 字节写入12. ...…

查看全部问答>