欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
proteus 8.12單片機仿真的中斷與數碼管點亮
[打印本頁]
作者:
joe_2019
時間:
2021-11-27 18:47
標題:
proteus 8.12單片機仿真的中斷與數碼管點亮
51單片機的中斷學習與數碼管的點亮,仿真過程中遇到一個問題,8.9之前仿真時,點亮數碼管順序為先段選后位選,到8.12后居然全是亂碼,找了好久找不到毛病,最后網上查到改成先位選再段選即可,解決問題。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
Snipaste_2021-11-27_18-39-57.png
(68.08 KB, 下載次數: 83)
下載附件
2021-11-27 18:43 上傳
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit DUAN=P2^6;
sbit WEI=P2^5;
sbit LED=P2^1;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰極數碼管編碼
void delayms(uint xms);
void display(int,int);
int num,num1,num2,shi,ge;
void main()
{
TMOD=0X11; //設置定時器0和1的工作方式
TH0=(66536-50000)/256; //T0裝初值
TL0=(66536-50000)%256;
TH1=(66536-50000)/256; //T1裝初值
TL1=(66536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
{
display(shi,ge);
}
}
void display(int shi, int ge)
{
WEI=1;
P0=0Xfd;
WEI=0;
DUAN=1;
P0=table[shi];
DUAN=0;
P0=0Xff;
delayms(5);
WEI=1;
P0=0Xfe;
WEI=0;
DUAN=1;
P0=table[ge];
DUAN=0;
P0=0Xff;
delayms(5);
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for (j=100;j>0;j--);
}
void T0_time() interrupt 1
{
TH0=(66536-50000)/256; //T0裝初值
TL0=(66536-50000)%256;
num1++;
if(num1==4)
{
num1=0;
LED=~LED;
}
}
void T1_time() interrupt 3
{
TH1=(66536-50000)/256; //T1裝初值
TL1=(66536-50000)%256;
num2++;
if(num2==20)
{
num2=0;
num++;
if(num==60)
num=0;
shi=num/10;
ge=num%10;
}
}
復制代碼
仿真代碼51hei附件下載:
interruption case 3-5-2.7z
(102.39 KB, 下載次數: 9)
2021-11-27 18:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1