久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于AT89C51單片機的一位計算器仿真設計
[打印本頁]
作者:
貓膩Doi
時間:
2017-12-30 19:57
標題:
基于AT89C51單片機的一位計算器仿真設計
單片機一位計算器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(16.59 KB, 下載次數: 51)
下載附件
2017-12-31 00:49 上傳
0.png
(12.03 KB, 下載次數: 34)
下載附件
2017-12-31 00:49 上傳
單片機源程序如下:
#include <reg51.h>
sbit LCD_RS = P2^0;
sbit LCD_EN = P2^1;
unsigned char KeyValue = 255;
unsigned char DisCache[6]={0};
unsigned char StartFlag = 0;
void DelayTime10us(unsigned int DelayValue)
{
unsigned int a = 0,b = 0;
for(a =0 ;a < DelayValue; a++)
for(b =0 ;b < 18; b++);
}
void DelayTime10ms(unsigned int DelayValue)
{
unsigned int a = 0,b = 0;
for(a =0 ;a < DelayValue; a++)
for(b =0 ;b < 1828; b++);
}
void SendDataToLCD(unsigned char LCDData)
{
LCD_RS = 1;
P0 = LCDData;
LCD_EN = 1;
DelayTime10us(10);
LCD_EN = 0;
DelayTime10us(10);
}
void SendPositionToLCD(unsigned char LCDPosition)
{
LCD_RS = 0;
P0 = LCDPosition;
LCD_EN = 1;
DelayTime10us(10);
LCD_EN = 0;
DelayTime10us(10);
}
void DisStr(unsigned char *point)
{
char i = 0;
for(;;)
{
SendDataToLCD( *point);
point++;
if(*point =='\0')
break;
}
}
void DisStr1()
{
char i = 0;
for(i=0;i<6;i++)
{
SendDataToLCD(DisCache[i]);
}
}
void KeyScan()
{
int KeyTemp = 0;
P3 = 0xfe;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
DelayTime10ms(1);
P3 = 0xf0;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
switch(KeyTemp)
{
case 0xe0:KeyValue =7;break;
case 0xd0:KeyValue =8;break;
case 0xb0:KeyValue =9;break;
case 0x70:KeyValue =10;break;
}
}
}
P3 = 0xfd;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
DelayTime10ms(1);
P3 = 0xf0;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
switch(KeyTemp)
{
case 0xe0:KeyValue =4;break;
case 0xd0:KeyValue =5;break;
case 0xb0:KeyValue =6;break;
case 0x70:KeyValue =11;break;
}
}
}
P3 = 0xfb;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
DelayTime10ms(1);
P3 = 0xf0;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
switch(KeyTemp)
{
case 0xe0:KeyValue =1;break;
case 0xd0:KeyValue =2;break;
case 0xb0:KeyValue =3;break;
case 0x70:KeyValue =12;break;
}
}
}
P3 = 0xf7;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
DelayTime10ms(1);
P3 = 0xf0;
KeyTemp = P3&0xf0;
if(KeyTemp!=0xf0)
{
switch(KeyTemp)
{
case 0xe0:KeyValue =15;break;
case 0xd0:KeyValue =0;break;
case 0xb0:KeyValue =14;break;
case 0x70:KeyValue =13;break;
}
}
}
}
void main()
{
// 01 06 0c 38
SendPositionToLCD(0x01);
SendPositionToLCD(0x06);
SendPositionToLCD(0x0c);
SendPositionToLCD(0x38);
SendPositionToLCD(0x80);
DisStr("calculator!");
for(;;)
{
KeyScan();
SendPositionToLCD(0xc0);
//DisStr(DisCache);
DisStr1();
if((KeyValue>=0)&&(KeyValue<=9)&&(StartFlag==0))
{
DisCache[0]=KeyValue+48;
StartFlag=1;
}
if(KeyValue==15)
{
StartFlag = 0;
DisCache[0]=48;
DisCache[1]=0;
DisCache[2]=0;
DisCache[3]=0;
DisCache[4]=0;
DisCache[5]=0;
DisCache[6]=0;
}
if((KeyValue>=10)&&(KeyValue<=13)&&(StartFlag==1))
{
StartFlag=2;
switch(KeyValue)
{
case 10:DisCache[1]= 47;break;
case 11:DisCache[1]= 42;break;
case 12:DisCache[1]= 45;break;
case 13:DisCache[1]= 43;break;
}
}
if((KeyValue>=0)&&(KeyValue<=9)&&(StartFlag==2))
{
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
計算機2017-12-4.zip
(147.09 KB, 下載次數: 123)
2017-12-30 19:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
tt609852916
時間:
2018-6-12 16:35
沒有黑幣
作者:
lexy
時間:
2018-6-18 18:55
學習一下
作者:
553687
時間:
2020-3-2 16:38
怎么是80C51,標題上是AT89C51
作者:
笑舞醉夢間
時間:
2020-3-2 18:59
能問下樓主,能通過這個做出簡易計算器么!
作者:
solitude110
時間:
2020-3-2 19:42
學習一下看看怎么樣
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本一区二区三区四区
|
天堂中文在线播放
|
欧美日韩在线视频观看
|
av日韩高清
|
欧美日韩不卡
|
91影院在线观看
|
久久高清免费视频
|
亚洲网一区
|
国产美女自拍视频
|
成人在线视频免费看
|
午夜免费网站
|
一区二区三区四区视频
|
在线观看av免费
|
性xxxxx
|
国产91一区二区三区
|
亚洲视频在线看
|
h视频在线免费观看
|
交专区videossex农村
|
久草青青草
|
婷婷激情在线
|
精品乱码一区二区三四区视频
|
在线观看视频一区
|
免费麻豆视频
|
免费污视频
|
一区二区三区视频在线免费观看
|
美女一区二区在线观看
|
久久久av中文字幕
|
国产乱精品一区二区三区
|
精品在线一区二区三区
|
欧美激情久久久
|
亚洲精品在线视频
|
国产精品成人一区
|
午夜精品一区二区三区在线视频
|
男女深夜网站
|
国产精品日韩一区二区
|
国产精品1区
|
国产一区二区精品自拍
|
精品欧美一区二区三区免费观看
|
成人精品免费视频
|
亚洲一区二区在线
|
精品在线一区
|