久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
單片機單詞記憶測試器Proteus仿真程序
[打印本頁]
作者:
1234567892
時間:
2020-5-30 00:37
標(biāo)題:
單片機單詞記憶測試器Proteus仿真程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(13.02 KB, 下載次數(shù): 60)
下載附件
2020-5-31 15:53 上傳
51hei.png
(22.64 KB, 下載次數(shù): 56)
下載附件
2020-5-31 15:53 上傳
單片機源程序如下:
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
#include "asc.h" //ASCII字模表
#include "12864.h" //12864液晶屏底層驅(qū)動程序
bit ERROR=1; //輸入字符錯誤標(biāo)志位
bit result=0; //輸入結(jié)果對錯的標(biāo)志位,為0是正確
bit verify=1; //已按了確認鍵后清零
sbit ERR=P2^7;
uchar correctNUM; //統(tǒng)計測試正確的單詞數(shù),即得分
/*****************************************
/** 存儲要測試的單詞,放在ROM中
/****************************************/
uchar code S[10][5]={ "tree ", //樹
"rain ", //雨
"water", //水
"fly ", //飛
"go ", //去
"fish ", //魚
"snow ", //雪
"eat ", //吃
"rice ", //米
"ice ", //冰
} ;
uchar code SL[10]={4,4,5,3,2,4,4,3,4,3};//存儲各測試單詞的長度
uchar KeyNum[8]; //儲存輸入的單詞
/*****************************************
/** 存儲鍵盤的字母值 ,放在ROM中
/****************************************/
uchar code tab1[6][5]={{'a','b','c','d','e'},
{'f','g','h','i','j'},
{'k','l','m','n','o'},
{'p','q','r','s','t'},
{'u','v','w','x','y'},
{'z',1,2,3,4}};
//最后的 1234 鍵盤值為功能鍵, 1表示確定鍵,2表示不認識,3表示上一個,4表示下一個
/*************************************************
** 鍵盤掃描程序
*************************************************/
unsigned char kbscan() //鍵盤掃描
{
uchar hang,lie,key; //P1連行,P3連列
if(P1!=0xFF||P3!=0)
{
switch(P1&0xFF) //P1 掃行
{
case 0xFE:hang=5;break;//P1.0為第6行
case 0xFD:hang=4;break;//P1.1為第5行
case 0xFB:hang=3;break;//P1.2為第4行
case 0xF7:hang=2;break;//P1.3為第3行
case 0xEF:hang=1;break;//P1.4為第2行
case 0xDF:hang=0;break;//P1.5為第1行
}
P1=0; //P1全低電平
P3=0xFF;//P3全高電平
switch(P3&0xFF)
{
case 0xFE:lie=4;break; //P1.0為第5列
case 0xFD:lie=3;break; //P0.5為第4列
case 0xFB:lie=2;break; //P0.6為第3列
case 0xF7:lie=1;break; //P0.7為第2列
case 0xEF:lie=0;break; //P0.7為第1列
}
P1=0xFF; //P1全高電平
P3=0; //P3全低電平
while(P1!=0xFF||P3!=0); //按鍵松開后才返回值
key=tab1[hang][lie];
}
else
key='_';
return (key);
}
/************************************************************************
/** 主函數(shù)
/**
/**
/*************************************************************************/
void main(void)
{
uchar hz_Num; //用于計當(dāng)前測試的是第幾個詞,第一個為0
uchar temp[8]; //用于送液晶屏顯示的臨時變量
uchar iword=0,Nword=0; //輸入單詞字母下一個計數(shù)
LCD12864_init(); //LCD12864初始化
ClearLCD(); //清屏
en_disp(2,1,11,Asc,"INPUT WORD:",1); //在第2行 第1列
en_disp(4,1,1,Asc,">",1); //在第5行,第2列開始顯示
en_disp(6,0,8,Asc,"correct:",1); //在第7行,第1列開始顯示
en_disp(6,80,5,Asc,"00/10",1); //在第7行 第81列
P1=0xFF; //P1全高電平
P3=0; //P3全低電平
while(1)
{
KeyNum[iword]=kbscan(); //掃描鍵盤的輸入值,沒按下時返回下橫線
hz_disp(0,48,1,hz1+hz_Num*32,1); //在第1行,第49列開始顯示測試的漢字
temp[0]=(hz_Num+1)/10+0x30; //將十進制數(shù)轉(zhuǎn)換為ASCII字符
temp[1]=(hz_Num+1)%10+0x30; //算出測試漢字的序號的第一位和第二位
en_disp(0,20,1,Asc,":",1); //在第1行 第21列
en_disp(0,4,2,Asc,temp,1); //在第1行 第5列 顯示測試序號
if(KeyNum[iword]!='_') //鍵盤有按鍵按下
{
if(KeyNum[iword]==1) //如果按下了確定鍵
{
if(SL[hz_Num]==iword&&verify) //輸入長度等于測試單詞的長度,則正確 ,verify表示按下了確認后有效一次
{
correctNUM+=1;
if(correctNUM>10)
{
correctNUM=10; //最多10個正確的
}
verify=0; //標(biāo)志位清零
hz_Num++; //測試下一個單詞
if(hz_Num==10) hz_Num=0; //最多設(shè)10個單詞
temp[0]=(correctNUM)/10+0x30; //將十進制數(shù)轉(zhuǎn)換為ASCII字符
temp[1]=(correctNUM)%10+0x30;
//算出測試漢字的序號的第一位和第二位
en_disp(6,80,2,Asc,temp,1); //在第7行 第81列
iword=0;
Nword=0;
en_disp(4,16,8,Asc," ",1); //在第5行,第17列開始顯示
}
}
else if(KeyNum[iword]==2||KeyNum[iword]==4)//如果按下了“不認識”或“下一個”鍵 ,直接跳到下一個單詞
{
result=0; //跳下一個時錯誤燈滅
ERROR=0;
hz_Num++; //測試下一個單詞
if(hz_Num==10) hz_Num=0; //最多設(shè)10個單詞
iword=0;
Nword=0;
en_disp(4,16,8,Asc," ",1); //在第5行,第17列開始顯示
}
else if(KeyNum[iword]==3) //如果按下了“上一個”鍵 ,直接跳到上一個單詞
{
result=0; //跳下一個時錯誤燈滅
ERROR=0;
//測試下一個單詞
if(hz_Num==0) hz_Num=10; //最多設(shè)10個單詞
hz_Num--;
iword=0;
Nword=0;
en_disp(4,16,8,Asc," ",1); //在第4行,第16列開始顯示
}
else if(S[hz_Num][iword]==KeyNum[iword]) //輸入的字符與測試的標(biāo)準(zhǔn)字符比較
{ temp[0]=KeyNum[iword];
ERROR=0; //正確就標(biāo)志位置0
en_disp(4,Nword+16,1,Asc,temp,1); //在第5行,第17列開始顯示
iword++;
if(iword==8) iword=0;
Nword=iword*8;
verify=1;
}
else
{ temp[0]=KeyNum[iword];
ERROR=1; //錯誤就置1
en_disp(4,Nword+16,1,Asc,temp,1); //在第5行,第17列開始顯示
iword++;
if(iword==8) iword=0;
Nword=iword*8;
}
result=ERROR|result; //0表示結(jié)果正確
}
ERR=!result; //錯誤指示燈
}
}
復(fù)制代碼
所有資料51hei提供下載:
單詞記憶測試器.rar
(81.15 KB, 下載次數(shù): 112)
2020-5-30 00:37 上傳
點擊文件名下載附件
程序和仿真
下載積分: 黑幣 -5
作者:
51hei團團
時間:
2020-5-31 15:54
好資料,51黑有你更精彩!!!
作者:
swustlx86
時間:
2020-6-1 01:40
好資料,51黑有你更精彩!!!
作者:
wswq
時間:
2020-6-13 17:11
好資料,51黑有你更精彩!!!
作者:
shdn
時間:
2020-11-2 19:00
仿真文件dsn在哪
作者:
lushuo
時間:
2021-5-9 20:26
好資料,51黑有你更精彩
作者:
吾生也有涯
時間:
2021-8-30 08:17
好資料,51黑有你更精彩!!!
作者:
2047636538
時間:
2021-12-4 16:18
好資料,51黑有你更精彩!!!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91精品国产综合久久久久久丝袜
|
干干干操操操
|
欧美久久久久久
|
精品视频久久久久久
|
伊人亚洲
|
国产99久久精品一区二区永久免费
|
国产一区二区激情视频
|
日日日视频
|
国产综合在线视频
|
欧美无乱码久久久免费午夜一区
|
久久精品一区二区三区四区
|
久久国产精品99久久久大便
|
午夜影院在线观看
|
国产精品精品久久久
|
精品粉嫩超白一线天av
|
日韩欧美综合在线视频
|
综合色在线
|
91中文字幕在线观看
|
www.伊人.com
|
久久精品国产久精国产
|
亚洲三级av
|
午夜男人天堂
|
av在线播放网
|
最近日韩中文字幕
|
99在线视频观看
|
人人亚洲
|
国产一区视频在线
|
国产第一区二区
|
精品欧美一区二区三区久久久小说
|
一区二区三区亚洲
|
人人干人人干人人干
|
国产一区二区精品
|
亚洲精品自在在线观看
|
国产精品视频一区二区三区
|
日本免费在线
|
黄色片免费在线观看
|
偷拍第一页
|
亚洲精品第一
|
伊色综合久久之综合久久
|
99色综合
|
中文字幕高清av
|