为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算器程序

2017-09-20 16页 doc 48KB 22阅读

用户头像

is_358746

暂无简介

举报
计算器程序1、GPIOLEDDlg.cpp程序代码 m_hDev=CreateFile(_T("GIO1:"),GENERIC_WRITE,0,NUL L,OPEN_EXISTING,0,0); if(m_hDev==INVALID_HANDLE_VALUE) {   AfxMessageBox(_T("打开设备失败")); }   m_hDev1=CreateFile(_T("LED2:"),GENERIC_WRITE,0,NU LL,OPEN_EXISTING,0,0); if(m_hDev==INVALID_HAN...
计算器程序
1、GPIOLEDDlg.cpp程序代码 m_hDev=CreateFile(_T("GIO1:"),GENERIC_WRITE,0,NUL L,OPEN_EXISTING,0,0); if(m_hDev==INVALID_HANDLE_VALUE) {   AfxMessageBox(_T("打开设备失败")); }   m_hDev1=CreateFile(_T("LED2:"),GENERIC_WRITE,0,NU LL,OPEN_EXISTING,0,0); if(m_hDev==INVALID_HANDLE_VALUE) {   AfxMessageBox(_T("打开设备失败")); }     return TRUE;  // return TRUE  unless you set the focus to a control } void CGPIOLEDDlg::OnButton1()  { // TODO: Add your control notification handler code here //设置LED灯亮 KillTimer(1); KillTimer(2); KillTimer(3); KillTimer(4); m_bValue=FALSE; WriteFile(m_hDev,&m_bValue,4,&m_dwBytes,NULL);   } void CGPIOLEDDlg::OnButton2()  { // TODO: Add your control notification handler code here //设置LED灯熄灭 KillTimer(1); KillTimer(2); KillTimer(3); KillTimer(4); m_bValue=TRUE; WriteFile(m_hDev,&m_bValue,4,&m_dwBytes,NULL);   } void CGPIOLEDDlg::OnButton3()  { // TODO: Add your control notification handler code here m_cla=0;     m_bValue=FALSE; KillTimer(2); KillTimer(3); KillTimer(4); SetTimer(1,1000,NULL); } void CGPIOLEDDlg::OnTimer(UINT nIDEvent)  { // TODO: Add your message handler code here and/or call default if(nIDEvent==1) {   //设置LED闪烁     m_cla=m_cla+1;   if(m_bValue==FALSE)   {   if(m_cla==m_s1)   {       m_bValue=TRUE;                 m_cla=0;   }   }     if(m_bValue==TRUE)   { if(m_cla==m_s2)   {       m_bValue=FALSE;                 m_cla=0;   }   }     WriteFile(m_hDev,&m_bValue,4,&m_dwBytes,NULL); } if(nIDEvent==2) {   //LED的循环   BYTE data2[4]={0,0,0,0};         DWORD bytes;   m_cla=m_cla+1;   if(m_bValue==1)   {   if(m_cla==m_s1)   {     WriteFile(m_hDev1,data2,4,&bytes,NULL);     m_cla=0; m_bValue=0; }   }   else   {   if(m_cla==m_s1)   {     WriteFile(m_hDev1,data,4,&bytes,NULL);     m_cla=0;     m_bValue=1;   }   } } if(nIDEvent==3) {   //LED的单闪   BYTE data2[4]={data[0],0x00,0x00,0x00};     BYTE data3[4]={0x00,data[1],0x00,0x00};   BYTE data4[4]={0x00,0x00,data[2],0x00};   BYTE data5[4]={0x00,0x00,0x00,data[3]};   DWORD bytes; m_cla=m_cla+1; if(m_cla==m_s1)   {   if(i>3)   {     i=0;   }         if(i==0)   {       WriteFile(m_hDev1,data2,4,&bytes,NULL);   }       if(i==1)   {       WriteFile(m_hDev1,data3,4,&bytes,NULL);   }       if(i==2)   {       WriteFile(m_hDev1,data4,4,&bytes,NULL);   }       if(i==3)   {       WriteFile(m_hDev1,data5,4,&bytes,NULL); }         i=i+1;   m_cla=0;   } } if(nIDEvent==4) {   //LED的右移   BYTE a;   DWORD bytes;   m_cla=m_cla+1;   if(m_cla==m_s1)   {   a=data[3];   data[3]=data[2];   data[2]=data[1];   data[1]=data[0];   data[0]=a;   WriteFile(m_hDev1,data,4,&bytes,NULL);   m_cla=0;   } }   CDialog::OnTimer(nIDEvent); } void CGPIOLEDDlg::OnButton4()  { // TODO: Add your control notification handler code here BOOL b1,b2; UINT q; UINT val1=GetDlgItemInt(IDC_EDIT1,&b1,FALSE); UINT val2=GetDlgItemInt(IDC_EDIT2,&b2,FALSE); m_s1=0; m_s2=0; data[0]=0; data[1]=0; data[2]=0; data[3]=0; //获取Edit框的 memset(data,0,2); if(b1) {   int i1,n1;   char str1[16];   n1=sprintf(str1,"%d",val1);   n1=n1>2?2:n1;   for(i1=0;i12?2:n2;   for(i2=0;i24?4:n1;   for(i1=0;i14?4:n2;   for(i2=0;i24?4:n; if(str[3]==0) {   q=1; }   if(str[2]==0) {   q=2; }   if(str[1]==0) {   q=3; } for (i=q;i4?4:n; if(str[3]==0) {   q=1; }   if(str[2]==0) {   q=2; }   if(str[1]==0) {   q=3; }   for (i=q;i4?4:n; if(str[3]==0) {   q=1; }   if(str[2]==0) {   q=2; }   if(str[1]==0) {   q=3; }   for (i=q;i4?4:n; if(str[3]==0) {   q=1; }   if(str[2]==0) {   q=2; }   if(str[1]==0) {   q=3; }   for (i=q;i4?4:n;   if(str[3]==0) {   q=1; }   if(str[2]==0) {   q=2; }   if(str[1]==0) {   q=3; } for (i=q;i9999) {   m=m-m/10000*10000; } m1=m/1000; m2=(m-m1*1000)/100; m3=(m-m1*1000-m2*100)/10; m4=m-m1*1000-m2*100-m3*10; } if(ii==2) { m=data[0]*1000+data[1]*100+data[2]*10+data[3]-data2[0]*1 000-data2[1]*100-data2[2]*10-data2[3];   if(m>9999) {   m=m-m/10000*10000; } m1=m/1000; m2=(m-m1*1000)/100; m3=(m-m1*1000-m2*100)/10; m4=m-m1*1000-m2*100-m3*10; } if(ii==3) { m=(data[0]*1000+data[1]*100+data[2]*10+data[3])*(data2[0] *1000+data2[1]*100+data2[2]*10+data2[3]);   if(m>9999) {   m=m-m/10000*10000; } m1=m/1000; m2=(m-m1*1000)/100; m3=(m-m1*1000-m2*100)/10; m4=m-m1*1000-m2*100-m3*10; }   if(ii==4) { m=(data[0]*1000+data[1]*100+data[2]*10+data[3])/(data2[0] *1000+data2[1]*100+data2[2]*10+data2[3]); if(m>9999) {   m=m-m/10000*10000; } m1=m/1000; m2=(m-m1*1000)/100; m3=(m-m1*1000-m2*100)/10; m4=m-m1*1000-m2*100-m3*10; } data[0]=ledfont[m1]; data[1]=ledfont[m2]; data[2]=ledfont[m3]; data[3]=ledfont[m4]; WriteFile(m_hDev1,data,4,&bytes,NULL); SetDlgItemInt(IDC_EDIT7,m);  } void CGPIOLEDDlg::OnButton9()  { // TODO: Add your control notification handler code here DWORD bytes; m_bValue=1; m_cla=0; WriteFile(m_hDev1,data,4,&bytes,NULL); KillTimer(1); KillTimer(2); KillTimer(4); SetTimer(3,1000,NULL); } void CGPIOLEDDlg::OnButton8()  { // TODO: Add your control notification handler code here DWORD bytes; m_bValue=1; m_cla=0; WriteFile(m_hDev1,data,4,&bytes,NULL); KillTimer(1); KillTimer(2); KillTimer(3); SetTimer(4,1000,NULL); } 2、GPIOLEDDlg.h程序代码 const BYTE ledfont[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; class CDigiDlg : public CDialog { // Construction public: CGPIOLEDDlg(CWnd* pParent = NULL); // standard constructor HANDLE m_hDev;  //声明一个句柄 用来接收WriteFile的返 回值 BOOL m_bValue;  //m-bValue是一个二进制的变量 用来控 制LED的状态 DWORD m_dwBytes;  //声明了一个双字类型的变量 用作 WriteFile的参数 UINT m_cla;  //计数器的计数时间参数 BYTE data[4];  //文本框输入数据     BYTE data1[4];  //LED时间控制文本框输入数据 HANDLE m_hDev1;  //声明一个句柄 用来接收CreateFile 的返回值 DWORD m_dwWrittenBytes;  //声明了一个双字类型的变 量 用作CreateFile的参数 UINT m_s1;  //亮灯时间 UINT m_s2;  //灭灯时间 UINT i;  //循环计数 UINT ii;  //记录运算类型
/
本文档为【计算器程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索