赞
踩
点击Yes,代表认识这个单词,并记录下来。
点击No,代表你不认识这个单词。
点击Next,代表查看下一个单词。
点击Back,代表查看上一个单词。
点击Result代表查看目前为止,你认识的单词的正确率。
K5中的程序代码:
#include<reg51.h> #define uint unsigned int//定义类型 #define uchar unsigned char sbit rs=P2^0; sbit rw=P2^1; sbit en=P2^2; sbit yes=P3^0; sbit no=P3^1; sbit next=P3^2; sbit back=P3^3; sbit res=P3^4; sbit reset=P3^5; //uchar code tab[]={"first","second","third","forth","fifth","sixth","seventh","eighth","ninth","tenth"}; //uchar code order[]={"The first word "}; uchar code words[11][16]={ {" hello "}, {" world "}, {" blunder "}, {" benefactor "}, {" bleak "}, {" secure "}, {" caloric "}, {" chaos "}, {" precede "}, {" captain "}, {" end "}, }; uchar code sequence[11][16]={ {" 1 "}, {" 2 "}, {" 3 "}, {" 4 "}, {" 5 "}, {" 6 "}, {" 7 "}, {" 8 "}, {" 9 "}, {" 10 "}, {" end "} }; uchar code result[11][16]={ {"Correct == 0%"}, {"Correct == 10%"}, {"Correct == 20%"}, {"Correct == 30%"}, {"Correct == 40%"}, {"Correct == 50%"}, {"Correct == 60%"}, {"Correct == 70%"}, {"Correct == 80%"}, {"Correct == 90%"}, {"Correct == 100%"} }; uchar code tip[16]={"The Result IS :"}; void delay(uint xms);//函数声明 void write_com(uchar com); void write_data(uchar dat); uint i=0; uint count=0; uint correct=0; void main() { //----------------------------------------------- write_com(0x01);//清屏指令 write_com(0x06);//光标向右移动 write_com(0x0c);//显示功能开,无光标,不闪烁 write_com(0x38);//数据总线8位,显示2行数据 //--------------------------------------------- write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } write_com(0xc0); for(i=0;i<16;i++) { write_data(sequence[count][i]); } while(1) { if(yes==0 || no==0 || next==0 || back==0 || res==0 || reset==0) { delay(5); if(yes==0 || no==0 || next==0 || back==0 ||res==0 || reset==0) { if(next==0) { count++; //边界限制 if(count==11) { count=10; } //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } //从第二行的第一个位置开始写顺序 write_com(0xc0); { for(i=0;i<16;i++) { write_data(sequence[count][i]); } } while(!next); } if(back==0) { //边界限制 count--; if(count==-1) { count=0; } //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } //从第二行的第一个位置开始写顺序 write_com(0xc0); { for(i=0;i<16;i++) { write_data(sequence[count][i]); } } while(!back); } if(yes==0) { count++; if(count==11) { count=10; } correct++; if(correct>=11) { correct=10; } //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } //从第二行的第一个位置开始写顺序 write_com(0xc0); { for(i=0;i<16;i++) { write_data(sequence[count][i]); } } while(!yes); } if(no==0) { count++; if(count==11) { count=10; } //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } //从第二行的第一个位置开始写顺序 write_com(0xc0); { for(i=0;i<16;i++) { write_data(sequence[count][i]); } } while(!no); } if(res==0) { //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(tip[i]); } write_com(0xc0); for(i=0;i<16;i++) { write_data(result[correct][i]); } while(!res); } if(reset==0) { count=0; correct=0; //从第一行的第一个位置开始写数据 write_com(0x80); //写数据 for(i=0;i<16;i++) { write_data(words[count][i]); } //从第一行的第一个位置开始写位置 write_com(0xc0); //写数据 for(i=0;i<16;i++) { write_data(sequence[count][i]); } while(!reset); } } } } } //写入命令 void write_com(uchar com) { en=0;//初始状态E设置为0 //R/W为读写信号,高电平时进行读操作,低电平时进行写操作 rw=0;//低电平进行写操作 //RS数据、命令选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器 rs=0;//指令寄存器 P1=com;//将要写的命令送到P0口 //en是E引脚,E为使能端,当E由高电平跳变成低电平时,液晶显示模块执行指令 en=1; delay(5);//稍作延时 en=0; } //写入内容 void write_data(uchar dat) { en=0; rw=0; rs=1;//数据寄存器 P1=dat;//将要写的内容送到P0口 en=1; delay(5);//稍作延时 en=0; } //延时 void delay(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); }
功能设计:点击Yes,表示认识这个单词,并记录为认识
点击No,表示不认识这个单词,并记录为不认识
点击Next,表示查看下一个单词,并不做记录
点击Back,表示查看上一个单词,并不做记录
点击Result,表示查看当前结果
点击Reset,表示重新开始
如果您感觉这篇文章有帮助,希望大家可以点个赞,支持一下。
您的支持,就是我的动力。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。