单片机源程序

  • A2_457064
    了解作者
  • 132.9KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-25 05:34
    上传日期
10级测控专业单片机编程,没有自己的份,自己的在我空间里面,欢迎下载哈
单片机课程设计源程序.rar
  • 第5章 4个16x16点阵LED显示屏的设计
  • 汇编程序
  • 4_16.LST
    29.1KB
  • 4_16.BIN
    1.1KB
  • 4_16.BAK
    12.5KB
  • 4_16.ASM
    12.5KB
  • 4_16.HEX
    2.6KB
  • C程序
  • LED.LNP
    41B
  • led_sm.OBJ
    10KB
  • LED.PLG
    0B
  • led_Uv2.Bak
    1.9KB
  • led.Uv2
    1.6KB
  • led
    8.9KB
  • LED.M51
    11.2KB
  • LED.HEX
    6.3KB
  • LED_SM.C
    9.8KB
  • led_Opt.Bak
    1KB
  • led_sm.LST
    14.5KB
  • led.Opt
    902B
  • 第7章 城市道口交通灯控制系统模型的设计
  • 汇编程序
  • JDD5.BAK
    14.4KB
  • JDD5.ASM
    14.4KB
  • JDD5.HEX
    1.6KB
  • JDD5.LST
    33.3KB
  • JDD5.BIN
    686B
  • 第6章 简易LCD示波器的设计
  • C程序
  • STC12C5A16S2.H
    17.3KB
  • 示波器.M51
    27.1KB
  • 示波器.plg
    1.4KB
  • 示波器.OBJ
    23.7KB
  • 示波器.Uv2
    1.7KB
  • 示波器.Opt
    826B
  • 示波器.LST
    21.1KB
  • 示波器
    20.6KB
  • 示波器.hex
    5.1KB
  • 示波器.lnp
    44B
  • 示波器.c
    11.1KB
  • 示波器_Opt.Bak
    826B
  • 第8章 单片机系统在线操作系统的设计
  • 汇编程序
  • ONLINE.BIN
    1.7KB
  • ONLINE.LST
    71.5KB
  • ONLINE.BAK
    33.5KB
  • ONLINE.HEX
    4.1KB
  • ONLINE.ASM
    33.5KB
  • C程序
  • ocs.lnp
    38B
  • ocs.M51
    11.5KB
  • ocs_Uv2.Bak
    1.7KB
  • ons.LST
    5.4KB
  • ocs.Opt
    820B
  • ocs.hex
    9.8KB
  • ocs_Opt.Bak
    818B
  • ocs.plg
    1KB
  • ocs
    11.1KB
  • ons.OBJ
    8.5KB
  • ocs.Uv2
    1.9KB
  • ons.Bin
    4KB
  • ons.c
    3.3KB
