久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2008|回復(fù): 1
收起左側(cè)

單片機電子鐘程序如何修改為靜態(tài)顯示?6位 時分秒 74hc595 6個74HC595 D1302

[復(fù)制鏈接]
ID:475031 發(fā)表于 2020-3-20 12:58 | 顯示全部樓層 |閱讀模式
dbb44aed2e738bd4549dad5fa18b87d6277ff924.jpg

電子鐘程序 6位 時分秒 74hc595 6個74HC595 D1302 電子數(shù)碼鐘
具體見2樓
回復(fù)

使用道具 舉報

ID:475031 發(fā)表于 2020-3-20 13:02 | 顯示全部樓層
或者怎么把下面代碼改動增加實時時鐘模塊+DS1302模塊


簡單的來說,我需要靜態(tài)數(shù)碼鐘,。不需要那種動態(tài)掃描的數(shù)碼鐘


  1. #include <reg51.h>                       //包含訪問sfr庫函數(shù)reg51.h
  2. sbit  K0=P1^2;                         //定義K0為P1.2(時鐘修正標志鍵)
  3. sbit  K1=P1^1;                         //定義K1為P1.1(修正移位鍵)
  4. sbit  K2=P1^0;                         //定義K2為P1.0(修正加1鍵)
  5. sbit  OEs=P1^3;                        //定義OEs為P1.3(秒輸出控制端,0有效)
  6. sbit  OEm=P1^4;                        //定義OEm為P1.4(分輸出控制端,0有效)
  7. sbit  OEh=P1^5;                        //定義OEh為P1.5(時輸出控制端,0有效)
  8. sbit  RCK=P1^6;                        //定義RCK為P1.6(輸出鎖存控制端,上升沿有效)
  9. sbit  LED=P1^7;                        //定義LED為P1.7(秒閃爍控制端,0有效)
  10. unsigned int  ms05=0;                    //定義0.5ms計數(shù)器ms05,并清0
  11. unsigned char  h=0, m=0, s=0;             //定義時分秒計數(shù)器h、m、s,并清0
  12. unsigned char  n=0;                      //定義修正位序號n
  13. unsigned char  code  c[10]={             //定義共陽逆序字段碼數(shù)組,并賦值
  14. 0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
  15. void  disp6 ( ){                         //6位顯示子函數(shù)
  16. unsigned char  i;                      //定義序號變量i
  17. unsigned char  a[6];                   //定義時分秒數(shù)組a[6]
  18. a[5]=c[h/10]; a[4]=c[h%10];             //取出時顯示字段碼
  19. a[3]=c[m/10]; a[2]=c[m%10];            //取出分顯示字段碼
  20. a[1]=c[s/10]; a[0]=c[s%10];              //取出秒顯示字段碼
  21. for (i=0; i<6; i++){                     //6位顯示字段碼依次串行輸出
  22. SBUF=a[i];                         //串行發(fā)送一幀數(shù)據(jù)
  23. while (TI==0); TI=0;}                 //等待一幀數(shù)據(jù)串行發(fā)送完畢,完畢后TI清0
  24. RCK=0; RCK=1;}                     //595 RCK端輸入觸發(fā)正脈沖
  25. void  key ( ){                           //時鐘修正鍵處理子函數(shù)
  26. TR1=1;                              //時鐘修正鍵按下,T1運行(用于修正位閃爍)
  27. if (K1==0){                          //若移位鍵按下,則
  28. while (K1==0);                      //等待移位鍵釋放
  29. n++;                              //移位鍵釋放后,修正位序號加1
  30. if (n==3)  n=0;}                    //若序號超限,復(fù)0
  31. if (K2==0){                           //若加1鍵按下,則
  32. while (K2==0);                      //等待加1鍵釋放
  33. switch (n){                         //switch散轉(zhuǎn),根據(jù)修正位序號修正時分秒
  34. case 0: {h++;                      //時計數(shù)器加1
  35. if (h==24)  h=0; break;}          //若時計數(shù)器超限,復(fù)0,跳出加1循環(huán)
  36. case 1: {m++;                     //分計數(shù)器加1
  37. if (m==60)  m=0; break;}         //若分計數(shù)器超限,復(fù)0,跳出加1循環(huán)
  38. case 2: {s++;                      //秒計數(shù)器加1
  39. if (s==60)  s=0; break;}}         //若秒計數(shù)器超限,復(fù)0,跳出加1循環(huán)
  40. disp6 ();}}                         //刷新顯示
  41. void  main ( ){                          //主函數(shù)  
  42. TMOD=0x12;                         //置T0定時器方式2,T1定時器方式1(定時131ms)
  43. SCON=0;                            //置串口方式0
  44. TH0=TL0=0x06;                      //置T0定時0.5ms初值(fosc=6MHz)
  45. IP=0x02;                             //置T0高優(yōu)先級
  46. TR0=1;                              //T0運行
  47. IE=0x8a;                             //T0、T1開中,串行禁中
  48. P1=0xc7;                             //秒閃爍暗
  49. disp6 ();                              //595允許輸出,初始顯示0
  50. while (1) {                           //無限循環(huán)
  51. while (K0==1);                      //等待時鐘修正鍵按下
  52. if (K0==0)  key ();}}                //修正鍵按下,調(diào)用時鐘修正鍵處理子函數(shù)


  53. void  t0( )  interrupt 1{                  //T0中斷函數(shù)(0.5ms中斷)
  54. ms05++;                             //0.5ms計數(shù)器加1
  55. if (K0==1) {TR1=0;                    //若時鐘修正鍵已釋放,T1停運行
  56. OEh=0; OEm=0; OEs=0;}             //時分秒顯示停閃爍
  57. if (ms05==1000)  LED=!LED;           //0.5s到,秒閃爍亮
  58. if (ms05==2000)  {LED=!LED;          //1s到,秒閃爍暗
  59. ms05=0;                           //0.5ms計數(shù)器清0
  60. if (++s==60) {s=0;                   //秒計數(shù)器加1,滿60s,秒計數(shù)器清0
  61. if (++m==60) {m=0;                //分計數(shù)器加1,滿60m,分計數(shù)器清0
  62. if (++h==24)  h=0;}}            //時計數(shù)器加1,滿24h,時計數(shù)器清0
  63. disp6 ();}}                          //滿1s,刷新顯示


  64. void  t1( )  interrupt 3{                  //T1中斷函數(shù)(修正位閃爍中斷)
  65. switch (n) {                           //switch散轉(zhuǎn),根據(jù)修正位序號閃爍
  66. case 0: {OEh=!OEh; OEm=0; OEs=0; break;}           //時顯示閃爍
  67. case 1: {OEm=!OEm; OEh=0; OEs=0; break;}           //分顯示閃爍
  68. case 2: {OEs=!OEs; OEh=0; OEm=0; break;}}}          //秒顯示閃爍
復(fù)制代碼


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合中文字幕在线观看 | 久久久精品网站 | 久久99精品久久久久久噜噜 | 日韩欧美在线免费观看视频 | 久久伊人青青草 | 成人乱人乱一区二区三区软件 | 午夜免费成人 | 日本在线你懂的 | 欧美日韩国产中文字幕 | 精品欧美一区二区精品久久久 | 一区二区三区在线播放视频 | 色频| 在线第一页 | 国产视频中文字幕 | 一区二区三区亚洲 | www.操.com| 日韩在线观看中文字幕 | 99精品国产一区二区青青牛奶 | 日韩欧美一区二区三区免费看 | 天天射网站 | 午夜精品久久久久久久久久久久 | 欧美激情在线播放 | 亚洲经典一区 | 成年人网站免费视频 | 黄色毛片网站在线观看 | 久久99久久99精品免视看婷婷 | 国产精品免费观看 | a黄视频 | 久久伊人操| 亚洲精品电影在线 | 国产 欧美 日韩 一区 | 51ⅴ精品国产91久久久久久 | 91精品www | 亚洲网站在线观看 | 国产精品99久久久久久大便 | 欧美日韩精品一区二区三区蜜桃 | 国产主播第一页 | 欧一区| 亚洲精品一区国产精品 | 69精品久久久久久 | 国产精品久久精品 |