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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2059|回復: 0
收起左側

單片機+DS12887+數碼管顯示程序

[復制鏈接]
ID:977804 發表于 2021-12-21 09:21 | 顯示全部樓層 |閱讀模式
幫一個朋友做程序,也是學習吧。哈哈,直接上代碼,驅動部分也是在51HEI學習的。
制作出來的實物圖如下:
6f1e449bf69ad0369b0c765ef409eea.jpg

單片機源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int


  4. sfr  P4         =   0xc0;       //I/O端口4              Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
  5.                                 //位描述                P4.7    P4.6    P4.5    P4.4    P4.3    P4.2    P4.1    P4.0
  6.                                 //初始值=1111,1111      1       1       1       1       1       1       1       1

  7. sbit P47        =   P4^7;       //I/O口P4.7
  8. sbit P46        =   P4^6;       //I/O口P4.6
  9. sbit P45        =   P4^5;       //I/O口P4.5
  10. sbit P44        =   P4^4;       //I/O口P4.4
  11. sbit P43        =   P4^3;       //I/O口P4.3
  12. sbit P42        =   P4^2;       //I/O口P4.2
  13. sbit P41        =   P4^1;       //I/O口P4.1
  14. sbit P40        =   P4^0;       //I/O口P4.0

  15. sbit RST        =   P4^7;       //復位腳,可通過編程器設置
  16. sbit EX_LVD     =   P4^6;       //外部低壓檢測引腳

  17. sbit P4SPISCLK  =   P4^3;       //SPI總線的時鐘腳
  18. sbit P4SPIMISO  =   P4^2;       //SPI總線的主出從入腳
  19. sbit P4SPIMOSI  =   P4^1;       //SPI總線的主入從出腳
  20. sbit P4SPISS    =   P4^0;       //SPI總線的從機選擇腳

  21. sbit P4CEX1     =   P4^3;       //比較/捕獲/PWM1外部引腳
  22. sbit P4CEX0     =   P4^2;       //比較/捕獲/PWM0外部引腳
  23. sbit P4ECI      =   P4^1;       //比較/捕獲/PWM模塊的外部時鐘輸入腳(最大值為Fosc/2)

  24. sbit P4TXD2     =   P4^3;       //串口2數據輸出腳
  25. sbit P4RXD2     =   P4^2;       //串口2數據輸入腳

  26. sfr  P4SW       =   0xbb;       //P4口的功能開關        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
  27.                                 //位描述                -    LVD_P4.6 ALE_P4.5 NA_P4.4  -       -       -       -
  28.                                 //初始值=x000,xxxx      x       0       0       0       x       x       x       x

  29. #define P46EN       0x40        //傳統的EA腳 0:為LVD的信號引入腳 1:為P4.6
  30. #define P45EN       0x20        //傳統的ALE腳 0:仍為ALE 1:為P4.5
  31. #define P44EN       0x10        //傳統的PSEN腳 0:無任何功能 1:為P4.4


  32. sbit P2_0 = P2^0;
  33. sbit P2_1 = P2^1;
  34. sbit P2_2 = P2^2;
  35. sbit P2_3 = P2^3;

  36. #define Ds_Bus P0
  37. #define smgp1 P1
  38. sbit DS_CS = P2^6;
  39. sbit DS_AS = P4^5;
  40. sbit DS_RW = P3^6;
  41. sbit DS_DS = P3^7;


  42. uchar count,shi,fen,miao,s1num,week=0,i,day=1,yue=1,year1=0,year2,year3,year4;
  43. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
  44.                         0xf8,0x80,0x90};
  45. void delay(uchar i)
  46. {
  47.   uchar j,k;
  48.   for(j=i;j>0;j--)
  49.     for(k=125;k>0;k--);
  50. }

  51. //往DS12CR887寫數據函數,add=地址,date=數據。

  52. void ds_write(uchar add,uchar date)         
  53. {
  54.         DS_CS=0; DS_DS=1; DS_RW=1; DS_AS=1;
  55.         Ds_Bus=add;
  56.          DS_AS=0; DS_RW=0;
  57.         Ds_Bus=date;
  58.         DS_RW=1; DS_AS=1; DS_CS=1;
  59. }
  60. //讀取DS12CR887的數據函數
  61. uchar ds_read(uchar add)
  62. {
  63.         uchar z;
  64.         DS_AS=1; DS_DS=1;DS_RW=1;DS_CS=0;
  65.         Ds_Bus=add;
  66.         DS_AS=0;         DS_DS=0;
  67.    Ds_Bus=0xff;
  68.         z=Ds_Bus;
  69.         DS_DS=1; DS_AS=1; DS_CS=1;
  70.         return z;
  71. }
  72. //DS12CR887初始化函數
  73. void ds_int()
  74. {
  75.         DS_AS=0; DS_DS=0; DS_RW=0;
  76.         ds_write(0x0a,0x20);//DS12CR887寄存器A功能設置,開啟時鐘振蕩器
  77.         ds_write(0x0b,0x06);//寄存器B功能設置,不開啟鬧鐘中斷使能,數據模式為二進制,24小時模式。
  78. }

  79. void display()
  80. {
  81. // P1=(table[minute%10]& 0x7f); //加0X7F,是一個小數點
  82.            miao=ds_read(0);                         //讀取DS12CR887的秒
  83.         //write1632GDRAM(7,2,num1632[sec/10]);
  84. //        write1632GDRAM(8,2,num1632[sec%10]);

  85. // miao=ds_read(0);
  86.    smgp1=(table[miao/10]);
  87.    P2_0 = 0;
  88.    delay(5);
  89.    P2_0 = 1;

  90.    smgp1=(table[miao%10]& 0x7f);
  91.    P2_1 = 0;
  92.    delay(5);
  93.    P2_1 = 1;

  94.    fen=ds_read(2);

  95.    smgp1=table[fen/10];
  96.    P2_2 = 0;
  97.    delay(5);
  98.    P2_2 = 1;

  99.     smgp1=table[fen%10];
  100.    P2_3 = 0;
  101.    delay(5);
  102.    P2_3 = 1;
  103.    
  104. }

  105. /*演示主程序*/
  106. void main(void)
  107. {
  108.     unsigned int  a;
  109.    
  110.         ds_int();                        //時鐘芯片初始化
  111. while(1)
  112. {

  113.    for(a=100;a>0;a--)
  114.    {
  115.      display();
  116.    }

  117. }
  118. }
復制代碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 毛片一级电影 | 国产99久久久国产精品 | 日韩欧美中文字幕在线视频 | 91日b| 久草新视频 | 中文字字幕在线中文乱码范文 | 一区二区三区国产好的精 | 黄色一级大片在线观看 | 97精品超碰一区二区三区 | 欧美簧片 | 中文字幕av网 | 久久综合久 | 久久国内精品 | 久久国产精品久久 | 狠狠综合久久av一区二区小说 | 午夜视频在线免费观看 | 农村真人裸体丰满少妇毛片 | 中文字幕在线播放第一页 | 日韩在线欧美 | 精品久久久久久久久久久久 | 美女视频黄的免费 | 日韩国产一区 | 欧美黄页 | 91传媒在线观看 | 一区精品视频在线观看 | 黄色在线观看网址 | 久久精品国产亚洲a | 综合久久综合久久 | 日本色高清| 亚洲精品第一页 | 国产精品久久久久久婷婷天堂 | 黄色视频a级毛片 | 中文字幕成人av | 久久久久久www | 日日夜夜精品免费视频 | 99这里只有精品视频 | 91一区二区三区 | 欧美大片在线观看 | 国产精品爱久久久久久久 | 天堂av免费观看 | 国产成人精品一区 |