⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 采用C8051F410 的模数转换
💻 LST
📖 第 1 页 / 共 2 页
字号:
 190   2            if(i<128)
 191   2            {
 192   3               y=32*i;
 193   3            }
 194   2            else if(i==128)
 195   2            {
 196   3               y=4095;
 197   3            }
 198   2            else
 199   2            {
 200   3               y=4096-(i-128)*32;
 201   3            }
 202   2            TABLE[i]=y;
 203   2         }
 204   1      }
 205          
 206          /***********************************************************************************
 207          * 函数名称:square;
 208          *
 209          * 函数功能描述:计算方波;
 210          *              
 211          * 输入参数:none;
 212          *
 213          * 返回数据:none;
 214          *
 215          * 注意:    none;
 216          ************************************************************************************/
 217          
 218          void square(void)
 219          {
 220   1         unsigned int data y;
 221   1         unsigned int data i;
 222   1         for(i=0;i<256;i++)
 223   1         {
 224   2            if(i<128)
 225   2               y=0x0000;
 226   2            else
 227   2               y=0x0fff;
 228   2            TABLE[i]=y;
 229   2         }
 230   1      }
 231          
 232          /***********************************************************************************
 233          * 函数名称:none;
 234          *
 235          * 函数功能描述:输出为0;
 236          *              
 237          * 输入参数:none;
 238          *
 239          * 返回数据:none;
 240          *
 241          * 注意:    none;
C51 COMPILER V7.02b   MAIN                                                                 03/06/2006 15:01:38 PAGE 5   

 242          ************************************************************************************/
 243          
 244          void none(void)
 245          {
 246   1         unsigned int data i;
 247   1         for(i=0;i<256;i++)
 248   1         {
 249   2            TABLE[i]=0;
 250   2         }
 251   1      }
 252          
 253          /***********************************************************************************
 254          * 函数名称:Timer4_ISR;
 255          *
 256          * 函数功能描述:定时器4中断响应;
 257          *              
 258          * 输入参数:none;
 259          *
 260          * 返回数据:none;
 261          *
 262          * 注意:    none;
 263          ************************************************************************************/
 264          
 265          void Timer4_ISR (void) interrupt 16 using 3
 266          {    
 267   1         unsigned int xdata temp;
 268   1      // unsigned char key0;
 269   1         char data SFRPAGE_SAVE = SFRPAGE;     // Save Current SFR page
 270   1          SFRPAGE = SFR_PAGE_2;           // set SFR page
 271   1      
 272   1      
 273   1         TMR4CN &= ~0x80;                  // 清除T4溢出标志
 274   1      
 275   1         
 276   1         SFRPAGE = SFR_PAGE_0;           // set SFR page
 277   1         temp=TABLE[sf];
 278   1         DAC0L=temp&0x00ff;   
 279   1         temp>>=8;
 280   1         DAC0H=temp; 
 281   1         
 282   1         SFRPAGE = SFR_PAGE_1;           // set SFR page
 283   1         temp=TABLE[sf];
 284   1         DAC1L=temp&0x00ff;
 285   1         temp>>=8;
 286   1         DAC1H=temp;
 287   1         if(sf==255)
 288   1         {
 289   2            sf=0;
 290   2         }
 291   1         else
 292   1            sf++;
 293   1      
 294   1         SFRPAGE = SFRPAGE_SAVE;          // Restore SFR page
 295   1      }
 296          
 297          
 298          /************************************************************************************
 299          //  主循环程序
 300          *************************************************************************************/
 301          
 302          void main (void) {
 303   1       
C51 COMPILER V7.02b   MAIN                                                                 03/06/2006 15:01:38 PAGE 6   

 304   1         unsigned char key;
 305   1      
 306   1          WDTCN = 0xde;                    
 307   1          WDTCN = 0xad;
 308   1      
 309   1          
 310   1          PORT_Init();
 311   1      
 312   1         lcd_init();
 313   1         dis_full();
 314   1         dis_clr();
 315   1         dis_start0();
 316   1      
 317   1         SYSCLK_Init();
 318   1         Uart0_Init(57600);
 319   1         Uart0_SendString("DAC test program running!\r\n");  
 320   1      
 321   1         Key_Init(); 
 322   1         DAC0_Init();
 323   1         DAC1_Init();
 324   1      
 325   1         while(1)
 326   1         {
 327   2            key=GetKey();            //调用键盘扫描函数,返回的键值送变量key
 328   2      
 329   2            if(key!=0xFF)
 330   2            {
 331   3               EA=0;
 332   3               Alarm(1);      //响铃
 333   3               Delay_ms(50);
 334   3               Alarm(0);      //关闭铃声
 335   3      
 336   3               switch (key)
 337   3               {
 338   4                  case 0x0a://a
 339   4                     Uart0_SendString("Wave-form:square; Freq = 250Hz; \r\n"); 
 340   4                     square();                
 341   4                     break;
 342   4                  case 0x0b://b
 343   4                     Uart0_SendString("Wave-form:sine; Freq = 250Hz; \r\n");
 344   4                     sine();
 345   4                     break;
 346   4                  case 0x0c://c
 347   4                     Uart0_SendString("Wave-form:triangle; Freq = 250Hz; \r\n");
 348   4                     triangle();
 349   4                     break;
 350   4                  case 0x0d://d
 351   4                     Uart0_SendString("Wave-form:saw; Freq = 250Hz; \r\n");
 352   4                     saw();
 353   4                     break;            
 354   4                  default:  
 355   4                     //none();
 356   4                     break;
 357   4               }
 358   3               Delay_ms(5);
 359   3               Timer4_Init(64000);// 初始化T4产生DAC0                        
 360   3                  EA = 1;                    // 打开全局中断
 361   3               
 362   3            }
 363   2               
 364   2         }
 365   1      }
C51 COMPILER V7.02b   MAIN                                                                 03/06/2006 15:01:38 PAGE 7   

 366          
 367          /***********************************************************************************/
 368          // 文件结束
 369          /***********************************************************************************/
 370          
 371          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    804    ----
   CONSTANT SIZE    =    165    ----
   XDATA SIZE       =    512       1
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      23
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -