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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

數碼管計時器程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月16日   【字體:

這是一個51hei網友測試通過的計時器程序、電路很簡單就不畫了數碼管的段選是P0口位選是P1口

#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
code uint8 number[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xa7,0xa1,0x86,0x8e};       //數字0到F
uint16 counter = 0;                                                              //定義計數器初始化
uint8 a[6];                                                                            //六個數碼管
sbit ENLED = P1^4;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
void timer1_led()
{
 TMOD |= 0x10;                                                                    //寄存器狀態M0位置1,或運算
 TMOD &= 0xDF;
 TH1 = 0xFC;                                                                       //12*(65535-x)/11059200 =1s
 TL1 = 0x67;
 TR1 = 1;                                                                           //定時器置1打開,計數器開始計時
}
void int_init()
{
 ET1 = 1;                                                                             // 打開定時器1溢出中斷使能置1
 EA = 1;                                                                               //總閥門打開
}
 refresh_led()
{
 static uint8 j = 0;                                                                //靜態變量刷新
  switch(j)
  {
   case 0:ADDR0 = 0;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[0]];break;
   case 1:ADDR0 = 1;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[1]];break;
   case 2:ADDR0 = 0;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[2]];break;
   case 3:ADDR0 = 1;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[3]];break;
   case 4:ADDR0 = 0;ADDR1 = 0;ADDR2 = 1;j++;P0 = number[a[4]];break;
   case 5:ADDR0 = 1;ADDR1 = 0;ADDR2 = 1;j = 0;P0 = number[a[5]];break;
   default :break;
  }
}
main()
{
 ENLED = 0;ADDR3 = 1;                                                                 //138譯碼器使能
 timer1_led();                                                                                 //定時初始化
 int_init();
 while(1);
}
void interrupt_timer1() interrupt 3                                                //中斷函數
{
 static uint32 sec=0;                                                                     //定義變量
 TH1 = 0xFC;
 TL1 = 0x67;
 counter++;
if(1000==counter)                                                                     
{
 sec++;
 counter=0;
 a[0] = sec%10;                                                                         //個位數取余
 a[1] = sec/10%10;                                                                    //十位取余
 a[2] = sec/100%10;                                                                  //百位取余
 a[3] = sec/1000%10;                                                                //...............
 a[4] = sec/10000%10;
 a[5] = sec/100000%10;
}
 refresh_led();
}
             

關閉窗口

相關文章

主站蜘蛛池模板: 久久亚洲国产 | 国产1区 | 一区二区三区亚洲 | 日韩视频精品在线 | av网站在线播放 | 欧美日韩视频在线 | 日韩一区二区三区视频在线观看 | 国产成人高清成人av片在线看 | 在线观看av网站 | 爱爱免费视频 | 久久久久久久久久久爱 | 免费在线h视频 | 国产精品高清在线 | 欧美日韩一区二区在线 | 国产精品一区在线观看 | 久久狠狠 | 激情欧美日韩一区二区 | 国产精品a久久久久 | 中文字幕第一页在线 | 亚洲成人免费观看 | 成人免费看片又大又黄 | 免费在线观看av片 | 成人在线观看免费视频 | 天天射天天操天天干 | 国产精品久久久久久久久久久久 | 99久久久久久 | www国产成人| 一区二区三区国产好 | 日韩精品一区二区三区 | 超碰在线观看97 | 国产成人免费视频网站高清观看视频 | 亚洲免费人成在线视频观看 | 亚洲情综合五月天 | 欧美成人a∨高清免费观看 91伊人 | 99热热热| 日韩一二区| 91五月婷蜜桃综合 | 久久精品国产a三级三级三级 | 国产目拍亚洲精品99久久精品 | 午夜免费观看 | 色婷婷综合在线观看 |