久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于單片機中斷服務程序的理解,請大神指正。知其然而不知其所以然,好痛苦
[打印本頁]
作者:
bai850107
時間:
2017-11-9 22:59
標題:
關于單片機中斷服務程序的理解,請大神指正。知其然而不知其所以然,好痛苦
單片機程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P2^0;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar num,num1,num2,shi,ge;
uint z,i,j;
uchar code smgdisplay[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint z);
void display();
void main()
{
TMOD=0x10;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
EA=1;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
while(1);
{
display();
}
}
void t0_time() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
if(num==4)
{
num=0;
LED1=~LED1;
}
}
void t1_time() interrupt 3 //中斷服務程序,是給void display()子函數的變量賦值?初始化寄存器。在主函數中等待中斷,執行display()子函數。
{
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
num1++;
if(num1==20)
{
num1=0;
num2++;
if(num2==60)
{
num2=0;
}
shi=num2/10;
ge=num2%10;
}
}
void display()
{
LSA=0;
LSB=0;
LSC=0;
P0=smgdisplay[ge];
delayms(2);
P0=0x00;
LSA=1;
LSB=0;
LSC=0;
P0=smgdisplay[shi];
delayms(2);
P0=0x00;
}
void delayms(uint z)
{
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
復制代碼
知其然而不知其所以然,好痛苦
作者:
bai850107
時間:
2017-11-9 23:02
TMOD=0x11;
作者:
yzwzfyz
時間:
2017-11-9 23:13
知的哪些?不知的是哪些?
作者:
angmall
時間:
2017-11-10 00:34
#include<reg52.h> //此文件中定義了單片機的一些特殊功能寄存器
#define uchar unsigned char //對數據類型進行聲明定義
#define uint unsigned int
sbit LED1=P2^0; //定義LED端口
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar num,num1,num2,shi,ge;
uint z,i,j;
uchar code smgdisplay[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}; //顯示0~F的值
void delayms(uint z); //延時函數,
void display(); //數碼管動態掃描函數,循環掃描2個數碼管顯示
void main()
{
TMOD=0x10;
TH0=(65535-50000)/256; //給定時器0賦初值,定時50ms
TL0=(65535-50000)%256;
TH1=(65535-50000)/256; //給定時器1賦初值,定時50ms
TL1=(65535-50000)%256;
EA=1; //打開總中斷
TR0=1; //打開定時器 0
TR1=1; //打開定時器 1
ET0=1; //打開定時器0中斷允許
ET1=1; //打開定時器1中斷允許
while(1)
{
display(); //數碼管顯示函數
}
}
void t0_time() interrupt 1
{
TH0=(65535-50000)/256; //給定時器賦初值,定時50ms
TL0=(65535-50000)%256;
num++;
if(num>=4) // 200ms
{
num=0;
LED1=~LED1; //指示燈反相,可以看到閃爍
}
}
void t1_time() interrupt 3 //中斷服務程序,是給void display()子函數的變量賦值?初始化寄存器。在主函數中等待中斷,執行display()子函數。
{
TH1=(65535-50000)/256; //給定時器賦初值,定時50ms
TL1=(65535-50000)%256;
num1++;
if(num1>=20) // 1000ms 1秒
{
num1=0;
num2++;
if(num2>=60)
{
num2=0;
}
shi=num2/10; //顯示 00 - 59秒
ge=num2%10;
}
}
void display() //數碼管動態掃描函數,循環掃描2個數碼管顯示
{
LSA=0; //位選,選擇點亮的數碼管,
LSB=0;
LSC=0; //顯示第0位
P0=smgdisplay[ge]; //發送段碼
delayms(2); //間隔一段時間掃描
P0=0x00; //消隱
LSA=1; //位選,選擇點亮的數碼管,
LSB=0;
LSC=0; //顯示第1位
P0=smgdisplay[shi]; //發送段碼
delayms(2); //間隔一段時間掃描
P0=0x00; //消隱
}
void delayms(uint z) //延時函數,
{
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
復制代碼
作者:
lcall
時間:
2017-11-10 16:55
TMOD=0x11;
作者:
zl2168
時間:
2017-11-10 19:31
先學理論,打基礎,否則,問題多多,事倍功半。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美一级久久久猛烈a大片 日韩av免费在线观看
|
亚洲一区二区三区视频免费观看
|
日韩一区二区三区av
|
奇米av
|
日韩中文字幕免费
|
亚洲一区欧美
|
午夜寂寞福利视频
|
国产一区二区日韩
|
久久精品国产亚洲
|
欧美一区二区三区视频在线播放
|
91福利在线观看
|
国产精品久久精品
|
亚洲毛片
|
给我免费的视频在线观看
|
国产精品视频久久久
|
久久精品亚洲精品国产欧美
|
中文字幕一区在线观看视频
|
国产欧美一区二区三区国产幕精品
|
精品1区
|
久久精品亚洲欧美日韩久久
|
亚洲一区二区
|
亚洲逼院
|
日韩成人免费av
|
亚洲国产精品久久
|
2019天天操
|
久久精品亚洲国产奇米99
|
一区二区成人
|
国产成人精品区一区二区不卡
|
免费毛片www com cn
|
97久久精品午夜一区二区
|
九九99九九精彩46
|
亚洲一卡二卡
|
最新中文字幕一区
|
亚洲精品欧美
|
日日骚av
|
玖玖综合在线
|
欧美久久一级
|
国产欧美精品一区二区
|
国产99久久精品一区二区永久免费
|
欧美日韩一区在线播放
|
久久之精品
|