欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機電子表可加可減可暫停 Proteus仿真程序
[打印本頁]
作者:
生宿舍
時間:
2019-12-10 17:02
標題:
單片機電子表可加可減可暫停 Proteus仿真程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
圖片 4.png
(97.1 KB, 下載次數: 18)
下載附件
2019-12-10 17:01 上傳
單片機源程序如下:
#include<reg52.h>
#define codport P0 //顯示段碼輸出口
#define sitport P2 //顯示位碼輸出口
sbit PB1=P1^0;
sbit PB2=P1^1; // second 調整定義
sbit PB3=P1^2;
sbit PB4=P1^3; //second//minite 調整定義
sbit PB5=P1^4;
sbit PB6=P1^5; //hour 調整定義
sbit PB7=P1^6; //暫停
void delay(int); // 延時子程序
void keyscan( ); // 按鍵作用
unsigned char code ledcode[] /*顯示0~9的代碼*/
={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char data hou,min,sec,num; //時分秒中斷數
unsigned char data disbuf[]={0,0,0,0,0,0};
//顯示數組,0元素為最高位
void delay(int x)
{ int i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void keyscan (void)
{
if(PB1==0) // 按鍵1 秒加
{
delay(200);
{
sec++;
if(sec==60)
{sec=0; }
}
}
if(PB2==0) // 按鍵2 秒減
{
delay(200);
{
sec--;
if(sec==-1)
{sec=59;}
}
}
if(PB3==0) // 按鍵3 分加
{
delay(200);
{
min++;
if(min==60)
{min=0; }
}
}
if(PB4==0) // 按鍵4 分減
{
delay(200);
{
min--;
if(min==-1)
{min=59; }
}
}
if(PB5==0) // 按鍵5 時加
{
delay(200);
{
hou++;
if(hou==60)
{hou=0;}
}
}
if(PB6==0) // 按鍵7 暫停
{
delay(200);
{
hou--;
if(hou==-1)
{hou=23; }
}
}
if(PB7==0) // 按鍵6 時減
{
delay(200);
{
EA=~EA;
}
}
}
void display() //顯示函數
{ unsigned int j; //j用于循環延時
unsigned char i,scan; //scan為掃描碼
scan=0x01;
for(i=0;i<6;i++)
{ sitport=0xff; //先關閉各位
codport=ledcode[disbuf[i]];
//輸出顯示數的段碼
sitport=~scan; //輸出位碼
scan=(scan<<1); //指向下一個數位
for(j=0;j<360;j++); //延時3ms
} }
void time0() interrupt 1 //定時器0中斷函數
{ TL0=55536%256; //給T0賦初值
TH0=55536/256;
num=num+1; //百分之一秒加1
if(num>99)
{ num=0; sec++; //秒加1
if(sec>59)
{ sec=0; min++; //分加1
if(min>59)
{ min=0; hou++; //時加1
if(hou>23) hou=0;
} } //把時間變量分離成要顯示的各位
disbuf[0]=hou/10; disbuf[1]=hou%10;
disbuf[2]=min/10; disbuf[3]=min%10;
disbuf[4]=sec/10; disbuf[5]=sec%10;
} }
void main() //主函數
{
TMOD=0x01; //設置T0以模式1定時
TL0=55536%256; //設置T0定時10ms初值
TH0=55536/256;
ET0=1; //開T0中斷
EA=1; //開總中斷
TR0=1; //定時器0開運行
hou=12; min=0; //時間初始化
sec=0; num=0;
while(1) //循環,并隨時處理中斷
{
display(); //調用數碼管進行掃描顯示
keyscan( ); // 按鍵掃描
} }
復制代碼
所有資料51hei提供下載:
電子表可加可減可暫停.rar
(16.96 KB, 下載次數: 24)
2019-12-10 17:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
生宿舍
時間:
2019-12-10 17:04
歡迎大家來看
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1