久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
我的單片機中斷為啥不起作用啊(小白且菜,別笑出聲)
[打印本頁]
作者:
51-fool_bird
時間:
2024-5-17 20:09
標題:
我的單片機中斷為啥不起作用啊(小白且菜,別笑出聲)
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar x;
sbit speaker=P3^7;
uchar code s8[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
void delayms(uint time){
while(time--);
}
//T=1/f;T=1ms;有效周期:T/2=0.5ms(57次計數)
void speakers(){
speaker=~speaker;
delayms(57);//1KHZ
}
void Display(uchar getx)
{
P3=0x01;
P1=s8[getx/10];
delayms(360);
P3=0x02;
P1=s8[getx%10];
delayms(360);
}
void key13(){
uchar i,j,temp2;
P3=0x00;
j=0;
P0=0xff;
temp2=0xfe;
for(j=2;j>0;j--){
for(i=0;i<8;i++){
P0=temp2;
delayms(57500);
temp2=_crol_(temp2,1);
//delayms(2300);
}
P0=0xff;
}
}
void Int1() interrupt 2{
EX1=0;
P1=0xbf;
P3=0x03;
delayms(115000);
}
void Time0(void) interrupt 1 {
uchar n;
n=n+1;
if(n==20){
x--;
n=0;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(x==0)
TR0=0;
}
void Interrupt(){
EX1=1;//外部中斷1允許
IT1=1;//低電平觸發(fā)
PX1=1;//外部中斷1為高級優(yōu)先中斷
while(EX1);
}
void Time(){
ET0=1;//T0中斷允許
PT0=0;//定時中斷T0為低級中斷
TMOD=0x01;//方式一:16位
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
x=60;
do{
Display(x);
}while(x);
TR0=0;
}
/*
行列掃描,高四位置1,低四位值0;
按行掃描,檢測行變化;
行列之間為與關系,按鍵按下,高地址鍵值變化
*/
void main(){
uchar temp,num,s,g,i;
s=g=10;
EA=1;
while(1){
P2=0xf0;
temp=P2;
if(temp!=0xf0){//檢測按鍵是否被按下
delayms(1150);//消抖
//確認鍵值
//行掃描結束,若無目標鍵值,重新賦值P2引腳進行掃描
temp=P2;
if(temp!=0xf0){//再次確認按鍵是否被按下
P2=0xfe;//第一行
temp=P2;
switch(temp){
case(0xee):num=0;break;
case(0xde):num=1;break;
case(0xbe):num=2;break;
case(0x7e):num=3;break;
}
P2=0xfd;//第二行
temp=P2;
switch(temp){
case(0xed):num=4;break;
case(0xdd):num=5;break;
case(0xbd):num=6;break;
case(0x7d):num=7;break;
}
P2=0xfb;//第三行
temp=P2;
switch(temp){
case(0xeb):num=8;break;
case(0xdb):num=9;break;
case(0xbb):num=10;break;
case(0x7b):num=11;break;
}
//蜂鳴器發(fā)聲
for(i=0;i<60;i++)
speakers();
speaker=1;//關閉蜂鳴器
delayms(115);
P2=0xf7;//第四行
temp=P2;
switch(temp){
case(0xe7):key13();break;
case(0xd7):Time();break;
case(0xb7):Interrupt();break;
default: break;
}
}
}
Display(num);
}
}
作者:
99Lightyear
時間:
2024-5-18 10:53
void Int1() interrupt 2{
EX1=0;/************************這里置零代表我進入一次就關閉中斷允許了
P1=0xbf;
P3=0x03;
delayms(115000);
}
void Time0(void) interrupt 1 {
uchar n;
n=n+1;
if(n==20){
x--;
n=0;
}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(x==0)
TR0=0;/**************************這里置零就代表定時器停止運行了,定時器計數就不會溢出觸發(fā)中斷了
}
void Interrupt(){
EX1=1;//外部中斷1允許
IT1=1;//低電平觸發(fā)
PX1=1;//外部中斷1為高級優(yōu)先中斷
while(EX1);/***********************這里不是進入了個死循環(huán)嗎?還是說你只想讓外部中斷只用一次
}
復制代碼
而且主函數里也沒有看見調用定時器和中斷的初始化函數
作者:
xiaobendan001
時間:
2024-5-18 17:42
delayms(115000);別的看不懂,這個115000很明顯是超過UINT的范圍了
作者:
mtt661
時間:
2024-5-18 19:49
void Int1() interrupt 2{
EX1=0;
P1=0xbf;
P3=0x03;
delayms(115000);
}
在中斷里卡115秒?實際上只能卡65秒
作者:
xiaobendan001
時間:
2024-5-19 07:37
mtt661 發(fā)表于 2024-5-18 19:49
void Int1() interrupt 2{
EX1=0;
P1=0xbf;
你看他那個delayms,看起來應該是delayus吧。
作者:
45576876876
時間:
2024-5-19 18:16
delayms(115000)那里有錯誤
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文日韩在线
|
狠狠操av
|
欧美中文字幕在线
|
一本色道精品久久一区二区三区
|
成人精品一区二区
|
国产精品久久久久久久久久
|
成人小视频在线观看
|
国产欧美视频一区二区
|
欧美簧片
|
欧美日韩精品中文字幕
|
欧美日韩综合一区
|
波多野结衣一区二区三区
|
久久99精品久久久久久狂牛
|
日韩欧美精品在线播放
|
一区二区三区av
|
国产精品美女久久久久久不卡
|
免费一级黄色
|
91动漫在线观看
|
人人看人人草
|
亚洲视频精品在线
|
久久伊人精品
|
国产精彩视频在线观看
|
亚洲视频一区在线
|
日韩一区二区在线观看
|
欧美午夜精品久久久久免费视
|
日韩欧美在线播放
|
亚洲国产欧美在线
|
成人午夜免费福利视频
|
精品亚洲一区二区
|
久久亚洲欧美日韩精品专区
|
亚洲高清成人在线
|
一级网站
|
欧美日韩三区
|
美女天天操
|
亚洲一区二区三区四区五区中文
|
久久久久国产精品
|
久久综合伊人一区二区三
|
国产激情在线
|
欧美国产日韩一区二区三区
|
91人人看
|
狠狠干美女
|