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

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

    4
    865
    45KB
    2012-10-13
    50
  • 快速排序算法

    快速排序算法(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]); } }

    0
    188
    159KB
    2012-04-25
    17
  • 可编程交通灯+温度检测c程序

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

    3
    70
    55KB
    2010-09-08
    0
  • 基于AT89S52单片机的音乐盒--包含灯光控制,灯光亮度调节 的c程序

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

    4
    303
    4KB
    2010-06-22
    11
关注 私信
上传资源赚积分or赚钱