自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (4)
  • 收藏
  • 关注

基于状态机的单片机按键程序

基于状态机的单片机按键程序,减少cpu时间损耗,可方便应用于单片机开发项目上

2012-10-13

快速排序算法

快速排序算法(C语言版) #include <stdio.h> #include "type.h" #define Q_SIZE 10 /************************************* 模块内部数组或变量定义 **************************************/ static UINT8 q_array[Q_SIZE] = {0}; //static UINT8 m_array_tmp[M_SIZE] = {0}; /* 辅助数组,存放排序的中间结果 */ /************************************* 函数定义 **************************************/ /******************************************************************************************* 函数名:UINT8 splt( UINT8 * m_ptr, UINT8 q_low, UINT8 q_high, UINT8 q_pos ) 入口参数列表:m_ptr, q_pos 入口参数描述:数组的地址,数组的首元素和尾元素位置,指向主元位置的指针 返回值描述:无 函数功能:使数组经过排列后小于或等于x的元素在x前面,x在大于它的元素前面(x = q_array[*q_pos]) ********************************************************************************************/ UINT8 splt( UINT8 * q_ptr, SINT8 q_low, SINT8 q_high ) { UINT8 x = 0; SINT8 i = 0; SINT8 j = 0; UINT8 q_tmp = 0; i = q_low; x = q_ptr[q_low]; for (j = q_low + 1; j <= q_high; j++) { if (q_ptr[j] <= x) { i++; if (i != j) { q_tmp = q_ptr[i]; q_ptr[i] = q_ptr[j]; q_ptr[j] = q_tmp; } } } q_tmp = q_ptr[i]; q_ptr[i] = q_ptr[q_low]; q_ptr[q_low] = q_tmp; return i; } /******************************************************************************************* 函数名:void quicksort( UINT8 * m_ptr, UINT8 m_low, UINT8 m_high ) 入口参数列表:m_ptr, m_low, m_high 入口参数描述:数组的地址,数组的首元素和尾元素的索引 返回值描述:无 函数功能:对数组进行排序,产生非降序的数组 ********************************************************************************************/ void quicksort( UINT8 * q_ptr, SINT8 q_low, SINT8 q_high ) { UINT8 q_w; if (q_low < q_high) { q_w = splt(q_ptr, q_low, q_high); quicksort(q_ptr, q_low, q_w - 1); quicksort(q_ptr, q_w + 1, q_high); } } /****************************************************************************** 函数名:main( void ) 入口参数列表:无 入口参数描述:无 返回值描述:无 函数功能:主函数,用于测试 *******************************************************************************/ void main( void ) { UINT8 i, q_num = 0; printf("请输入10个2位整数:\n"); for (i = 0; i < Q_SIZE; i++) { scanf("%d", &q_num); q_array[i] = q_num; } quicksort(q_array, 0, 9); for (i = 0; i < Q_SIZE; i++) { printf("%d ", q_array[i]); } }

2012-04-25

可编程交通灯+温度检测c程序

本程序以交通灯程序为基础加上用液晶显示红黄绿灯的输出提升,用18b20测温度并显示在液晶上,用蜂鸣器师兄紧急状况处理功能。所用芯片为at8952

2010-09-08

基于AT89S52单片机的音乐盒--包含灯光控制,灯光亮度调节 的c程序

该c程序包含两大模块,音符发声部分和灯光控制部分。通过小软件产生各种音符的代码,将代码存入数组,一个数组就是一首歌。灯光部分用单片机的P0和P2口控制,涵盖走马灯,流水灯,渐暗,渐亮,该部分还通过用延时的方式模仿PWM输出控制灯的亮度,使改作品更具人性化

2010-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除