当前位置: 首页 > news >正文

小型网站建设公司价格中国医药集团有限公司

小型网站建设公司价格,中国医药集团有限公司,视频模板网,路由器云安装wordpress各位CSDN的uu们你们好呀#xff0c;小雅兰又来啦#xff0c;刚刚学完静态数码管显示和动态数码管显示#xff0c;感觉真不错呢#xff0c;下面#xff0c;小雅兰就要开始学习模块化编程以及LCD1602调试工具的知识了#xff0c;让我们进入51单片机的世界吧#xff01;小雅兰又来啦刚刚学完静态数码管显示和动态数码管显示感觉真不错呢下面小雅兰就要开始学习模块化编程以及LCD1602调试工具的知识了让我们进入51单片机的世界吧 模块化编程 LCD1602调试工具 模块化编程 右键点击Open document REGX52.H 就会显示出此头文件的内容这句代码的意思也就是把这部分内容拷贝到此文件下 /*-------------------------------------------------------------------------- AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __AT89X52_H__ #define __AT89X52_H__ /*------------------------------------------------ Byte Registers ------------------------------------------------*/ sfr P0       0x80; sfr SP       0x81; sfr DPL     0x82; sfr DPH     0x83; sfr PCON     0x87; sfr TCON     0x88; sfr TMOD     0x89; sfr TL0     0x8A; sfr TL1     0x8B; sfr TH0     0x8C; sfr TH1     0x8D; sfr P1       0x90; sfr SCON     0x98; sfr SBUF     0x99; sfr P2       0xA0; sfr IE       0xA8; sfr P3       0xB0; sfr IP       0xB8; sfr T2CON   0xC8; sfr T2MOD   0xC9; sfr RCAP2L   0xCA; sfr RCAP2H   0xCB; sfr TL2     0xCC; sfr TH2     0xCD; sfr PSW     0xD0; sfr ACC     0xE0; sfr B       0xF0; /*------------------------------------------------ P0 Bit Registers ------------------------------------------------*/ sbit P0_0 0x80; sbit P0_1 0x81; sbit P0_2 0x82; sbit P0_3 0x83; sbit P0_4 0x84; sbit P0_5 0x85; sbit P0_6 0x86; sbit P0_7 0x87; /*------------------------------------------------ PCON Bit Values ------------------------------------------------*/ #define IDL_    0x01 #define STOP_   0x02 #define PD_     0x02    /* Alternate definition */ #define GF0_    0x04 #define GF1_    0x08 #define SMOD_   0x80 /*------------------------------------------------ TCON Bit Registers ------------------------------------------------*/ sbit IT0   0x88; sbit IE0   0x89; sbit IT1   0x8A; sbit IE1   0x8B; sbit TR0   0x8C; sbit TF0   0x8D; sbit TR1   0x8E; sbit TF1   0x8F; /*------------------------------------------------ TMOD Bit Values ------------------------------------------------*/ #define T0_M0_   0x01 #define T0_M1_   0x02 #define T0_CT_   0x04 #define T0_GATE_ 0x08 #define T1_M0_   0x10 #define T1_M1_   0x20 #define T1_CT_   0x40 #define T1_GATE_ 0x80 #define T1_MASK_ 0xF0 #define T0_MASK_ 0x0F /*------------------------------------------------ P1 Bit Registers ------------------------------------------------*/ sbit P1_0 0x90; sbit P1_1 0x91; sbit P1_2 0x92; sbit P1_3 0x93; sbit P1_4 0x94; sbit P1_5 0x95; sbit P1_6 0x96; sbit P1_7 0x97; sbit T2   0x90;       /* External input to Timer/Counter 2, clock out */ sbit T2EX 0x91;       /* Timer/Counter 2 capture/reload trigger dir ctl */ /*------------------------------------------------ SCON Bit Registers ------------------------------------------------*/ sbit RI   0x98; sbit TI   0x99; sbit RB8   0x9A; sbit TB8   0x9B; sbit REN   0x9C; sbit SM2   0x9D; sbit SM1   0x9E; sbit SM0   0x9F; /*------------------------------------------------ P2 Bit Registers ------------------------------------------------*/ sbit P2_0 0xA0; sbit P2_1 0xA1; sbit P2_2 0xA2; sbit P2_3 0xA3; sbit P2_4 0xA4; sbit P2_5 0xA5; sbit P2_6 0xA6; sbit P2_7 0xA7; /*------------------------------------------------ IE Bit Registers ------------------------------------------------*/ sbit EX0   0xA8;       /* 1Enable External interrupt 0 */ sbit ET0   0xA9;       /* 1Enable Timer 0 interrupt */ sbit EX1   0xAA;       /* 1Enable External interrupt 1 */ sbit ET1   0xAB;       /* 1Enable Timer 1 interrupt */ sbit ES   0xAC;       /* 1Enable Serial port interrupt */ sbit ET2   0xAD;       /* 1Enable Timer 2 interrupt */ sbit EA   0xAF;       /* 0Disable all interrupts */ /*------------------------------------------------ P3 Bit Registers (Mnemonics Ports) ------------------------------------------------*/ sbit P3_0 0xB0; sbit P3_1 0xB1; sbit P3_2 0xB2; sbit P3_3 0xB3; sbit P3_4 0xB4; sbit P3_5 0xB5; sbit P3_6 0xB6; sbit P3_7 0xB7; sbit RXD   0xB0;       /* Serial data input */ sbit TXD   0xB1;       /* Serial data output */ sbit INT0 0xB2;       /* External interrupt 0 */ sbit INT1 0xB3;       /* External interrupt 1 */ sbit T0   0xB4;       /* Timer 0 external input */ sbit T1   0xB5;       /* Timer 1 external input */ sbit WR   0xB6;       /* External data memory write strobe */ sbit RD   0xB7;       /* External data memory read strobe */ /*------------------------------------------------ IP Bit Registers ------------------------------------------------*/ sbit PX0   0xB8; sbit PT0   0xB9; sbit PX1   0xBA; sbit PT1   0xBB; sbit PS   0xBC; sbit PT2   0xBD; /*------------------------------------------------ T2CON Bit Registers ------------------------------------------------*/ sbit CP_RL2 0xC8;      /* 0Reload, 1Capture select */ sbit C_T2 0xC9;       /* 0Timer, 1Counter */ sbit TR2   0xCA;       /* 0Stop timer, 1Start timer */ sbit EXEN2 0xCB;       /* Timer 2 external enable */ sbit TCLK 0xCC;       /* 0Serial clock uses Timer 1 overflow, 1Timer 2 */ sbit RCLK 0xCD;       /* 0Serial clock uses Timer 1 overflow, 1Timer 2 */ sbit EXF2 0xCE;       /* Timer 2 external flag */ sbit TF2   0xCF;       /* Timer 2 overflow flag */ /*------------------------------------------------ T2MOD Bit Values ------------------------------------------------*/ #define DCEN_   0x01    /* 1Timer 2 can be configured as up/down counter */ #define T2OE_   0x02    /* Timer 2 output enable */ /*------------------------------------------------ PSW Bit Registers ------------------------------------------------*/ sbit P     0xD0; sbit F1   0xD1; sbit OV   0xD2; sbit RS0   0xD3; sbit RS1   0xD4; sbit F0   0xD5; sbit AC   0xD6; sbit CY   0xD7; /*------------------------------------------------ Interrupt Vectors: Interrupt Address (Number * 8) 3 ------------------------------------------------*/ #define IE0_VECTOR    0  /* 0x03 External Interrupt 0 */ #define TF0_VECTOR    1  /* 0x0B Timer 0 */ #define IE1_VECTOR    2  /* 0x13 External Interrupt 1 */ #define TF1_VECTOR    3  /* 0x1B Timer 1 */ #define SIO_VECTOR    4  /* 0x23 Serial port */ #define TF2_VECTOR    5  /* 0x2B Timer 2 */ #define EX2_VECTOR    5  /* 0x2B External Interrupt 2 */ #endif   下面我们来把之前的动态数码管显示的代码模块化一下~~ 小雅兰一共是把这些代码封装成了五个文件 Delay.h的内容 #ifndef __DELAY_H__ #define __DELAY_H__void Delay(unsigned char xms);#endif Delay.c的内容 #include REGX52.Hvoid Delay(unsigned char xms) //12.000MHz {unsigned char data i, j;while(xms){i 2;j 239;do{while (--j);} while (--i);xms--;} } Nixie.h的内容 #ifndef __NIXIE_H__ #define __NIXIE_H__void Nixie(unsigned char Location,unsigned char Number);#endif Nixie.c的内容 #include REGX52.H #include Delay.h unsigned char NixieTable[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; void Nixie(unsigned char Location,unsigned char Number) {switch(Location){case 1:P2_41;P2_31;P2_21;break;case 2:P2_41;P2_31;P2_20;break;case 3:P2_41;P2_30;P2_21;break;case 4:P2_41;P2_30;P2_20;break;case 5:P2_40;P2_31;P2_21;break;case 6:P2_40;P2_31;P2_20;break;case 7:P2_40;P2_30;P2_21;break;case 8:P2_40;P2_30;P2_20;break;}P0NixieTable[Number];Delay(1);P00x00; } main.c的内容 #include REGX52.H #include Nixie.h void main() {while(1){Nixie(1,1);Nixie(2,2);Nixie(3,3);Nixie(4,4);Nixie(5,5);Nixie(6,6);} }LCD1602调试工具 LCD1602.c的内容 #include REGX52.H//引脚配置 sbit LCD_RSP2^6; sbit LCD_RWP2^5; sbit LCD_ENP2^7; #define LCD_DataPort P0//函数定义 /*** brief LCD1602延时函数12MHz调用可延时1ms* param 无* retval 无*/ void LCD_Delay() {unsigned char i, j;i 2;j 239;do{while (--j);} while (--i); }/*** brief LCD1602写命令* param Command 要写入的命令* retval 无*/ void LCD_WriteCommand(unsigned char Command) {LCD_RS0;LCD_RW0;LCD_DataPortCommand;LCD_EN1;LCD_Delay();LCD_EN0;LCD_Delay(); }/*** brief LCD1602写数据* param Data 要写入的数据* retval 无*/ void LCD_WriteData(unsigned char Data) {LCD_RS1;LCD_RW0;LCD_DataPortData;LCD_EN1;LCD_Delay();LCD_EN0;LCD_Delay(); }/*** brief LCD1602设置光标位置* param Line 行位置范围1~2* param Column 列位置范围1~16* retval 无*/ void LCD_SetCursor(unsigned char Line,unsigned char Column) {if(Line1){LCD_WriteCommand(0x80|(Column-1));}else if(Line2){LCD_WriteCommand(0x80|(Column-10x40));} }/*** brief LCD1602初始化函数* param 无* retval 无*/ void LCD_Init() {LCD_WriteCommand(0x38);//八位数据接口两行显示5*7点阵LCD_WriteCommand(0x0c);//显示开光标关闪烁关LCD_WriteCommand(0x06);//数据读写操作后光标自动加一画面不动LCD_WriteCommand(0x01);//光标复位清屏 }/*** brief 在LCD1602指定位置上显示一个字符* param Line 行位置范围1~2* param Column 列位置范围1~16* param Char 要显示的字符* retval 无*/ void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char) {LCD_SetCursor(Line,Column);LCD_WriteData(Char); }/*** brief 在LCD1602指定位置开始显示所给字符串* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param String 要显示的字符串* retval 无*/ void LCD_ShowString(unsigned char Line,unsigned char Column,char *String) {unsigned char i;LCD_SetCursor(Line,Column);for(i0;String[i]!\0;i){LCD_WriteData(String[i]);} }/*** brief 返回值X的Y次方*/ int LCD_Pow(int X,int Y) {unsigned char i;int Result1;for(i0;iY;i){Result*X;}return Result; }/*** brief 在LCD1602指定位置开始显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~65535* param Length 要显示数字的长度范围1~5* retval 无*/ void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i;LCD_SetCursor(Line,Column);for(iLength;i0;i--){LCD_WriteData(Number/LCD_Pow(10,i-1)%100);} }/*** brief 在LCD1602指定位置开始以有符号十进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围-32768~32767* param Length 要显示数字的长度范围1~5* retval 无*/ void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length) {unsigned char i;unsigned int Number1;LCD_SetCursor(Line,Column);if(Number0){LCD_WriteData();Number1Number;}else{LCD_WriteData(-);Number1-Number;}for(iLength;i0;i--){LCD_WriteData(Number1/LCD_Pow(10,i-1)%100);} }/*** brief 在LCD1602指定位置开始以十六进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~0xFFFF* param Length 要显示数字的长度范围1~4* retval 无*/ void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i,SingleNumber;LCD_SetCursor(Line,Column);for(iLength;i0;i--){SingleNumberNumber/LCD_Pow(16,i-1)%16;if(SingleNumber10){LCD_WriteData(SingleNumber0);}else{LCD_WriteData(SingleNumber-10A);}} }/*** brief 在LCD1602指定位置开始以二进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~1111 1111 1111 1111* param Length 要显示数字的长度范围1~16* retval 无*/ void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i;LCD_SetCursor(Line,Column);for(iLength;i0;i--){LCD_WriteData(Number/LCD_Pow(2,i-1)%20);} }LCD1602.h的内容 #ifndef __LCD1602_H__ #define __LCD1602_H__//用户调用函数 void LCD_Init(); void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char); void LCD_ShowString(unsigned char Line,unsigned char Column,char *String); void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length); void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length); void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length); void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);#endifmain.c的内容 #include REGX52.H #include LCD1602.hvoid main() {LCD_Init();LCD_ShowChar(1,1,K);LCD_ShowString(1,3,Hello);LCD_ShowNum(1,9,123,3);LCD_ShowSignedNum(1,13,-66,2);LCD_ShowHexNum(2,1,0xA8,2);LCD_ShowBinNum(2,4,0xAA,8);while(1){} } 这个调试工具还是非常方便的 好啦小雅兰的模块化编程和LCD1602调试工具的内容就到这里啦还要继续加油
http://www.sczhlp.com/news/152469/

