资源描述:
《AVRmega16基本程序文件.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、./*********************************************************************MCU:ATmega16外部晶振:8MHz程序功能:4*4鍵盤識別,LED七段數碼管顯示,密碼功能模塊,直流電機正反轉控制AD轉換模塊,模擬比較器,外部中斷應用,12864液晶,C/T0硬件設計:參考PROTUES硬件仿真電路調試:所有程序主要功能都軟硬件仿真通過,實際使用時要根據需要加入可靠性。編譯環境:ICCAVRDesignby:wdw***************************************
2、*****************************/#include#include#include#defineucharunsignedchar#defineuintunsignedint#defineSET_1(a,b)a
3、=bit(b)//將寄存器a的第b位置1#defineCLR_0(a,b)a&=~bit(b)//將寄存器a的第b位清0#programdatecode:constdate[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
4、//共陽數據;0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};#programduancode:constduan[]={0x20,0x10,0x08,0x04,0x02,0x01};//段選;charadchannel;intdispbuf[]={0,0,0,0,0,0,};//顯示緩存;ucharsecurbuf[]={0,0,0,0,0,};//5位密碼緩存;/********************************************************************名稱:ms延時子函數功能:延時指定
5、的ms*********************************************************************/voiddelayms(intms){inti,j;for(i=ms;i>0;i--){for(j=1722;j>0;j--);//8M时改为1141;}//12M时为1722;}/*******************************************************************名稱:us延時子程序功能:延時指定的us*******************************
6、*************************************/voiddelayus(ucharus){for(us;us<0;us--);{....}//12M时单位T为1.45US}/********************************************************************单参数LED显示硬件连接:数据PORTC-----D7~D0段选PORTD-----D7~D4******************************************************************
7、***/voidLEDShow(longintshownum){uchari,tmp,curnum;longinttmpnum;tmp=0xfb;tmpnum=shownum;for(i=0;i<6;i++)//显示的位数为5{curnum=tmpnum%10;tmpnum=tmpnum/10;PORTD=tmp;PORTC=date[curnum];delayus(1);tmp=(tmp<<1)+0x01;//补上移位造成的最右位为0;}}/*******************************************************名稱:
8、七段LED共陽數碼管,在指定数位上显示指定的数,双参数功能:在指定的位置上顯示制定的數;硬件連接:PC口複用控制段選和位選,有2片573進行數據鎖存;*******************************************************/voidshow(uchardat,ucharnum)//六位七段數碼管顯示程序OK;{PORTC=date[dat];PORTD
9、=BIT(0);PORTD&=~BIT(0);//送數據;delayus(2);PORTC=0X00;delayus(1);PORTC=duan[num];PORTD
10、=
11、BIT(1);delayus(2);PORTD&=~