久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機數字鐘程序Proteus仿真電路圖
[打印本頁]
作者:
yujingpiaomiao
時間:
2025-4-17 08:31
標題:
單片機數字鐘程序Proteus仿真電路圖
數字鐘仿真,程序軟·全套,第一次發帖大家多包涵
51hei.gif
(65.23 KB, 下載次數: 0)
下載附件
2025-4-18 17:30 上傳
單片機源程序如下:
//********************數字鐘程序************************
//程序:ex8-1.c
//功能:數字鐘程序
#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
//********************位名稱定義*************************
sbit naodeng=P2^0; //鬧鐘開燈亮;否則滅
sbit K1=P3^0; //切換模式(開關鬧鐘,調鬧鐘)
sbit K2=P3^2; //調時
sbit K3=P3^3; //調分
sbit beep=P2^7; //蜂鳴器
//********************函數聲明***************************
void shijian(); //計時時間顯示
void Timer0Init(); //定時器中斷初始化函數
void DigDisplay(); //LED動態顯示掃描函數
void alarm(); //鬧鈴報警處理
void tiao_nao(); //鬧鐘時間設置
void moshi(); //鬧鐘模式設置
void delay(u16 i); //軟件延時函數
//********************全局變量定義***************************
bit nao; //鬧鐘開關標志,nao=1鬧鐘開;nao=0鬧鐘關
u8 a=0; //記錄K1按下次數,第一次按下修改鬧鐘時間,第2次按下切換鬧鐘開關
u8 display[]={0,0,0,0,0,0}; //顯示緩沖區,對應六個數碼管
u8 ssec,sec,min,hour,nao_hour=0,nao_min=0; //10毫秒、秒、分、小時、鬧鐘小時、鬧鐘分鐘
//*************************延時函數****************************//
//函數名:delay
//函數功能:軟件延時
//形式參數:無符號整型變量i,0-65535
//返回值:無
void delay(u16 i)
{
while(i--);
}
//*************************定時器中斷初始化函數****************************//
//函數名:Timer0Init
//函數功能:定時器T0定時中斷,interrupt 1,開放兩個外部中斷
//形式參數:無
//返回值:無
void Timer0Init()
{
TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
EX0=1;
IT0=1; //外部中斷0采用下降沿觸發
PX0=1;
EX1=1;
IT1=0; //外部中斷1采用低電平觸發
TH0=0Xd8; //給定時器賦初值,定時10ms,12MHz晶振頻率
TL0=0Xf0;
ET0=1; //開放定時器0中斷允許
EA=1; //開放總中斷
TR0=1; //定時器開始計數
}
//**************************6位LED顯示函數**************************/
//函數名:DigDisplay
//函數功能:6位LED動態顯示,將顯示緩沖區display中的6個數依次掃描顯示一遍
//形式參數:無
//返回值:無
void DigDisplay()
{
u8 i,j,m,temp;
u8 led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//0-9的共陰極顯示碼
temp=0x01;
for(i=0;i<6;i++)
{
P1=0x00; //關顯示
j=display[i];
P1=led[j]; //P1送段碼
P0=~temp; //P0對應端口低電平選位
temp<<=1;
for(m=0;m<100;m++); //每一位顯示延時
}
}
//******************************報警函數****************************/
//函數名:alarm
//函數功能:鬧鐘時分和當前時分相同、鬧鐘功能開啟的情況下,蜂鳴器響15秒
//形式參數:無
//返回值:無
void alarm()
{
if(nao_hour==hour&&nao_min==min&&sec>=0&&sec<15&&nao==1)
{
beep=1;
delay(5);
beep=0;
delay(5);
}
}
//***********************鬧鐘時間調節**********************//
//函數名:tiao_nao
//函數功能:鬧鐘時間修改,修改小時和分鐘,K1按下結束調節
// 設置完鬧鐘時間后,自動開啟鬧鐘
//形式參數:無
//返回值:無
void tiao_nao()
{
IT0=0; //關溢出進1;否則調鬧時針后時加1;
EX1=0; //關中斷系統
EX0=0; //關中斷系統
delay(10);
while(K1) //當K1沒有按下時進行鬧鐘時間調節,當按下K1時,結束鬧鐘時間調節
{
if(K2==0) //鬧鐘小時調節
{delay(10);if(K2==0)nao_hour++;while(!K2);}
if(nao_hour>=24)nao_hour=0; //24小時后歸0
if(K3==0) //鬧鐘分鐘調節
{delay(10);if(K3==0)nao_min++;while(!K3); }
if(nao_min>=60)nao_min=0; //60分鐘后歸0
display[5]=0; //鬧鐘顯示
display[4]=0;
display[3]=nao_min%10;
display[2]=nao_min/10;
display[1]=nao_hour%10;
display[0]=nao_hour/10;
DigDisplay(); //數碼管顯示函數
}
IT0=1;
EX1=1;
EX0=1;
nao=1; //退出鬧鐘調試,自動開啟鬧鐘
}
//*************************鬧鐘功能設置***************************//
//函數名:moshi
//函數功能:按鍵K1用來控制鬧鐘功能的開啟和關閉,以及鬧鐘時間設置
// 按下進入鬧鐘時間設置,在該狀態下再次按下K1結束鬧鐘時間設置并同時開啟鬧鐘功能
// 在鬧鐘開啟或鬧鈴響期間,按下K1關閉鬧鐘功能
//形式參數:無
//返回值:無
void moshi()
{
if(K1==0)
{
delay(100);
if(K1==0)
{
a++; //記錄K1按下次數
if(a>=2)a=0;
while(!K1);
switch(a)
{
case(0):nao=~nao;break;
case(1):tiao_nao();break;
}
}
} while(!K1);
}
//***********************當前時間顯示**********************//
//函數名:shijian
//函數功能:將當前計時時間的"小時"、"分鐘"和"秒"拆分到顯示緩沖區并調用LED顯示掃描函數實現時間的顯示。
//形式參數:無
//返回值:無
void shijian()
{
display[5]=sec%10;
display[4]=sec/10;
display[3]=min%10;
display[2]=min/10;
display[1]=hour%10;
display[0]=hour/10;
DigDisplay(); //LED顯示掃描函數
}
//***********************T0中斷服務函數**********************//
//函數名:Timer0
//函數功能:每10ms中斷一次,進行10ms、秒、分、小時計數
//形式參數:無
//返回值:無
void Timer0() interrupt 1
{
TH0=0Xd8; //給定時器賦初值,定時10ms
TL0=0Xf0;
ssec++;
if(ssec>=100) //1s
{
ssec=0;
sec++;
if(sec>=60)
{
sec=0;
min++;
if(min>=60)
{
min=0;
hour++;
if(hour>=24)
{hour=0;
}
}
}
}
}
//***********************外部中斷0服務函數**********************//
//函數名:int0
//函數功能:小時調節
//形式參數:無
//返回值:無
void int0() interrupt 0
{
delay(10); //采用下降沿觸發,延時去抖
hour++;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei附件下載:
數字鐘仿真.7z
(66.56 KB, 下載次數: 0)
2025-4-18 17:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产成人91
|
欧美一区二区三区国产
|
麻豆精品国产91久久久久久
|
一区视频
|
亚洲电影成人
|
日本电影免费完整观看
|
亚洲www
|
久久成
|
精品久久香蕉国产线看观看亚洲
|
亚洲美乳中文字幕
|
国产999精品久久久久久
|
日韩精品一区二区三区在线观看
|
911网站大全在线观看
|
精品视频一区二区三区在线观看
|
国产精品久久国产精品
|
日韩欧美中文在线
|
国产精品视频一二三区
|
影音先锋成人资源
|
日韩有码一区
|
中文日韩在线视频
|
成人毛片一区二区三区
|
九色网址
|
免费网站国产
|
91在线免费观看网站
|
欧美一级α片
|
亚洲成人精选
|
国产精品99一区二区
|
日日操夜夜操天天操
|
在线视频三区
|
91精品麻豆日日躁夜夜躁
|
日韩午夜
|
91在线色视频
|
国产精品久久久久久久久久
|
一区二区三区不卡视频
|
国产成人精品久久二区二区91
|
五月综合色啪
|
精品免费视频一区二区
|
91久久北条麻妃一区二区三区
|
中文字幕免费观看
|
国产自产c区
|
精品视频一区二区
|