找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4186|回复: 2
收起左侧

数控直流电阻箱设计 恒流源stm32程序源码和资料

[复制链接]
ID:217883 发表于 2017-7-7 14:07 | 显示全部楼层 |阅读模式
恒流源,直流数控电阻箱设计的完整论文下载(word格式 可编辑):
比赛.docx (2.22 MB, 下载次数: 76)


单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"  
  7. #include "sram.h"   
  8. #include "malloc.h"
  9. #include "usmart.h"  
  10. #include "sdio_sdcard.h"   
  11. #include "malloc.h"
  12. #include "w25qxx.h"   
  13. #include "ff.h"  
  14. #include "exfuns.h"   
  15. #include "fontupd.h"
  16. #include "text.h"        
  17. #include "adc.h"

  18. #include "dac.h"


  19. #include "value.h"



  20. int main(void)
  21. {        
  22. //         u16 adcx;
  23. //        float temp;
  24. //        u16 dacval=0;


  25.         u8 key;
  26.         
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  28.         delay_init(168);  //初始化延时函数
  29.         uart_init(115200);                //初始化串口波特率为115200
  30.         Adc_Init();                                 //adc初始化
  31.         Dac1_Init();                                 //DAC通道1初始化        

  32.         
  33.         LED_Init();                                        //初始化LED
  34.          R_Init();            //电阻箱 输入变量,初始化
  35.          LCD_Init();                                        //LCD初始化  
  36.          KEY_Init();                                        //按键初始化  
  37.         W25QXX_Init();                                //初始化W25Q128
  38.         usmart_dev.init(168);                //初始化USMART
  39.         my_mem_init(SRAMIN);                //初始化内部内存池
  40.         my_mem_init(SRAMCCM);                //初始化CCM内存池
  41.         exfuns_init();                                //为fatfs相关变量申请内存  
  42.           f_mount(fs[0],"0:",1);                 //挂载SD卡
  43.          f_mount(fs[1],"1:",1);                 //挂载FLASH.
  44.         while(font_init())                         //检查字库
  45.         {
  46. UPD:   
  47.                 LCD_Clear(WHITE);                           //清屏
  48.                  POINT_COLOR=RED;                        //设置字体为红色                                
  49.                 LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
  50.                 while(SD_Init())                        //检测SD卡
  51.                 {
  52.                         LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
  53.                         delay_ms(200);
  54.                         LCD_Fill(30,70,200+30,70+16,WHITE);
  55.                         delay_ms(200);                    
  56.                 }                                                                                                                     
  57.                 LCD_ShowString(30,70,200,16,16,"SD Card OK");
  58.                 LCD_ShowString(30,90,200,16,16,"Font Updating...");
  59.                 key=update_font(20,110,16,"0:");//更新字库
  60.                 while(key)//更新失败               
  61.                 {                                          
  62.                         LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
  63.                         delay_ms(200);
  64.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  65.                         delay_ms(200);                       
  66.                 }                  
  67.                 LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
  68.                 delay_ms(1500);        
  69.                 LCD_Clear(WHITE);//清屏               
  70.         }  
  71.         POINT_COLOR=RED;      
  72.         Show_Str(5,10,275,24,"2017长通杯电子竞赛",24,0);        
  73.         POINT_COLOR=BLACK ;
  74.         Show_Str(30,50,200,24,"数控直流电阻箱",24,0);                                             
  75.         Show_Str(80,80,200,24,"-225实验室-",24,0);

  76.         POINT_COLOR=BLUE;//设置字体为蓝色
  77.         Show_Str(10,110,200,24,"端子电压:00.000V",24,0);
  78.         
  79.         POINT_COLOR=RED;
  80. //        LCD_ShowxNum(118,110,rely_V,2,24,0);                //显示电压值整数部分
  81. //        rely_V=6;
  82.         //LCD_ShowxNum(154,110,rely_V,1,24,0);                //显示电压值整数部分
  83.         LCD_DrawRectangle( 10,140,230,310 );        //矩形框
  84.         while(1)
  85.         {

  86.         while(MODE==0)                    

  87.         {        
  88.                
  89.                
  90.         LCD_Fill(50,180,74,204,GREEN);        
  91.         Show_Str(80,180,200,24,"跟随模式",24,0);

  92.         LCD_Fill(50,210,74,234,RED);
  93.         Show_Str(80,210,200,24,"锁定模式",24,0);                        
  94.         delay_ms(1000);
  95.                
  96.         if(KEY10==0 &&KEY9==1)
  97.         {        
  98.                 MODE=2;

  99.         }
  100.         if(KEY9==0 && KEY10==1)
  101.         {
  102.                 MODE=1;
  103.         }
  104.         if(key==U_P)  goto UPD ;

  105.         /////////////////跟随模式
  106.                         while(MODE==1)
  107.                                        
  108.                                 {        
  109.                                 LCD_Fill(15,145,225,305, WHITE);        
  110.                  while(MODE==1)        
  111.                                  {               
  112.                                         Test_V();
  113.                                         Get_resistance();
  114.                                        
  115.                                         Open_ELEC();
  116.                                                 
  117.                                                  if(KEY9==0&&KEY10==0)
  118.                                                  {
  119.                                                         MODE=0;
  120.                                                  }        
  121.                                          
  122.                                  }                                       
  123.                                 }
  124.         //////////////////锁定模式
  125.                                         while( MODE==2)
  126.                                 {               
  127.                                 LCD_Fill(15,145,225,305, WHITE);
  128.                                 
  129.                                 Test_V();
  130.                                         while(MODE==2)
  131.                                         {        
  132.                                                 
  133.                                                 Get_resistance();
  134.                                                  Open_ELEC();                                                        
  135.                                                         if(KEY9==0&&KEY10==0)
  136.                                                         {        
  137.                                                                 MODE=0;
  138. ……………………

  139. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
2017校内竞赛(直流电阻箱).7z (1.72 MB, 下载次数: 90)





评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:446454 发表于 2019-11-12 17:06 | 显示全部楼层
我想知道下载后用什么软件打开
回复

使用道具 举报

ID:913310 发表于 2021-12-4 09:03 | 显示全部楼层
Z_SIMPLE 发表于 2019-11-12 17:06
我想知道下载后用什么软件打开

keil5会好一点叭
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表