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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2447|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stc15單片機(jī)按鍵循環(huán)顯示源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:298970 發(fā)表于 2018-3-29 17:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)源程序如下:
  1. #include<stc15f2k60s2.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. uint i;
  5. uint ss_data=0;
  6. uint SS=0;
  7. uchar num=0;
  8. uchar code tab[]={0xc0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0Xc6,0Xa1,0X86,0X8e};//ROM
  9. void delayms(int ms);
  10. void keyscan16();
  11. void Timer0Init(void);
  12. void main()
  13. {
  14. Timer0Init();
  15. EA=1;
  16. P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;  //板子初始化程序 ,以后講
  17. P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;  //數(shù)碼管初始化程序,以后講

  18.   P0=tab[0];
  19. while(1)
  20. {
  21.   keyscan16();
  22. }
  23. }
  24. void keyscan16()
  25. {
  26. uchar temp;

  27. P44=0;P42=1;P3=0X7F;
  28. temp=P3;
  29. temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101
  30. if(temp!=0x0f)
  31. {
  32.   delayms(5);
  33.   temp=P3;
  34.   temp=temp&0X0F;
  35.   if(temp!=0x0f)
  36.   {
  37.    temp=P3;
  38.    ET0=1;
  39.    switch(temp)
  40.    {
  41.     case 0x7e: ss_data=800;break;
  42.     case 0x7d: ss_data=400;break;
  43.     case 0x7b: ss_data=200;break;
  44.     case 0x77: ss_data=100;break;
  45.    }
  46.    while(temp!=0x0f)
  47.    {
  48.     temp=P3;
  49.     temp=temp&0X0F;
  50.    }
  51.   }
  52. }
  53. P44=1;P42=0;P3=0XBF;//1011 111
  54. temp=P3;
  55. temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101
  56. if(temp!=0x0f)
  57. {
  58.   delayms(5);
  59.   temp=P3;
  60.   temp=temp&0X0F;
  61.   if(temp!=0x0f)
  62.   {
  63.    temp=P3;
  64.    switch(temp)
  65.    {
  66.     case 0xBe: P0=tab[0];break;//1111 1110 P37----p30
  67.     case 0xBd: P0=tab[5];break;//1111 1101
  68.     case 0xBb: P0=tab[6];break;
  69.     case 0xB7: P0=tab[7];break;
  70.    }
  71.    while(temp!=0x0f)
  72.    {
  73.     temp=P3;
  74.     temp=temp&0X0F;
  75.    }
  76.   }
  77. }

  78. P3=0XDF;P44=1;P42=1;//1101 1111
  79. temp=P3;
  80. temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101
  81. if(temp!=0x0f)
  82. {
  83.   delayms(5);
  84.   temp=P3;
  85.   temp=temp&0X0F;
  86.   if(temp!=0x0f)
  87.   {
  88.    temp=P3;
  89.    switch(temp)
  90.    {
  91.     case 0xDe: P0=tab[8];break;//1111 1110 P37----p30
  92.     case 0xDd: P0=tab[9];break;//1111 1101
  93.     case 0xDb: P0=tab[10];break;
  94.     case 0xD7: P0=tab[11];break;
  95.    }
  96.    while(temp!=0x0f)
  97.    {
  98.     temp=P3;
  99.     temp=temp&0X0F;
  100.    }
  101.   }
  102. }

  103. P3=0XEF;P44=1;P42=1;//1101 1111
  104. temp=P3;
  105. temp=temp&0X0F;//1111 1101 & 0000 1111 = 0000 1101
  106. if(temp!=0x0f)
  107. {
  108.   delayms(5);
  109.   temp=P3;
  110.   temp=temp&0X0F;
  111.   if(temp!=0x0f)
  112.   {
  113.    temp=P3;
  114.    switch(temp)
  115.    {
  116.     case 0xEe: P0=tab[0];break;//1111 1110 P37----p30
  117.     case 0xEd: P0=tab[2];break;//1111 1101
  118.     case 0xEb: P0=tab[4];break;
  119.     case 0xE7: P0=tab[6];break;
  120.    }
  121.    while(temp!=0x0f)
  122.    {
  123.     temp=P3;
  124.     temp=temp&0X0F;
  125.    }
  126.   }
  127. }
  128. }
  129. void Timer0Init(void)  //5毫秒@11.0592MHz
  130. {
  131. // AUXR |= 0x80;  //定時(shí)器時(shí)鐘1T模式    AUXR =AUXR|0x80;   0010 1010  | 1000 0000 = 1010 1010
  132. // TMOD &= 0xF0;  //設(shè)置定時(shí)器模式   // TMOD = TMOD&0xF0;   1010 1010 & 1111 0000 = 1010 0000
  133. AUXR=0X80;
  134. TMOD=0XF0;//11.0592MHz  55296  5MS   65536-55296=10240                  
  135. TL0 = 0x00;  //設(shè)置定時(shí)初值   
  136. TH0 = 0x28;  //設(shè)置定時(shí)初值
  137. TF0 = 0;  //清除TF0標(biāo)志
  138. TR0 = 1;  //定時(shí)器0開(kāi)始計(jì)時(shí)
  139. }
  140. void time0(void) interrupt 1
  141. {
  142. SS=SS+1;
  143. if(SS==ss_data)
  144. {
  145.   SS=0;
  146.   P0=tab[num];
  147.   num++;
  148.   if(num==16)num=0;
  149. }
  150. }
  151. void delayms(int ms)
  152. {
  153. int i,j;
  154. for(i=ms;i>0;i--)
  155.   for(j=845;j>0;j--);
  156. }
復(fù)制代碼



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:46065 發(fā)表于 2018-3-29 22:06 | 只看該作者
學(xué)習(xí)了,謝謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠操电影 | 国产高清精品一区二区三区 | 天堂精品视频 | 91久久久精品国产一区二区蜜臀 | 亚洲免费观看 | 性色av网站 | 天天干b| 大吊一区二区 | 黄色片在线看 | 91精品国产乱码久久蜜臀 | 精品亚洲永久免费精品 | 日韩欧美在线免费观看 | 欧美在线二区 | 亚洲精品大全 | 电影91久久久 | 亚洲午夜精品视频 | 中文字幕日韩欧美一区二区三区 | 国产一区二区三区免费 | 男人的天堂久久 | 中文字幕99 | 成年人在线观看视频 | 亚洲视频免费在线 | 中文字幕av一区二区三区 | 亚洲天堂久久新 | 国产成人99久久亚洲综合精品 | 中文字幕 欧美 日韩 | 国产精品一区二区三区在线 | 狠狠干av| 国产传媒在线观看 | 久久精品国产一区二区三区不卡 | 国产乱码精品1区2区3区 | 欧美综合一区二区三区 | 亚洲风情在线观看 | 香蕉视频在线播放 | 一级在线视频 | 婷婷久久网 | 欧美激情国产日韩精品一区18 | 中文字幕第十页 | 亚洲视频免费 | 亚洲精品久久久久久首妖 | 国产91丝袜在线播放 |