内容介绍
//*************************************************// // 12864LCD示波器演示程序 // STC12C5A16S2//12MHZ //*************************************************// //头文件 #include "STC12C5A16S2.H" #include"intrins.h" #include"math.h" #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //======================== //****显示状态定义**** #define STA_Wave 0 //功能:显示波形 #define STA_Info 1 //功能:显示参数信息 #define STA_Logo 2 //功能:开机显示微标 //========================= //****按键定义**** sbit key0 = P3^4; //功能:显示波形周期控制 sbit key1 = P3^5; //功能:显示波形周期控制 sbit key2 = P3^6; //功能:显示波形幅度控制 sbit key3 = P3^7; //功能:显示波形幅度控制 // #define KEY0 0x0e //备用键接口值 #define KEY1 0x0d //备用键接口值 #define KEY2 0x0b //备用键接口值 #define KEY3 0x07 //备用键接口值 // #define KEY0_S 0xe0 //KEY0键值 #define KEY1_S 0xd0 //KEY1键值 #define KEY2_S 0xb0 //KEY2键值 #define KEY3_S 0x70 //KEY3键值 #define KEY_NONE 0 //无按键 #define lcddata P2 //12864液晶数据口 sbit busy=lcddata^7; //12864液晶"忙"接口 // uchar STATE =0; //功能判断(数据为0~2) uchar MSG_KEY = KEY_NONE; //键值存放 uchar key_times = 0; //键扫描时间 uchar key_keep_times = 0; //按键按住时间 uchar key_done = 0; //按键事件有无做好标志 uchar read_key_times = 0; //扫描键盘时间 uchar draw_rigol = 0; //画时间 // uchar data X_TIMES = 0;//X坐标 uchar data T_val=12; //波形采样周期控制初值 uchar data T_min=10; //波形采样周期控制最小值 uchar data T_max=150; //波形采样周期控制最大值 uchar data Margin=16; //显示波形幅度控制(范围1-16) uint data ADC_RES_DATA=0;//十位AD数据存放 uint data con05s=0; //0.5秒计数器 long int data bo_delay = 0;//波形采集计时 uchar xdata LAST_Y[128]; //上次采集数据存放 uchar xdata NOW_Y[128]; //即时采集数据存放 bit data draw_bo_is_ok = 0; //画波形完成标志 // //12864液晶显示控制口 sbit light=P1^4; //背光灯控制口 sbit rs=P1^5; //1表示数据, 0表示命令 sbit rw=P1^6; //1表示读, 0表赤写 sbit e=P1^7; //使能口,下降沿有效 //信息表 uchar code disdata1[15]={"单片机小示波器 "};//开机显示画面 uchar code disdata2[15]={"浙江海洋学院 "};//开机显示画面 //函数定义 void write_data(uchar dat_d); void write_com(uchar dat_d); void clrram_lcd (void); void init_lcd(void); void busy_lcd(void); void rev_row_lcd(uchar row); void rev_co_lcd(uchar row,uchar col,uchar mode); void clr_lcd(void); void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2); void wr_row_lcd(uchar row,char *p); // //以下程序区 // //************ 1/12毫秒延时程序 ************* delay1ms(uint t) { int i,j; for(i=0;i<t;i++) for(j=0;j<64;j++) ; } // //**********液晶检测忙状态程序*************** //在写入之前必须执行 void busy_lcd(void) { lcddata=0xff; rs=0; rw=1; e =1; while(busy==1); e =0; } /********** 向12232F写一个字节程序 ************/ void write_data(uchar dat_d) { //并口使用时 busy_lcd(); rs=1; rw=0; lcddata=dat_d; e=1; ; e=0;// } // /********* 向12232F写一个命令字节程序 ***********/ void write_com(uchar com_d) { //并口使用时 busy_lcd(); rs=0; rw=0; lcddata=com_d; e=1; ; e=0;// } // //**********12864LCD初始化程序************** void setup() { write_com(0x0c); /*开显示,关游标*/ clrram_lcd(); delay1ms(480); // 延时40毫秒以上*/ } // //**********填充液晶DDRAM全为空格程序********** void clrram_lcd (void) { write_com(0x30); write_com(0x01); } // //***********液晶写入函数*********** void _write(uchar _wz,uchar _len,uchar *_adr) { uchar m; //q=_wz; write_com(_wz); //写入字定位(起始位) for (m=0; m<_len; m++) // {write_data(*(_adr+m));} } // //************指定要显示字符的坐标程序************** void gotoxy(unsigned char y, unsigned char x) { if(y==1) write_com(0x80|x);//wr_i_lcd(0x80|x); if(y==2) write_com(0x90|x); if(y==3) write_com((0x80|x)+8); if(y==4) write_com((0x90|x)+8); } // //*************液晶显示字符串程序*************** void print(uchar *str) { while(*str!='\0') { //wr_d_lcd(*str); write_data(*str); str++; } } // //***************延时子程序********************* void delay(unsigned int t) { unsigned int i,j ; for(i=0;i<t;i++) for(j=0;j<10;j++); } // //***************清整个GDRAM空间程序*************** void clrgdram() { unsigned char x,y ; for(y=0;y<64;y++) for(x=0;x<16;x++) { write_com(0x34); write_com(y+0x80);//行地址(Y坐标) write_com(x+0x80); //列地址(X坐标) write_com(0x30); write_data(0x00); write_data(0x00); } } // //***************清屏幕程序****************** void clrscreen() { write_com(0x01); delay(10); } // //***************读12864字节程序****************** unsigned char ReadByte(void) { unsigned char byReturnValue ; busy_lcd(); lcddata=0xff ; rs=1 ; rw=1 ; e=1 ; e=1 ; byReturnValue=lcddata; e=0 ; return byReturnValue ; } // //***************画点(波形)子程序********************** void DrawPoint(unsigned char X,unsigned char Y,unsigned char Color) { unsigned char Row,Tier,Tier_bit ; unsigned char ReadOldH,ReadOldL ; write_com(0x34); //进入扩展指令 write_com(0x36); //打开绘图开关 Tier=X>>4 ; Tier_bit=X&0x0f ; if(Y<32) { Row=Y ; //在上二行屏的Y坐标 } else { Row=Y-32 ; //在下二行屏的Y坐标 Tier+=8 ; //在下二行屏的X坐标修正(1\2行为80\90,3/4行为88\98) } write_com(Row+0x80);//写入Y坐标数据 write_com(Tier+0x80);//写入X坐标数据 ReadByte(); ReadOldH=ReadByte();//读入GDRAM数据 ReadOldL=ReadByte();//读入GDRAM数据 write_com(Row+0x80);//重新设定坐标Y write_com(Tier+0x80);//重新设定坐标X if(Tier_bit<8) { switch(Color) //左(高字节)8个点处理 { case 0 : ReadOldH&=(~(0x01<<(7-Tier_bit)));//填0 break ; case 1 : ReadOldH|=(0x01<<(7-Tier_bit));//填1 break ; case 2 : ReadOldH^=(0x01<<(7-Tier_bit)); break ; default : break ; } write_data(ReadOldH);//写回GDRAM write_data(ReadOldL);//写回GDRAM } else { switch(Color) //右(低字节)8个点处理 { case 0 : ReadOldL&=(~(0x01<<(15-Tier_bit)));//填0 break ; case 1 : ReadOldL|=(0x01<<(15-Tier_bit));//填1 break ; case 2 : ReadOldL^=(0x01<<(15-Tier_bit)); break ; default : break ; } write_data(ReadOldH);//写回GDRAM write_data(ReadOldL);//写回GDRAM } write_com(0x30); } // //***************图片显示程序****************************** void v_Lcd12864DrawPicture_f( unsigned char code *pPicture ) { unsigned char i, j, k ; write_com( 0x34 ) ; write_com( 0x36 ) ; for( i = 0 ; i < 2 ; i++ ) { for( j = 0 ; j < 32 ; j++ ) { write_com( 0x80 + j ) ; if( i == 0 ) { write_com( 0x80 ) ; } else { write_com( 0x88 ) ; } for( k = 0 ; k < 16 ; k++ ) { write_data( *pPicture++ ) ; } } } write_com( 0x30 ) ; } // /*************STC12C5A16S ADC电源开程序*****************/ ADC_POW_ON() {ADC_CONTR=ADC_CONTR|0Xe0; //电源开,ADC最快模式 delay1ms(12); //延时1毫秒以上 } // /*************STC12C5A16S ADC转换程序****************/ ADC_CHANG() //ADC转换 { //delay1ms(1); //延时90微秒(通道转换后需稳定) _nop_();_nop_(); //5微秒 ADC_RES=0X00;ADC_RESL=0X00;ADC_CON
评论
    相关推荐
    • 单片机课件
      能够帮助同学们快速的了解单片机并对于单片机的一些设计程序有一定的认知
    • 单片机课件
      单片机的课件及例题, 单片机的课件及例题, 单片机的课件及例题, 单片机的课 件及例题,
    • 爱上单片机
      一本电子爱好者都能看懂,会边看边笑的单片机入门书籍,作者杜洋曾在《无线电》上发表过“趣味单片机制作专题”、“单片机编程魔法学校”等深受读者喜爱、让无数单片机入门者热血沸腾的系列文章。本书通过生动的语言...
    • 单片机资料
      内含30个单片机应用开发的资料,包括配套单片机入门PPT。
    • 单片机课件
      单片机课的课件,对单片机的基础进行了全面的概述,也有非常精细的指导。
    • 单片机工具
      单片机工具 供单片机学习使用 免费资源 日后还会有更多资源 请联系我
    • 单片机课件
      单片机课件 ppt文件格式 介绍了单片机的结构、程序设计、定时器、中断等
    • 单片机教程
      这是一个单片机的教程,可以用于初次学习单片机的人学习。
    • 单片机入门
      很好的单片机学习资源,入门比较好适合对单片机的学习有兴趣的人,而且是名校的精彩讲解,
    • 爱上单片机
      《爱上单片机》本书是一本电子爱好者都能看懂,会边看边笑的单片机入门书籍,作者杜洋曾在《无线电》上发表过“趣味单片机制作专题”、“单片机编程魔法学校”等深受读者喜爱、让无数单片机入门者热血沸腾的系列文章...