日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机简易时钟开发(protues)

發(fā)布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机简易时钟开发(protues) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C51單片機簡易時鐘設計,顯示分秒時,手動時、分進位,自動進位。

#include<reg51.h> typedef unsigned int u16; typedef unsigned char u8; unsigned char code smgduan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char Time; void DigDisplay(); void delay(u16 i); void Timer0Cofig(void); u8 m=55,f=59,s=23; sbit K2=P1^2; sbit K1=P1^1; void main(void) { P2=0X00;P1=0XFF;Timer0Cofig();while(1){if(!K1){delay(10);if(!K1)f++;while(!K1); }if(!K2){delay(10);if(!K2)s++;while(!K2); }if(m==60) //秒進位{m=0;f++;}if(f==60) //分鐘進位{f=0;s++;}if(s==24) //小時進位{s=0;m=0;} DigDisplay();} } void delay(u16 i) {while(i--); } void DigDisplay() //顯示秒分時函數 {u16 i,i1; //顯示秒i=m%10;i1=(m/10)%10;P2=0X80;P0=smgduan[i];delay(1); P2=0X40;P0=smgduan[i1];delay(1); P2=0X20; P0=0xBF;delay(1); //顯示分鐘i=f%10;i1=(f/10)%10;P2=0X10;P0=smgduan[i];delay(1); P2=0X08;P0=smgduan[i1];delay(1); P2=0X04; P0=0xBF;delay(1);//顯示小時i=s%10;i1=(s/10)%10;P2=0X02;P0=smgduan[i];delay(1); P2=0X01;P0=smgduan[i1];delay(1);delay(80); } void Timer0Cofig(void) {TMOD = 0x01; //定時器0選擇工作方式1TH0 = 0x3C; //設置初始值,定時50MSTL0 = 0xB0; EA = 1; //打開總中斷ET0 = 1; //打開定時器0中斷TR0 = 1; //啟動定時器0 } void Timer0() interrupt 1 {TH0 = 0x3C; //設置初始值TL0 = 0xB0;Time++;if(Time == 20){m++;Time = 0;} }

protues仿真示例圖:

視頻示例:

單片機時鐘示例

總結

以上是生活随笔為你收集整理的单片机简易时钟开发(protues)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。