標(biāo)題: 我怎么仿真不出來,大家來看看 [打印本頁]
作者: 五十度灰 時(shí)間: 2018-3-26 09:15
標(biāo)題: 我怎么仿真不出來,大家來看看
#include<reg52.h> //52 系列單片機(jī)頭文件
#define uchar unsignedchar //宏定義
#define uint unsigned int
sbit key1=P3^4; //申明四個(gè)按鍵的鎖存端
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
uchar code table[]={ //含有 0~9 的數(shù)字?jǐn)?shù)組
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7c,0x07,
0x7f,0x67};
uchar code table2[]={ //含有 0~9 的數(shù)字?jǐn)?shù)組(帶小數(shù)點(diǎn))
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfc,0x87,
0xff,0xe7};
void delayms(uint); //聲明延時(shí)函數(shù)
voiddisplay(uchar,uchar,uchar); //聲明顯示函數(shù)
void keyscan(); //聲明按鍵函數(shù)
ucharnum1,num2,bai,shi,ge; //變量聲明
uint num;
void main() //主函數(shù)入口
{
TMOD=0x11; //設(shè)置 TO,T1 定時(shí)器
TH0=(65536-45872)/256; //裝初值11.05992M晶振50ms數(shù)為45872
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1; //開總中斷
ET0=1; //開啟定時(shí)器 T0 中斷
ET1=1; //開啟定時(shí)器 T1 中斷
while(1) //程序停在這里等待中斷的發(fā)生,這個(gè)大循環(huán)也是實(shí)現(xiàn)數(shù)據(jù)顯示的主體
{
keyscan(); //三個(gè)數(shù)碼管要選送的數(shù)據(jù)
bai=num/100; //百位
shi=(num-100*bai)/10; //十位
ge=num-100*bai-shi*10; //個(gè)位
display(bai,shi,ge); //數(shù)碼管顯示
}
}
void display(uchar bai,uchar shi,uchar ge)
{
P1=0xfe; //位選選中第一個(gè)數(shù)碼管
P2=table[bai]; //送段選數(shù)據(jù)
delayms(10); //延時(shí)
P1=0xff; //關(guān)閉位選
P1=0xfd; //位選選中第二個(gè)數(shù)碼管
P2=table2[shi]; //送段選數(shù)據(jù)
delayms(10); //延時(shí)
P1=0xff; //關(guān)閉位選
P1=0xfb; //位選選中第二個(gè)數(shù)碼管
P2=table[ge]; //送段選數(shù)據(jù)
delayms(10); //延時(shí)
P1=0xff; //關(guān)閉位選
}
void delayms(uintxms) //延時(shí)子函數(shù)
{
uint i,j; for(i=xms;i>0;i--) //i=xms 即延時(shí)約 xms 毫秒
for(j=110;j>0;j--);
}
void keyscan()
{
if(key1==0) //清零
{
delayms(10); //延時(shí)去抖
if(key1==0)
{ while(!key1) //等待按下
{
TR0=0; //定時(shí)器 TR0 關(guān)閉
TR1=1; //定時(shí)器 TR1 打開
num=0; //送數(shù)據(jù) num=0
TR1=0; //定時(shí)器 TR1 關(guān)閉
}
}
}
if(key2==0) //暫停和開始
{
delayms(10);
if(key2==0)
{
while(!key2);
TR0=0;
TR1=~TR1; //每次按下,TR1 的狀態(tài)時(shí)相反的
}
}
if(key3==0) //使計(jì)數(shù)器顯示為 60.0
{
while(!key3);
TR0=0;
TR1=1;
num=999;
TR1=0;
}
if(key4==0) //實(shí)現(xiàn)計(jì)數(shù)器的倒數(shù)功能
{
while(!key4);
TR1=0;
TR0=~TR0;//TR0=1;
}
}
void T0_time()interrupt 1 //定時(shí)器 T0,中斷序號為 1
{TH0=(65536-45872)/256; //重裝初值
TL0=(65536-45872)%256;
num2++;
if(num2==2) //如果到了2次,說明0.1秒的時(shí)間到
{ num2=0; //然后把num2清零重新再計(jì)2次
num1++;
}
if(num1==10)
num1=0;
if(num==0) //當(dāng) num 自減為0時(shí),重新為 60.0,再開始倒計(jì)時(shí)
num=999; //num 逐漸自減
num--;
}
void T1_time()interrupt 3
{ TH1=(65536-45872)/256; //重裝初值
TL1=(65536-45872)%256;
num2++;
if(num2==2) //如果到了 2 次,說明 0.1 秒的時(shí)間到
{ num2=0; //然后把 num2 清零重新再計(jì) 2 次
num1++;
if(num1==10)
num1=0;
num++; //num 逐漸自加
if(num==999)
num=0;//這個(gè)數(shù)十用來送給數(shù)碼管顯示的,到了60.0后歸零
}
}
-
秒表.png
(29.28 KB, 下載次數(shù): 30)
下載附件
2018-3-26 09:14 上傳
照圖仿真做不出來!
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
99精品国产在热久久
|
国产精品片
|
在线三级网址
|
91久久视频
|
伊人精品国产
|
午夜资源
|
最新中文字幕第一页视频
|
麻豆亚洲
|
欧美激情精品久久久久久
|
久久久久国产精品一区
|
国产精品久久久久久久久久久免费看
|
成人妇女免费播放久久久
|
一区二区三区久久久
|
亚洲伊人精品酒店
|
成人h动漫亚洲一区二区
|
日韩电影中文字幕在线观看
|
日日干夜夜操
|
日本精品一区二区
|
国产三级日本三级
|
高清黄色网址
|
亚洲成人久久久
|
日本一区视频在线观看
|
一本久久a久久精品亚洲
|
国产毛片视频
|
亚洲综合色视频在线观看
|
精品久久久久久久久亚洲
|
天天干天天操天天射
|
黄色在线免费观看
|
91久久北条麻妃一区二区三区
|
亚洲国产精品成人无久久精品
|
五月花丁香婷婷
|
99精品久久|
久久欧美高清二区三区
|
中文字幕在线视频观看
|
欧美精品影院
|
成年人国产在线观看
|
аⅴ资源新版在线天堂
|
韩日精品在线观看
|
99综合|
日本中文字幕日韩精品免费
|
中文字幕在线三区
|