|
這是自己最近研究的單片機(jī)和8255擴(kuò)展的連接方法
組成了一個(gè)16個(gè)按鍵的矩形鍵盤
用LCD來顯示按鍵的數(shù)字和一些小小的功能
新手初來乍到,不足之處還請各位多多指點(diǎn)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (21.04 KB, 下載次數(shù): 137)
下載附件
2018-1-2 23:56 上傳
0.png (15.11 KB, 下載次數(shù): 147)
下載附件
2018-1-2 23:56 上傳
單片機(jī)源程序如下:
- #include <REGX52.H>
- #include<intrins.h>
- #include<absacc.h>
- #define uchar unsigned char
- #define uint unsigned int
- //ABC口,控制定義
- #define PA XBYTE[0X7CFF]
- #define PB XBYTE[0X7DFF]
- #define PC XBYTE[0X7EFF]
- #define COM XBYTE[0X7FFF]
- //定義鍵盤
- uchar code JP[]={
- 0xe7,0xeb,0xed,0xee,
- 0xd7,0xdb,0xdd,0xde,
- 0xb7,0xbb,0xbd,0xbe,
- 0x77,0x7b,0x7d,0x7e,
- };
- uchar code lcd[]={ '0','1','2','3',
- '4','5','6','7',
- '8','9', '+','-',
- '*','/', '=',
-
- };
- //定義控制引腳
- sbit RS=P3^0;
- sbit RW=P3^1;
- sbit EN=P3^2;
- sbit WR1=P3^6;
- sbit RD1=P3^7;
- //延時(shí)
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--)
- {
- for(i=0;i<120;i++);
- }
- }
- //1602寫指令
- void Write_LCD_Command(uchar cmd)
- {
- RS=0;RW=0;EN=0;
- P1=cmd;
- DelayMS(5);
- EN=1;
- DelayMS(5);
- EN=0;
- }
- //1602寫數(shù)據(jù)
- void Write_LCD_data(uchar dat)
- {
- RS=1;RW=0;EN=0;
- P1=dat;
- DelayMS(5);
- EN=1;
- DelayMS(5);
- EN=0;
- }
- //1602讀數(shù)據(jù)
- void read(uchar rea)
- {
- RS=1;RW=1;EN=1;
- P1=rea;
- DelayMS(5);
- EN=0;
- DelayMS(5);
- EN=1;
- }
- //1602初始化
- void Ini_LCD()
- {
- Write_LCD_Command(0x0F);DelayMS(5);//設(shè)置功能
- Write_LCD_Command(0x38);DelayMS(5);
- Write_LCD_Command(0x06);DelayMS(5);//AC+1
- Write_LCD_Command(0x01);DelayMS(5);//清屏
- Write_LCD_Command(0x0c);DelayMS(5);//顯示功能
- }
- //1602顯示位置
- void WAdd( uchar x,uchar y)
- {
- Write_LCD_Command(0x80+x);
- Write_LCD_data(y);
- }
- //主函數(shù)
- void main()
- {
- COM=0X90;
- Ini_LCD();
- while(1)
- {
- uchar key,temp,num,a;
- PC=0X0F;
- if(PC!=0X0F)
- {
- DelayMS(10);
- if(PC!=0X0F)
- {
- temp=PC;
- PC=0xf0;
- key=temp|PC;
- if(key==0x7e)
- {
- Write_LCD_Command(0x01);DelayMS(5);//清屏
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
8255 16按鍵.rar
(61.55 KB, 下載次數(shù): 281)
2018-1-2 16:33 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|