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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4142|回復: 4
打印 上一主題 下一主題
收起左側

基于單片機的12864萬年歷Proteus仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
基于單片機的萬年歷
系統由單片機AT89C51、LCD12864液晶顯示屏、DS18B20和1302時鐘芯片組成
可顯示年月日,時間,溫度,星期。
仿真圖如下:


#include <reg51.h>
#include <LCD1602.C>
#include <DS18B20.C>
#include <DS1302.C>
#include <SERIAL.C>

sbit KEY=P2^6;          //定義日期和時間轉換按鍵
sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3=P3^4;
sbit KEY4=P3^5;


void delay10(void)
{
        unsigned char i,j;
        for(i=0;i<255;i++)
        for(j=0;j<200;j++);
}

unsigned char conver(unsigned char a,unsigned char b,unsigned char c)
{        

        if((a&0x0f)==0x0a) a=a+6;
          if(a==b)  a=c;
        return a;
}



main()
{        
        bit flag_1=1;
        bit flag_2=1;
        bit flag_3=1;
        bit flag_4=1;                 
        char a;           
        unsigned char j[8],choose=0x01;
        init_serialcomm();//初始化串行口

        LCD_initial();          //初始化LCD
        LCD_prints("Temperature:   C") ;         //顯示"Temperature:   C"
        while(1)
        {
            send_char_com(0x31);
                a=Read_Temperature();          //讀取DS18B20的溫度
                LCD_set_position(0xc);          //定位LCD到指定位置
                if(a<0)                                          //處理溫度正負
                {        
                                a = (-1)*a;         // 取補
                         LCD_printc(0x2D);
                 }
                 else
                {
                         LCD_printc(0x2B);
                 }
                LCD_printc(a/10+0x30);          //顯示溫度高位
                LCD_printc(a%10+0x30);          //顯示溫度低位

                LCD_set_position(0x40);
                if(KEY==0)                   //按鍵--處理時間和日期的輪換
                {
                         delay10();
                        if(KEY==1)
                        delay10();
                        flag_1=~flag_1;         
                }

                if(KEY1==0)                                  //按鍵1--處理設定時間和返回
                {
                        delay10();
                        if(KEY1==1)
                        delay10();
                        flag_2=~flag_2;         
                }

                if(KEY2==0)                                  //按鍵2--處理選擇設定時間
                {
                        delay10();
                        if(KEY2==1)
                        delay10();
                        choose++;
                        if(choose==8)
                        choose=0x01;        
                }


                if(KEY3==0)                                  //按鍵3--處理設定時間和返回
                {        delay10();
                        if(KEY3==1)
                        delay10();
                        switch(choose)
                        {
                                case 1:        j[6]++; j[6]=conver(j[6],0xa0,0x00);break;//年
                                case 2:        j[5]++; j[5]=conver(j[5],0x07,0x00);break;//周
                                case 3:        j[4]++;        j[4]=conver(j[4],0x13,0x01);break;//月
                                case 4:        j[3]++;        j[3]=conver(j[3],0x32,0x01);break;//日
                                case 5:        j[2]++;        j[2]=conver(j[2],0x24,0x00);break;//時
                                case 6:        j[1]++;        j[1]=conver(j[1],0x60,0x00);break;//分
                                case 7:        j[0]++;        j[0]=conver(j[0],0x60,0x00);break;//秒
                        }        
                }



                if(flag_2==1)
                read_serial(j);                          //讀取DS1302的時間
                else
                write_date_time(j);



                if(flag_1==1)
                {
                        LCD_prints("Time: ") ;

                        LCD_printc((j[2]>>4&0x07)+0x30); //時
                        LCD_printc((j[2]&0x0f)+0x30);
                          LCD_printc(0x3A);            //":"號

                        LCD_printc((j[1]>>4&0x07)+0x30);  //分
                        LCD_printc((j[1]&0x0f)+0x30);
                         LCD_printc(0x3A);          //":"號

                        LCD_printc((j[0]>>4&0x07)+0x30); //秒
                        LCD_printc((j[0]&0x0f)+0x30);
                        LCD_printc(0x20);          //空格
                        LCD_printc(0x20);          //空格
                }
                 else
                {         
                        LCD_prints("Date: ") ;

                        LCD_printc((j[6]>>4&0x0f)+0x30);   //年
                        LCD_printc((j[6]&0x0f)+0x30);
                        LCD_printc(0x2D);            //"-"號

                        LCD_printc((j[4]>>4&0x01)+0x30);//月
                        LCD_printc((j[4]&0x0f)+0x30);
                        LCD_printc(0x2D);          //"-"號

                        LCD_printc((j[3]>>4&0x03)+0x30);//日

                        LCD_printc((j[3]&0x0f)+0x30);
                        LCD_printc(0x2D);          //"-"號

                        LCD_printc((j[5]>>4&0x07)+0x30);  //星期
                }
        }
}

全部資料51hei下載地址:
萬年歷protues仿真 實時時鐘仿真 12864萬年歷仿真 51萬年歷設計.zip (149.93 KB, 下載次數: 128)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:724270 發表于 2020-4-8 11:25 | 只看該作者
感覺很不錯
回復

使用道具 舉報

板凳
ID:186710 發表于 2020-4-28 18:06 | 只看該作者
程序不完整,沒有1602.CDS18B20.C,DS1302.C
回復

使用道具 舉報

地板
ID:656668 發表于 2020-6-16 09:53 來自觸屏版 | 只看該作者
woaiduman1979 發表于 2020-4-28 18:06
程序不完整,沒有1602.CDS18B20.C,DS1302.C

附錄里面有的
回復

使用道具 舉報

5#
ID:656668 發表于 2020-6-16 09:54 來自觸屏版 | 只看該作者
yangmeng. 發表于 2020-4-8 11:25
感覺很不錯

讓我們一起讓51黑更精彩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品自拍一区 | h在线观看| 精品一区二区三区在线观看 | 亚洲一区二区三区四区视频 | аⅴ资源新版在线天堂 | 久久精品国产v日韩v亚洲 | 男女啪啪网址 | 日本高清中文字幕 | 97国产精品 | 亚洲色图婷婷 | 国产日韩欧美在线观看 | 国产精品欧美一区二区三区不卡 | 伊人精品久久久久77777 | 久久在线 | 国产精品美女久久久久久免费 | 亚洲自拍偷拍视频 | 欧美国产日韩精品 | 欧美成人a | 日韩视频免费看 | 欧美午夜精品理论片a级按摩 | h视频在线播放 | 国产一区二区影院 | 亚洲一区 中文字幕 | 美美女高清毛片视频免费观看 | 日韩欧美在线播放 | 亚洲伊人久久综合 | 欧美日韩电影一区二区 | 天天操天天插天天干 | 亚洲91| 美女在线观看国产 | 中文字幕在线观看第一页 | 国产精品久久久久久久久动漫 | 2019天天操 | 国产免费一区二区 | 国内精品久久久久久 | 精品国偷自产在线 | 亚洲成人一区二区 | 天天射中文 | 久久福利网站 | 日韩精品一区二 | 亚洲一区二区三区免费 |