单片机原理及应用 课程实验(二)
实验项目:MSP430简单程序设计
实验目的:学会用C语言进行简单程序设计
实验要求:掌握编写排序程序
实验内容:
(1)设计一个对8个数据(0-255,任意设置)的由小到大排序程序。
(2)将结果显示在LCD显示器上。
程序代码如下:
#include #include "Config.h" #include #include #include int ans; // 全局变量控制输出 // 初始化IO口子程序 void Port_init() { P4SEL = 0x00; P4DIR = 0xFF; //数据口输出模式 P5SEL = 0x00; P5DIR|= BIT5 + BIT6 + BIT7; //控制口设置为输出模式 } // 显示屏命令写入函数 void LCD_write_com(unsigned char com) { RS_CLR; RW_CLR; EN_SET; DataPort = com; //命令写入端口 delay_ms(5); EN_CLR; } // 显示屏数据写入函数 void LCD_write_data(unsigned char data) { RS_SET; RW_CLR; EN_SET; DataPort = data; //数据写入端口 delay_ms(5); EN_CLR; } // 显示屏清空显示 void LCD_clear() { LCD_write_com(0x01); //清屏幕显示 ans = 0; //ans清零 delay_ms(100); } // 显示屏字符串写入函数 void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) { if(ans<16) LCD_write_com(0x80 + x); //第一行显示 else LCD_write_com(0xC0 + x); //第二行显示 while(*s) { LCD_write_data(*s); s++; } } // 显示屏初始化函数 void LCD_init() { ans = 0; LCD_write_com(0x38); //显示模式设置 delay_ms(5); LCD_write_com(0x08); //显示关闭 delay_ms(5); LCD_write_com(0x01); //显示清屏 delay_ms(5); LCD_write_com(0x06); //显示光标移动设置 delay_ms(5); LCD_write_com(0x0C); //显示开及光标设置 delay_ms(5); } // 主程序 void main(void) { WDT_Init(); //看门狗设置 Clock_Init(); //系统时钟设置 Port_init(); //系统初始化,设置IO口属性 delay_ms(100); //延时100ms LCD_init(); //液晶参数初始化设置 LCD_clear(); //清屏 int a[8]={12,123,22,2,1,125,19,3};//自己定义数据 int i, j; //对数据进行排序 for(i=0;i<8;i++) { for(j=0;j<7-i;j++) { if(a[j]>a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } while (1) { //字符串输出显示 LCD_clear(); ans = 0; int k = 0; for(i=0;i<15;i++) { char str[3]; if(i%2==0) { if(a[k]/100==0) //不够三位数字 { if(a[k]/10==0) //只有一位数字 { str[2] = a[k]%10+'0'; str[0] = str[1] = '0'; } else //两位数字 { str[2] = a[k]%10+'0'; str[0] = '0'; str[1] = a[k]/10+'0'; } } else //三位数字 { str[2] = a[k]%10+'0'; str[0] = a[k]/100+'0'; str[1] = a[k]%100/10+'0'; } LCD_write_str(ans%16,ans/16, str); k++; ans += 3; } else { LCD_write_str(ans%16,ans/16,"<"); ans++; } } delay_ms(2000); } }
上一篇:实验二:MSP430简单程序设计
下一篇:MSP430 开发中遇到的坑(待续)
推荐阅读最新更新时间:2024-11-06 10:24
设计资源 培训 开发板 精华推荐
- EVAL-ADF7012DBZ4,ADF7012 ISM 频段发射器评估板,单芯片低功耗 UHF 发射器
- LTC1878EMS8 演示板、高效率单片式同步降压稳压器、2.65V 至 6V 输入、1.8Vout @ 200mA
- PCA9617A 电平转换 Fm+ I2C 总线中继器的典型系列应用
- esp32和oled的游戏机大
- LT1118-2.5 电源分配器
- LT6656BCDC-2.048、2.048V 低功率精密高压电源监视器的典型应用
- EVAL-AD5686RSDZ,使用 AD5686R、16 位、四通道电压输出数模转换器的评估板
- TLE 4263 5V 低压降稳压器的典型应用
- LT3972 的典型应用 - 具有 75uA 静态电流的 33V、3.5A、2.4MHz 降压型开关稳压器
- OpenMV转接板
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位