




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-作者xxxx-日期xxxx数控直流电流源程序【精品文档】/*跳线说明:1)将EXP-LM3S811板卡上JP9、JP13跳至左侧(短接1-2);2)将EXP-min_system_board板卡上JP13、JP14、JP15、JP16跳至右侧(短接2-3。操作过程:1)将EXP-min_system_board板卡上K1拨动开关拨至ON状态,给液晶上电;2)调节RP1电位器,使液晶有合适的背光;3)上电,编译并下载程序,复位后全速运行程序;观察液晶显示的内容,再修改程序使之显示自己的内容。*/#include systemInit.h#include ADS7886.h#include TL
2、V5616.h#include timer.h#define CTL_PERIPH SYSCTL_PERIPH_GPIOC /控制液晶所用的片内端口外设定义#define CTL_PORT GPIO_PORTC_BASE#defineSCK GPIO_PIN_4 / 定义信号SCK#defineSID GPIO_PIN_5 / 定义信号SID#define CS GPIO_PIN_6 / 定义信号CS#define PSB GPIO_PIN_7 / 定义信号PSB#define SCK_LGPIOPinWrite(CTL_PORT,SCK,0x00) /定义信号输出低电平#define SID
3、_LGPIOPinWrite(CTL_PORT,SID,0x00) #define CS_LGPIOPinWrite(CTL_PORT,CS,0x00)#define PSB_LGPIOPinWrite(CTL_PORT,PSB,0x00)#define SCK_HGPIOPinWrite(CTL_PORT,SCK,0xFF)/定义信号输出高电平#define SID_HGPIOPinWrite(CTL_PORT,SID,0xFF) #define CS_HGPIOPinWrite(CTL_PORT,CS,0xFF)#define PSB_HGPIOPinWrite(CTL_PORT,PSB,
4、0xFF)#define SID_READ GPIOPinRead(CTL_PORT,SID)/定义读回的数据#define SID_IN GPIOPinTypeGPIOInput(CTL_PORT,SID)/定义SID信号为输入#define SID_OUT GPIOPinTypeGPIOOutput(CTL_PORT,SID)/定义SID信号为输出#define LED_PERIPH SYSCTL_PERIPH_GPIOB#define LED_PORT GPIO_PORTB_BASE#define LED GPIO_PIN_5#define KEY_PERIPH SYSCTL_PERIP
5、H_GPIOD /KEYS所接的端口#define KEY_PORT GPIO_PORTD_BASE#define KEY GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0#define KEY_HGPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4#define KEY_LGPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0#define key_h_in GPIOPinTypeGPIOInput(K
6、EY_PORT,KEY_H)#define key_l_in GPIOPinTypeGPIOInput(KEY_PORT,KEY_L)#define key_h_out GPIOPinTypeGPIOOutput(KEY_PORT,KEY_H)#define key_l_out GPIOPinTypeGPIOOutput(KEY_PORT,KEY_L)#define SysCtlPeriClkGatingSysCtlPeripheralClockGating /定义睡眠函数#define SysCtlPeriSlpEnableSysCtlPeripheralSleepEnable #defin
7、e BitRate 115200 / 设定SPI的波特率#define DataWidth 8 / 设定SPI的数据宽度 unsigned char AC_TABLE=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, /第一行汉字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, /第二行汉字位置 ;/开始菜单 欢迎界面unsigned char Hello1=欢迎使用数控 ;unsigned char Hello2=直流电流源 ;unsigned char Hello3=制作人: ;unsigned char Hello4=c
8、henfangjie;/一级菜单1unsigned char menu1_1=请输入(202000):; /选择提示unsigned char menu1_2=设值: mA ;/一级菜单1unsigned char menu2_1=设定值: mA; /选择提示unsigned char menu2_2=读取值: A;unsigned char key_val=0;/键值全局变量int A;void keyBoardInit(void)SysCtlPeripheralEnable(KEY_PERIPH); /D口使能开GPIOPinTypeGPIOOutput(KEY_PORT,KEY_H);
9、/扫描信号输出GPIOPinTypeGPIOInput(KEY_PORT,KEY_L);/按键信号输入/键盘扫描程序void keyBoard_scan(void)/如下依次输出行扫描线 /如果有键按下则扫描列线,并获得键值/按键释放判断 unsigned char key_h,key_l;key_val=0;key_l_out;key_h_out; GPIOPinWrite(KEY_PORT,KEY,0xf0); key_h_in; key_h=GPIOPinRead(KEY_PORT,KEY_H);if(GPIOPinRead(KEY_PORT,KEY_H)&0xf0)!=0xf0) Sy
10、sCtlDelay(5*(TheSysClock/3000);if(GPIOPinRead(KEY_PORT,KEY_H)&0xf0)!=0xf0)key_h=GPIOPinRead(KEY_PORT,KEY_H)&0xf0;key_h_out; key_l_out; GPIOPinWrite(KEY_PORT,KEY,0x0f); key_l_in; key_l=GPIOPinRead(KEY_PORT,KEY_L)&0x0f; key_val=key_h+key_l; while(key_l!=0x0f) key_l=GPIOPinRead(KEY_PORT,KEY_L)&0x0f; sw
11、itch(key_val) case 0xe7: key_val=13;break;case 0xeb: key_val=9;break;case 0xed: key_val=5;break;case 0xee: key_val=1;break;case 0xd7: key_val=14;break;case 0xdb: key_val=10;break;case 0xdd: key_val=6;break;case 0xde: key_val=2;break;case 0xb7: key_val=15;break;case 0xbb: key_val=11;break;case 0xbd:
12、key_val=7;break;case 0xbe: key_val=3;break;case 0x77: key_val=16;break;case 0x7b: key_val=12;break;case 0x7d: key_val=8;break;case 0x7e: key_val=4;break; /LCM端口初始化void init(void) SysCtlPeripheralEnable( CTL_PERIPH); /使能所用的端口 GPIODirModeSet(CTL_PORT, (SCK | PSB | CS ) ,GPIO_DIR_MODE_OUT); /设置信号的方向GPI
13、OPadConfigSet(CTL_PORT, (SCK | PSB | CS ), GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD_WPU); /设置IO的驱动能力SysCtlPeripheralEnable(LED_PERIPH); GPIOPinTypeGPIOOutput(LED_PORT, LED); GPIOPadConfigSet(LED_PORT, LED, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD_WPU);/串行方式发送一个字节void SendByte(unsigned char Dbyte) unsigned c
14、har i ; for(i=0 ;i 8 ;i+) SCK_L ; SID_OUT; if (Dbyte & 0x80) SID_H; else SID_L; Dbyte=Dbyte1; SCK_H; SCK_L; /串行方式接收一个字节unsigned char ReceiveByte(void) unsigned char i,temp1,t,temp2; temp1=temp2=0; for(i=0;i8;i+) temp1=temp11; SCK_L; SCK_H; SCK_L; SID_IN; t=SID_READ; if (t) temp1+; for(i=0 ;i8 ;i+) t
15、emp2=temp21; SCK_L; SCK_H; SCK_L; SID_IN; t=SID_READ; if (t) temp2+; return (0xf0&temp1)+(0x0f&temp2);/判断是否忙碌void CheckBusy( void ) do SendByte(0xfc); /字节格式:11111,RW(1),RS(0),0 while(0x80&ReceiveByte();/判断是否忙碌:BF(.7)=1 Busy/向液晶发送命令void WriteCommand( unsigned char Cbyte ) CS_H; CheckBusy(); SendByte(
16、0xf8); /字节格式:11111,RW(0),RS(0),0 SendByte(0xf0&Cbyte); /高四位 SendByte(0xf0&Cbyte4);/低四位(先执行 ; ;) CS_L;/向液晶发送显示数据void WriteData( unsigned char Dbyte ) /显示字符 CS_H; CheckBusy(); SendByte(0xfa); /字节格式:11111,RW(0),RS(1),0 SendByte(0xf0&Dbyte); /高四位 SendByte(0xf0&Dbyte4);/低四位(先执行 ; ;) CS_L;/延时函数void Delay(
17、unsigned int MS) unsigned char us,usn; while(MS!=0) usn = 2; while(usn!=0) us=0xf5 ; while (us!=0)us- ; usn-; MS-; /维捷登测试架专用延时函数void DelayKey(unsigned int Second , unsigned int MS100) /输入精确到0.1S,是用, unsigned int i; for(i=0 ;iSecond*100+MS100*10 ;i+) Delay(10) ; /文本区清RAM函数void LcmClearTXT( void ) uns
18、igned char i ; WriteCommand(0x30); /8BitMCU,基本指令集合 WriteCommand(0x80); /AC归起始位 for(i=0 ;i2000)DisplayMenu1_1();for(j=0;j=20&A=100&A=1000&A=2000)a0=A/1000+0x30;a1=A/100%10+0x30;a2=A/10%10+0x30;a3=A%10+0x30;PutStr(0,4,a);v=(int)(float)A/1000/2.5)*4096);DA_Write(v);AD_Display();DisplayMenu1_1();/ 主函数(程序入口)int main(void)jtagWait();/JTAG口解锁函数 clockInit(); / 时钟初始化 init();/端口初始化 PSB_L; /串行方式 Delay(100);/ 延时LcmInit();/液晶初始化keyBoardInit(); / 键盘初始化DA_Init();AD_Init();/SysCtlPeriClkGating(true); / 允许在睡眠模式下外设采用寄存器SCGCn配置时钟 /SysCtlPeriSlpEnable(KEY_PERIPH); /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年唐山安全培训考试题及答案
- 2025年建筑装饰材料设计师职业技能评定试题及答案解析
- 2025年建筑设备安装工程师执业资格考试试题及答案解析
- 2025年计算机硬件工程师专业资格考试试题及答案解析
- 2025年安全员岗位换新安全知识题库
- 机电设备管理知识培训课件
- 机电行业外贸知识培训课件
- 2025年广播节目主持人国家职业资格考试试题及答案解析
- 2025年特殊教育师资格模拟题
- 2025年安全长助理笔试通关模拟题
- 2025北师大版七年级数学下册期末综合素质测试卷
- 机器人学导论 课件全套 王伟 第1-5章-绪论 -操作臂的控制方法
- 2025至2030年中国稀奶油市场分析及竞争策略研究报告
- DB11T 695-2025 建筑工程资料管理规程
- 高考补习学生管理制度
- 检验科三基培训
- 占用林地补偿协议书
- 信息技术智能办公教程 课件 任务5-邮件合并
- 中建三局项目商务策划书(23P)
- 高一数学必修一必修二各章知识点总结
- 《拆装液压系统》课件
评论
0/150
提交评论