芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

单片机数字钟程序Proteus仿真电路单片机解密

单片机源程序如下:

  1. 单片机解密//********************数字钟程序************************
  2. 单片机解密//程序:ex8-1.c
  3. 单片机解密//功能:数字钟程序
  4. #include "reg51.h"                         
  5. typedef unsigned int u16;          
  6. typedef unsigned char u8;
  7. //********************位名称定义*************************
  8. sbit naodeng=P2^0;                //闹钟开灯亮;否则灭
  9. sbit K1=P3^0;                        //切换模式(开关闹钟,调闹钟)
  10. sbit K2=P3^2;                        //调时
  11. sbit K3=P3^3;                        //调分
  12. sbit beep=P2^7;                        //蜂鸣器
  13. //********************函数声明***************************
  14. void shijian();                         //计时时间显示
  15. void Timer0Init();       //定时器中断初始化函数
  16. void DigDisplay();       //LED动态显示扫描函数
  17. void alarm();            //闹铃报警处理
  18. void tiao_nao();         //闹钟时间设置
  19. void moshi();            //闹钟模式设置
  20. void delay(u16 i);       //软件延时函数
  21. //********************全局变量定义***************************
  22. bit nao;                        //闹钟开关标志,nao=1闹钟开;nao=0闹钟关
  23. u8 a=0;                 //记录K1按下次数,第一次按下修改闹钟时间,第2次按下切换闹钟开关
  24. u8 display[]={0,0,0,0,0,0};           //显示缓冲区,对应六个数码管
  25. u8 ssec,sec,min,hour,nao_hour=0,nao_min=0;        //10毫秒、秒、分、小时、闹钟小时、闹钟分钟
  26. //*************************延时函数****************************//   
  27. //函数名:delay
  28. //函数功能:软件延时
  29. //形式参数:无符号整型变量i,0-65535
  30. //返回值:无
  31. void delay(u16 i)
  32. {
  33.         while(i--);       
  34. }
  35. //*************************定时器中断初始化函数****************************//   
  36. //函数名:Timer0Init
  37. //函数功能:定时器T0定时中断,interrupt 1,开放两个外部中断
  38. //形式参数:无
  39. //返回值:无
  40. void Timer0Init()
  41. {
  42.         TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
  43.         EX0=1;
  44.         IT0=1;      //外部中断0采用下降沿触发
  45.         PX0=1;
  46.         EX1=1;
  47.         IT1=0;            //外部中断1采用低电平触发
  48.         TH0=0Xd8;        //给定时器赋初值,定时10ms,12MHz晶振频率
  49.         TL0=0Xf0;       
  50.         ET0=1;      //开放定时器0中断允许
  51.         EA=1;       //开放总中断
  52.         TR0=1;      //定时器开始计数                       
  53. }

  54. //**************************6位LED显示函数**************************/
  55. //函数名:DigDisplay
  56. //函数功能:6位LED动态显示,将显示缓冲区display中的6个数依次扫描显示一遍
  57. //形式参数:无
  58. //返回值:无
  59. void DigDisplay()
  60. {
  61.   u8  i,j,m,temp;
  62.   u8  led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  63.                                                                 //0-9的共阴极显示码
  64.      temp=0x01;
  65.      for(i=0;i<6;i++)
  66.          {
  67.            P1=0x00;                               //关显示
  68.            j=display[i];
  69.              P1=led[j];                             //P1送段码
  70.              P0=~temp;                             //P0对应端口低电平选位
  71.        temp<<=1;
  72.        for(m=0;m<100;m++);          //每一位显示延时
  73.        }
  74. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信