相关文章:

  • 顶呱呱集团 网站建设网站建设seo合同书
  • 如何维护网站的运营新媒体包不包括公司网站的建设
  • 企业可以做哪些网站有哪些内容怎么建立微信网站
  • 网站做扫一扫uncode wordpress
  • 长沙本土网站制作公司公司模块化建设的意义
  • 珠海微网站建设wordpress添加二级踩点
  • 网站虚拟主机空间1g多吗wordpress 宋体、
  • 玩具网站建设wordpress主题c7v5 v2.0
  • 智能建站系统哪个好做的网站怎么上传到网上
  • 提示网站有风险wordpress 框架解析
  • 手机商城+手机网站建设多少钱ppt做视频的模板下载网站
  • 电销做网站的话术wordpress ip 访问
  • 建设银行金山支行网站湖南长沙招聘
  • 模板建站与仿站哪个更好北京注册公司地址可以是住宅吗
  • 网站开发的结论包头seo排名
  • 中国上海门户网站公众号沈阳高端网站制作公司
  • 免费的个人网站注册石景山网站建设有哪些公司
  • 影楼网站源码建设商务网站的步骤
  • 怎么在网站上做模式题库中山发布最新通知
  • 东莞建材网站建设荥阳网站建设多少钱
  • 【AHK】暗黑3助手,加强版鼠标宏
  • 【半导体物理 | 笔记】第四章 半导体的导电性
  • 【半导体物理 | 笔记】第五章 非平衡载流子
  • 网站服务器有哪些网站访问量js
  • 网站备案 怎么加seo技术优化服务
  • 比较好的网站建设平台海口网站建设发布
  • 辽阳建网站大学生网站建设规划书
  • 域名申请好了怎么做网站用ps怎么做网站效果图
  • 网站栏目划分怎么做wordpress菜单出不来
  • 建一个网站的技术解决方案江西企业网站建设费用