b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

完整的解决方案:单芯片矩阵键盘扫描程序

电脑杂谈  发布时间:2020-11-02 19:02:38  来源:网络整理

单片机矩阵键盘扫描程序_单片机矩阵键盘扫描程序

扫描仪#include #include #define uint unsigned int #define uchar unsigned char sbit E = P2 ^ 7; // 1602使能引脚// 1602读写引脚// 1602数据/命令选择引脚sbit RW = P2 ^ 6;比特RS = P2 ^ 5; uint keyflag; //键盘正在读取标志位。如果Keyflag为1,则表示正在读取键盘并且其他功能已停止; char x,y,m,n,c; // Keyflag为0,读完键盘后,恢复其他功能char flag1 = 0; //频率范围10〜1000Hz uchar Hrate = 0; //一个周期内高电平电平占用时间uchar Lrate = 0; //一个周期中的低级占用时间uint FREQ0; //定时器T0的计数变量// uint FREQ1; //定时器T1 /的计数变量//比特P2_1 = P2 ^ 0; //设置P2.1作为信号输出端口// uint disbuf [3];单位图= 0; int sum2 = 0; int sum1 = 0; int标志= 0; uint count = 0; uint max = 0; uint disbuf_temp = 0; / *** ********************************************* ********* *************** *名称:1602显示延迟功能delay()*功能:延迟,延迟时间约为5US。

单片机矩阵键盘扫描程序_单片机矩阵键盘扫描程序

*输入:无*输出:无******************************************* ** ************************************ / void delay(){_nop_(); _nop_(); _nop_(); _nop_(); _nop_();} / ******************************************** **** ************************ *名称:bit Busy(void)*功能:这是一个读取状态功能,是否为读取功能Busy state *输入:输入的命令值*输出:无********************************** ******** ******************************** /位Busy(void){bit busy_flag = 0; RS = 0; RW = 1; E = 1;延迟(); busy_flag =(bit)(P0&0x80); E = 0; return busy_flag;} / ************** ************** **************************************** **** *名称:wcmd(uchar del)*函数:1602命令功能*输入:输入命令值*输出:无********************* *************** *************************************** / void wcmd(uchar del){while(Busy()); RS = 0; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1; delay(); E = 0;} / ************ *************************************** *************** ****** *名称:wdata(uchar del)*功能:1602写入数据功能*输入:需要写入1602数据*输出:无* ********** ****** ************************************************ ****** **** / void wdata(uchar del){while(Busy()); RS = 1; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1; delay() ; E = 0;} / ************************************* ****** **************************** *名称:L1602_init()*函数:1602初始化,请参考1602的信息*输入:无*输出:无**************************** ****************** *************************** / void L1602_init(void ){wcmd(0x38); wcmd(0x0c); wcmd(0x06); wcmd(0x01);} / ************************************** **** ********************************** *名称:L1602_char(uchar hang,uchar lie,char sign)*功能:更改LCD对于某个位的值,如果希望第一行和第五个字符显示“ b”,请按以下方式调用该函数:L1602_char(1,5,'b')*输入:行,列,您需要输入1602数据*输出:否******************************************* ********** ********************** / void L1602_char(uchar hang,uchar lie,char sign){uchar a; if (hang ==1) a = 0x80; if(hang ==2)a = 0xc0; a = a + lie-1; wcmd(a); wdata(sign);} / ******* ********** ******************************************** *** ******** *名称:L1602_string(uchar hang,uchar lie,uchar * p)*功能:如果要在第一行,第五行进行更改,请在LCD上更改一位的值字符开始显示“ ab cd ef”,函数调用如下:L1602_string(1,5,“ ab cd ef;”)*输入:行,列,1602数据需要输入*输出:否************** **************************************** ************** ******* / void L1602_string(uchar hang,uchar lie,uchar * p){uchar a,b = 0; if(hang ==1) a = 0x80; if(hang ==2)a = 0xc0; a = a + lie-1; while(1){wcmd(a ++); b ++; if((** p =='\ 0')||(b == 16))中断; wdata(* p); p ++;}} / ******************* ********************* **************************** *名称:1602 LCD显示屏*功能:显示占空比值和频率值*输入:无*输出:无/ ************************** ********************** ************************ / void ShowNum() {if(max ==2){L1602_char(2,6,sum2 / 10 + 0x30); L1602_char(2,7,sum2 + 0x30); L1602_char(2,8,'%');} if(max ==3){L1602_char(1,6,sum1 / 100 + 0x30); L1602_char(1,7,sum10 / 10 + 0x30); L1602_char(1,8,sum10 + 0x30);} L1602_char(1,11,''); L1602_char(1,12,'');} / ************************* *********** ************************************ *名称:Delay_1ms()*功能:Delay子例程,延迟时间为1ms * x *输入:x(延迟时间为一毫秒)*输出:无********************* ******** ********************************************* / void Delay_1ms(uint i)// 1ms延迟{uch ar x,j; for(j = 0; j =0) &&(j


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-330429-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...