日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] #include\"../Inc/MyCommon.h\"#include#include#include\"../Inc/MyDelay.h\"#include\"../Inc/CH451.h\"#definePS2SDA(1

#include"../Inc/MyCommon.h"
#include
#include
#include"../Inc/MyDelay.h"
#include"../Inc/CH451.h"
#definePS2SDA(1<<;PA0)

#definePS2SCL(1<<;PE6)
ucharDisplayData[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};//數(shù)碼管各位要顯示的數(shù)據(jù)
ucharIntNum=0;//中斷次數(shù)
ucharKeyUP=0;//鍵松開標(biāo)識
//鍵盤編碼表
ucharPS2KeyCode[16]={
69,//0
22,//1
30,//2
38,//3
37,//4
46,//5
54,//6
61,//7
62,//8
70,//9
28,//a
50,//b
33,//c
35,//d
36,//e
43,//f
};
//鍵盤解碼函數(shù)
voidDecode(){
if(!KeyUP){//當(dāng)鍵盤不是松開時
switch(KeyValue){
case0xF0://便是斷碼開始
KeyUP=1;
break;
default:{
for(uchari=0;i<16;i++){//查找鍵值對應(yīng)的數(shù)字
if(KeyValue==PS2KeyCode){
for(ucharj=0;j<7;j++)DisplayData[j]=DisplayData[j+1];//前移一位
DisplayData[7]=i;//最后一位顯示剛輸入的數(shù)字
}
}
break;
}
}
}else{
KeyUP=0;
}
}
//INT6中斷處理程序
ISR(SIG_INTERRUPT6){
//PS2鍵盤中斷
if((IntNum>0)&&(IntNum<9)){
KeyValue>>=1;//因鍵盤數(shù)據(jù)是低>>高,結(jié)合上一句所以右移一位
if(PINA&PS2SDA)KeyValue|=0x80;//當(dāng)鍵盤數(shù)據(jù)線為1時到最高位
}
IntNum++;
while(!(PINE&PS2SCL));//等待CLK拉高
if(IntNum>10){//接收完一個數(shù)據(jù)
IntNum=0;
Decode();
}
}
//主函數(shù)
intmain(){
uchari;
DDRA=0xA8;//PA3PA5PA7設(shè)置為輸出
DDRA&=~PS2SDA;//PA0設(shè)置為輸入
DDRE&=~PS2SCL;//PE6設(shè)置為輸入
EICRB&=~(1<EIMSK|=(1<CH451_Init();//初始化CH451
sei();//開總中斷
while(1){
for(i=0;i<8;i++)CH451_DisplayDig(7-i,DisplayData,0);//顯示新的數(shù)據(jù)
}
return0;
}


MyCommon.h公共頭文件

#ifndef _MYCOMMON_H
#define _MYCOMMON_H
//全局宏定義
#define F_CPU 7.3728E6//晶振頻率
#defineuint unsigned int
#defineuchar unsigned char
#defineulong unsigned long
#endif

MyDelay.h延時函數(shù)頭文件

#ifndef _MYDELAY_H
#define _MYDELAY_H
#include "MyCommon.h"
#include
void DelayMS(uint ms);//毫秒級延時函數(shù)
void Delay10US(uint us);//10微秒級延時函數(shù)
//ms級延時程序
void DelayMS(uint ms){
while(ms--){
_delay_ms(1);
}
}
//10us級延時程序
void Delay10US(uint us){
while(us--){
_delay_us(10);
}
}
#endif


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