[信息与通信]Soc型单片机原理及应用.ppt_第1页
[信息与通信]Soc型单片机原理及应用.ppt_第2页
[信息与通信]Soc型单片机原理及应用.ppt_第3页
[信息与通信]Soc型单片机原理及应用.ppt_第4页
[信息与通信]Soc型单片机原理及应用.ppt_第5页
已阅读5页,还剩306页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SoCSoC型单片机原理及应用型单片机原理及应用 ( (计算机系计算机系-10-10级级) ) 西安交通大学西安交通大学 城市学院城市学院 李裕华李裕华, ,马慧敏马慧敏 TelTel李李) )马马) ) 2012.08.25.2012.08.25. QQQQ群:群:261408820(261408820(报实名和班级报实名和班级) ) 课时量和教材课时量和教材 n n 4848学时的课程学时的课程 n n 3232学时的实验学时的实验 n n “ “单片机原理及应用单片机原理及应用- -基于基于5151与与 高速高速SoC51SoC51” ”,夏路易,夏路易 学习内容学习内容 我们课程的一些特点我们课程的一些特点: : n n 1. 1.加强单片机的专业英语加强单片机的专业英语( (口语口语) ) n n 2. 2.板书比较多板书比较多 n n 3. 3.要考试的重点在课堂上明确指出要考试的重点在课堂上明确指出 n n 4.C4.C语言的反刍语言的反刍, , 编程语言编程语言: C51: C51 n n 5. 5.放弃汇编语言放弃汇编语言 n n 6. 6.面向实验面向实验, , 面向项目的教学面向项目的教学, , 不最求全面和系统的不最求全面和系统的 知识知识( (传统是怎么教的,我是怎么教的?传统是怎么教的,我是怎么教的?) ) n n 7. 7.传统的传统的AT89C51AT89C51仅作为核仅作为核, ,学习最新型学习最新型SoCSoC单片机单片机 C8051F320C8051F320 8. 8. 注重与注重与ARMARM的衔接,成为的衔接,成为ARMARM的垫脚石的垫脚石 10. 10. 加强实验加强实验, ,加强动手能力加强动手能力, , 以工程师为目标以工程师为目标, , 以进以进 一步的一步的ARMARM学习为目标学习为目标. . - - 这样做法的依据这样做法的依据: : 就业形势和我校师生的特点就业形势和我校师生的特点 哈佛大学校园哈佛大学校园 我们要做的实验(暂定)我们要做的实验(暂定) n n LEDLED流水线流水线 n n 单单LEDLED数码管,多数码管数码管,多数码管 n n PWMPWM(Pulse Width ModulationPulse Width Modulation)LEDLED亮度控制,亮度控制, n n (舵机控制)(舵机控制) n n UART(RS232UART(RS232串口串口) ) n n 16011601字符液晶字符液晶 n n 1616键盘键盘 n n 外部事件中断,定时器中断外部事件中断,定时器中断 n n ADC(ADC(模数转换模数转换), ), n n 两类两类USB(USB(中断型中断型, ,批处理型批处理型) )通信通信 1 1章章 5151单片机基础单片机基础 n n 术语:术语: n n CPUCPU n n 处理器处理器(Processor)(Processor),微处理器,微处理器 n n 单片机单片机(MCU)(MCU), 5151单片机单片机 n n 嵌入式系统嵌入式系统 概述概述 n n 单片机在嵌入式系统中的地位单片机在嵌入式系统中的地位 MCU 8-bitARM 32-bit ASM, CASM, C/C+, OS 什么是嵌入式系统? 根据IEEE(国际电气电子工程师协会)的定义,嵌 入式系统是“用于控制,监视或者辅助其它设备,机器和工厂运行的装置”( devices used to control, monitor, or assist the operation of equipment, machinery or plants.) 单片机是不是嵌入式系统? Yes/no? Yes, but 它是低端嵌入式系统. MCU-ARMMCU-ARM关系关系 5151单片机发展过程单片机发展过程 n n 8048=8031=8051=8751=89C51=89C58048=8031=8051=8751=89C51=89C5 2=89Cxxx2=89Cxxx n n Intel, Intel, AtmelAtmel, SST, Philips, , SST, Philips, SiLabSiLab, , n n 我们简单学习我们简单学习AT89C51,AT89C51,重点学习重点学习C8051F320C8051F320 - - 学习单片机的目的和方法学习单片机的目的和方法 n n 应用性应用性: : 就业就业, , 工程师工程师, , 项目经理项目经理(MCU(MCU命还长着命还长着) ) n n 深造的基础深造的基础: : 为为3232位嵌入式系统学习位嵌入式系统学习 n n 考研考研: : 单片机知识为理工本科生必须具备的单片机知识为理工本科生必须具备的 n n 就业:硬件很就业:硬件很“ “硬硬” ”,软硬兼施,软硬兼施 n n 支持:帮助理解支持:帮助理解 计算机有关知识计算机有关知识 n n 有关课程有关课程: C: C语言语言, IT, IT电子技术电子技术, ,及线路板设计及线路板设计, , VB6.0, VC+VB6.0, VC+. . - - 我们的单片机学习方法我们的单片机学习方法 n n 从内核到芯片从内核到芯片 n n 充分应用充分应用SoCSoC芯片的功能芯片的功能, , 补充一些外设补充一些外设 n n 通过详细讲解实验程序学习芯片的通过详细讲解实验程序学习芯片的sfrsfr n n 同学的实验要求在样板的基础上,自己部同学的实验要求在样板的基础上,自己部 分编程分编程 - - 开发工具开发工具, ,环境环境, ,开发过程开发过程 - -硬件硬件: : Protel99, Protel99, 原理图原理图, PCB, PCB(马慧敏老师)(马慧敏老师) - -编程编程: : 工程的建立,工程的建立,C51C51编程,编译,链接,下载,在线调试编程,编译,链接,下载,在线调试 C51C51编译器编译器(Keil), IDE, EC5+JTAG+(Keil), IDE, EC5+JTAG+目标板目标板 - -文件文件: : xx.wsp: xx.wsp:工程,工程,xx.asm:xx.asm:汇编程序汇编程序, xx.c, xx.lst, xx.obj, , xx.c, xx.lst, xx.obj, xx.hex, xx.bin xx.hex, xx.bin - -项目开发流程项目开发流程 可行性分析可行性分析=立项立项=需求分析需求分析=硬件方案硬件方案( (框图框图) )和设计和设计( (原原 理图理图, PCB, PCB图图)=)=制板制板=软件方案软件方案( (流程框图流程框图)=)=编程编程=调调 试试=定型定型=性能测试性能测试=文档文档 - -学习内容:单片机结构学习内容:单片机结构, C51, C51编程编程, , 十几个实验十几个实验 (马慧敏老师(马慧敏老师 ) - EC5-JTAG-Kit(Kit-EH200)- EC5-JTAG-Kit(Kit-EH200)连接连接 PC USB EC5 适配器 JTAG Kit(开发机 ) 5V DC EH200 - About JTAG- About JTAG n n JTAG: Joint Test Action GroupJTAG: Joint Test Action Group(联合测试行动(联合测试行动 组织)组织)JTAGJTAG于于1990 1990 年被年被IEEE IEEE 批准为批准为 IEEE1149.1-1990. JTAGIEEE1149.1-1990. JTAG是一种国际标准测试是一种国际标准测试 协议(协议(IEEE 1149.1IEEE 1149.1兼容),主要用于芯片内兼容),主要用于芯片内 部测试。现在多数的高级器件都支持部测试。现在多数的高级器件都支持JTAGJTAG协协 议议, ,如如DSPDSP、FPGA, ARMFPGA, ARM器件等。标准的器件等。标准的JTAGJTAG 接口是接口是4 4线:线:TMSTMS、TCKTCK、TDITDI、TDO,TDO,分别为分别为 模式选择、时钟、数据输入和数据输出线。模式选择、时钟、数据输入和数据输出线。 - U-EC5 + Kit-EH200- U-EC5 + Kit-EH200 - IDE- IDE界面界面 (Integrated Development Environment)(Integrated Development Environment) - - 单片机的实际应用单片机的实际应用 n n 1. 1. 工控工控(Industrial Control): (Industrial Control): 数据采集数据采集(Data (Data Acquisition),Acquisition),数控数控(Numerical Control),(Numerical Control),. . n n 2. 2. 仪器仪器sfr P0 = 0x80; n n sfr P1 = 0x90; sfr P1 = 0x90; n n sfr P2 = 0xA0;sfr P2 = 0xA0; n n sfr P3 = 0xB0;sfr P3 = 0xB0; n n sfr PSW = 0xD0;sfr PSW = 0xD0; n n sfr ACC = 0xE0;sfr ACC = 0xE0; n n sfr B = 0xF0;sfr B = 0xF0; n n sfr SP = 0x81;sfr SP = 0x81; n n sfr DPL = 0x82;sfr DPL = 0x82; n n sfr DPH = 0x83;sfr DPH = 0x83; n n sfr PCON = 0x87;sfr PCON = 0x87; n n sfr TCON = 0x88;sfr TCON = 0x88; n n sfr TMOD = 0x89;sfr TMOD = 0x89; n n sfr TL0 = 0x8A;sfr TL0 = 0x8A; n n sfr TL1 = 0x8B;sfr TL1 = 0x8B; n n sfr TH0 = 0x8C;sfr TH0 = 0x8C; n n sfr TH1 = 0x8D;sfr TH1 = 0x8D; n n sfr IE = 0xA8;sfr IE = 0xA8; n n sfr IP = 0xB8;sfr IP = 0xB8; n n sfr SCON = 0x98;sfr SCON = 0x98; n n sfr SBUF = 0x99;sfr SBUF = 0x99; n n /* BIT Register */* BIT Register */ n n /* PSW */* PSW */ n n sbit CY = 0xD7; /sbit: C51sbit CY = 0xD7; /sbit: C51专用专用 位变位变 量量 地址设置地址设置 n n sbit AC = 0xD6;sbit AC = 0xD6; n n sbit F0 = 0xD5;sbit F0 = 0xD5; n n sbit RS1 = 0xD4;sbit RS1 = 0xD4; n n sbit RS0 = 0xD3;sbit RS0 = 0xD3; n n sbit OV = 0xD2;sbit OV = 0xD2; n n sbit P = 0xD0;sbit P = 0xD0; n n /* TCON */* TCON */ n n sbit TF1 = 0x8F;sbit TF1 = 0x8F; n n sbit TR1 = 0x8E;sbit TR1 = 0x8E; n n sbit TF0 = 0x8D;sbit TF0 = 0x8D; n n sbit TR0 = 0x8C;sbit TR0 = 0x8C; n n sbit IE1 = 0x8B;sbit IE1 = 0x8B; n n sbit IT1 = 0x8A;sbit IT1 = 0x8A; n n sbit IE0 = 0x89;sbit IE0 = 0x89; n n sbit IT0 = 0x88;sbit IT0 = 0x88; n n /* IE */* IE */ n n sbit EA = 0xAF;sbit EA = 0xAF; n n sbit ES = 0xAC;sbit ES = 0xAC; n n sbit ET1 = 0xAB;sbit ET1 = 0xAB; n n sbit EX1 = 0xAA;sbit EX1 = 0xAA; n n sbit ET0 = 0xA9;sbit ET0 = 0xA9; n n sbit EX0 = 0xA8;sbit EX0 = 0xA8; n n /* IP */ /* IP */ n n sbit PS = 0xBC;sbit PS = 0xBC; n n sbit PT1 = 0xBB;sbit PT1 = 0xBB; n n sbit PX1 = 0xBA;sbit PX1 = 0xBA; n n sbit PT0 = 0xB9;sbit PT0 = 0xB9; n n sbit PX0 = 0xB8;sbit PX0 = 0xB8; n n /* P3 */* P3 */ n n sbit RD = 0xB7;sbit RD = 0xB7; n n sbit WR = 0xB6;sbit WR = 0xB6; n n sbit T1 = 0xB5;sbit T1 = 0xB5; n n sbit T0 = 0xB4;sbit T0 = 0xB4; n n sbit INT1 = 0xB3;sbit INT1 = 0xB3; n n sbit INT0 = 0xB2;sbit INT0 = 0xB2; n n sbit TXD = 0xB1;sbit TXD = 0xB1; n n sbit RXD = 0xB0;sbit RXD = 0xB0; n n /* SCON */* SCON */ n n sbit SM0 = 0x9F;sbit SM0 = 0x9F; n n sbit SM1 = 0x9E;sbit SM1 = 0x9E; n n sbit SM2 = 0x9D;sbit SM2 = 0x9D; n n sbit REN = 0x9C;sbit REN = 0x9C; n n sbit TB8 = 0x9B;sbit TB8 = 0x9B; n n sbit RB8 = 0x9A;sbit RB8 = 0x9A; n n sbit TI = 0x99;sbit TI = 0x99; n n sbit RI = 0x98;sbit RI = 0x98; n n #endif /#endif /定义结束定义结束 举例复习举例复习C C语言(双龙吐珠)语言(双龙吐珠) n n /*/* n n 8LED.c 8LED.c n n 2008.09.03. by Ma Huimin2008.09.03. by Ma Huimin n n 西安交通大学城市学院,计算机系西安交通大学城市学院,计算机系 n n */ / n n #include #include n n /-/- n n unsigned char Pattern4 = 0x18,0x24,0x42,0x81; /display unsigned char Pattern4 = 0x18,0x24,0x42,0x81; /display patternpattern n n unsigned char *pLED; /a pointerunsigned char *pLED; /a pointer n n void Delay(unsigned int iM); /void Delay(unsigned int iM); / 2012.09.18.二 8h n n /-/- n n / Main Routine/ Main Routine n n /-/- n n void main(void)void main(void) n n n n int i =0; int i =0; n n pLED = /get address of Pattern pLED = /get address of Pattern n n while (1) / non-stop loop while (1) / non-stop loop n n n n P0 = *pLED; / displayP0 = *pLED; / display n n pLED+; / pointer + 1 pLED+; / pointer + 1 n n Delay(60000); Delay(60000); n n i+; / loop variable + 1 i+; / loop variable + 1 n n if (i = 4) /if (i = 4) / n n n n i = 0; / reset loop variable I i = 0; / reset loop variable I n n pLED = / reset address pLED = / reset address n n n n n n n n void Delay(unsigned int iM) / about 8.33us void Delay(unsigned int iM) / about 8.33us n n n n while(iM0) while(iM0) n n n n iM-; /iM - 1 iM-; /iM - 1 n n n n n n /-END-/-END- C51C51编程的注意点编程的注意点 n n 0. 0. 选用该型号单片机的特定的头文件选用该型号单片机的特定的头文件 n n 1. 1. 什么时候用十进制,什么时候用什么时候用十进制,什么时候用1616进制进制 n n 2. 2. 不要使用不要使用ACC, B, C, F0,ACC, B, C, F0,通用型寄存器通用型寄存器, , 不要使不要使 用用R7 R7 R0 R0 n n 3. 3. 不要考虑寻址方式不要考虑寻址方式 n n 4. 4. 不要考虑中断矢量不要考虑中断矢量 n n 5. 5. 不要用压栈和出栈指令不要用压栈和出栈指令 n n 6. 6. 不要设置堆栈指针不要设置堆栈指针 n n 7. 7. 不必考虑变量的不必考虑变量的RAMRAM的确切地址的确切地址 n n 8. 8. 中断返回不用考虑中断返回不用考虑, ,中断服务程序不用声明中断服务程序不用声明 n n 9. 9. 尽可能使用短变量尽可能使用短变量,unsigned char, bit,unsigned char, bit C51C51程序流程图一般是个程序流程图一般是个” ”6 6” ” n n n n 6 6 4 4章章 5151单片机内部资源单片机内部资源 n n 经典单片机经典单片机4 4大内部资源(功能)大内部资源(功能) n n 1. I/O1. I/O驱动(书本上没有讲)驱动(书本上没有讲) n n 2. 2. 中断,外部中断中断,外部中断 (p95p95) n n 3. 3. 计数计数/ /定时(定时(p100p100) n n 4. 4. 串口通信串口通信 (p111)p111) 4.0 I/O4.0 I/O驱动驱动 n n 4 4组组I/OI/O口,口,P0P0为内部开路漏极,其余的都为内部开路漏极,其余的都 带内部上拉电阻(带内部上拉电阻(20k)20k)。 驱动驱动4 4个个TTLTTL元件元件 。 n n 1. LED1. LED:发光二极管。参数:颜色,电流(:发光二极管。参数:颜色,电流( 100mA100mA,#include n n / n n sbit LED = P27; /LED connected with a I/O portsbit LED = P27; /LED connected with a I/O port n n / sbit/ sbit定义一个位的地址,怎么理解定义一个位的地址,怎么理解 n n void init(void); /initiationvoid init(void); /initiation n n void Delay(unsigned int iM); /void Delay(unsigned int iM); / n n main()main() n n n n init(); /initiation of the NCU init(); /initiation of the NCU n n while(1); /stay here, while(1); /stay here, 注意这里的流程图!注意这里的流程图! n n n n void INT0_I() interrupt 0 /interrupt No.0void INT0_I() interrupt 0 /interrupt No.0 n n n n EA = 0; /interrupt masked EA = 0; /interrupt masked n n LED = LED; LED = LED; n n Delay(10000); /delay for Delay(10000); /delay for n n EA = 1; /interrupt enabled EA = 1; /interrupt enabled n n n n / n n void init(void)void init(void) n n n n / IE |= 0x81; /INT0, both are possible/ IE |= 0x81; /INT0, both are possible n n EA = 1; /enabled all interrupts EA = 1; /enabled all interrupts n n EX0 = 1; /external interrupt ebnabled EX0 = 1; /external interrupt ebnabled n n IT0 = 1; /falling edge IT0 = 1; /falling edge n n n n /-/- n n void Delay(unsigned int iM) /void Delay(unsigned int iM) / n n n n while(iM0) while(iM0) n n n n iM-; iM-; n n n n n n / 有关的有关的sfrsfr n n IEIE n n TCONTCON SFR TCON(88h)SFR TCON(88h) n n (TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0)(TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0), ,低低4 4位只与外部中位只与外部中 断有关断有关( (混合了混合了) ) n n TF1: TF1: 溢出标志溢出标志( (硬件自动置硬件自动置1, 1, 如果中断如果中断, ,自动清自动清0) 0) n n TR1: TR1: 1: 1:启动启动, 0:, 0:停止停止( (软件设置软件设置) ) n n n n IT1: IT1: 外部中断外部中断(INT1)(INT1)类型设置类型设置, 1:, 1:下降沿下降沿, 0:, 0:低电平低电平 n n IE1: IE1: 外部中断检测到下降沿自动置外部中断检测到下降沿自动置1, 1, 进中断后自动复进中断后自动复0 0 n n TF0, TR0, IE0, IT0 TF0, TR0, IE0, IT0 同上同上 n n 注注: :对于对于TF1, TF0, IE1, IE0, TF1, TF0, IE1, IE0, 一般一般不太关心不太关心 INT0INT0总结总结 n n 1) 1) 总允许和分项允许总允许和分项允许( (中断使能中断使能) ) n n 2) 2) 中断类型中断类型: : 外中断下降沿外中断下降沿/ /低电平低电平( (低电低电 平少用平少用). ). n n 3 3)中断编号为)中断编号为0. 0. n n 4 4)INT0INT0和和INT1INT1类似类似 4.2 4.2 计数器计数器/ /定时器定时器(C/T)(C/T) n n 硬件上有硬件上有T0,T1(16bit),T0,T1(16bit),配置了配置了2 2套相关套相关 寄存器寄存器 n n C/T : Counter/TimerC/T : Counter/Timer SFR: TMOD(SFR: TMOD(高高4 4位位:C/T1, :C/T1, 低低4 4位位 :C/T0)(89h):C/T0)(89h) (GATE C/T M1 M0 GATE C/T M1 M0)(GATE C/T M1 M0 GATE C/T M1 M0) n n GATE=0 (GATE=0 (我们不用我们不用, ,测测INTxINTx的脉宽的脉宽) ) n n C/T=0: C/T=0: 内部定时器内部定时器, =1:, =1:外部计数器外部计数器 n n M1 M0=00: 0M1 M0=00: 0模式模式( (弃用弃用), 01: 1), 01: 1模式模式(16(16位位), ), 10: 210: 2模式模式(8(8位自动重装位自动重装), 11: 3), 11: 3模式模式( (不用,不用, C/T0:2C/T0:2个独立个独立8 8位位, C/T1:, C/T1:不用不用, ,停止记时停止记时 ) ) n n “ “内部定时器内部定时器” ”( (“ “T T” ”), ), “ “外部计数器外部计数器” ”( (“ “C C” ”) ) n n 通常称通常称T0T0,T1T1 n n T0,T1T0,T1的信号源:的信号源: n n 1 1)内部定时:内部振荡信号(按机器周期)内部定时:内部振荡信号(按机器周期) n n 2 2)外部计数:引脚(对)外部计数:引脚(对AT89C51AT89C51:1414,1515)的下)的下 降沿降沿 n n sfrsfr n n TMODTMOD:规定了计数器的容量和方式:规定了计数器的容量和方式 n n TCONTCON:启动:启动/ /停止,是否溢出停止,是否溢出 n n TH0,TL0, TH1,TL1TH0,TL0, TH1,TL1:计数值:计数值 要强调的一点要强调的一点 n n T0,T1T0,T1模块的工作和运行是脱离模块的工作和运行是脱离CPUCPU的的, ,一旦一旦 运行后就与程序的运行无关了运行后就与程序的运行无关了. .就好象你自就好象你自 己的闹钟一样己的闹钟一样, ,溢出前它不干预你的正常日溢出前它不干预你的正常日 程程. .它是并行工作的它是并行工作的. . SFR TCON(88h)SFR TCON(88h) n n (TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0)(TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0), ,低低4 4位只与外部中位只与外部中 断有关断有关( (混合了混合了) ) n n TF1: TF1: 溢出标志溢出标志( (硬件自动置硬件自动置1, 1, 如果中断如果中断, ,自动清自动清0) 0) n n TR1: TR1: 1: 1:启动启动, 0:, 0:停止停止( (软件设置软件设置) ) n n n n IT1: IT1: 外部中断外部中断(INT1)(INT1)类型设置类型设置, 1:, 1:下降沿下降沿, 0:, 0:低电平低电平 n n IE1: IE1: 外部中断检测到下降沿自动置外部中断检测到下降沿自动置1, 1, 进中断后自动复进中断后自动复0 0 n n TF0, TR0, IE0, IT0 TF0, TR0, IE0, IT0 同上同上 n n 注注: :对于对于TF1, TF0, IE1, IE0, TF1, TF0, IE1, IE0, 一般一般不太关心不太关心 SFR TH1, TL1, TH0, TL0SFR TH1, TL1, TH0, TL0 (8Dh,8Bh,8Ch,8Ah)(8Dh,8Bh,8Ch,8Ah) n n TH1,TL1 TH1,TL1 用于用于C/T1, TH0,TL0C/T1, TH0,TL0用于用于C/T0C/T0 n n 1616位模式位模式(1 (1模式模式): TH1): TH1高字节高字节, ,TL1TL1低字节低字节 n n 8 8位自动重装位自动重装(2 (2模式模式):TH1):TH1向向TL1TL1充值充值, , n n 初始化初始化:TH1=TL1:TH1=TL1 n n 启动后启动后,TL1,TL1以机器周期加以机器周期加1, 1,溢出后进位到高字节溢出后进位到高字节(1 (1 模式模式) ) n n 或中断或中断 n n 如果设置成外部计数如果设置成外部计数: : 计数信号由引脚计数信号由引脚T1, T0T1, T0输入输入 (Pin15, Pin14)(Pin15, Pin14) n n 提问:提问:8 8位自动重装是什么意思?位自动重装是什么意思? 精密定时(精密定时(T0T0)设计)设计 /* */* * 2011.09. MaHuimin T0 interrupt2011.09. MaHuimin T0 interrupt LED blinks with 1HzLED blinks with 1Hz */*/ #include #include / typedef unsigned char u8;typedef unsigned char u8; typedef unsigned int u16;typedef unsigned int u16; / sbit LED = P17; /LED is connected with P1.7sbit LED = P17; /LED is connected with P1.7 u16 counter; /0 - 65535u16 counter; /0 - 65535 / void SYSCLK_Init (void);void SYSCLK_Init (void); void Port_Init(void);void Port_Init(void); void T0_Init(void);void T0_Init(void); n n /-/- n n / Main Routine/ Main Routine n n /-/- n n void main() void main() n n n n PCA0MD / no Watchdog PCA0MD / no Watchdog n n SYSCLK_Init(); / System Clock=12MHz, SYSCLK_Init(); / System Clock=12MHz, n n / machine cycle = 1us (1/12)/ machine cycle = 1us (1/12) n n Port_Init(); / I/O initialization Port_Init(); / I/O initialization n n T0_Init(); / T0 setting T0_Init(); / T0 setting n n / n n while(1); /main does nothing, while(1); /main does nothing, 流程图怎么画?流程图怎么画? n n n n /-/- n n / Port_Init/ Port_Init n n /-/- n n /- Port Initialization/- Port Initialization n n / - Configure the Crossbar and GPIO ports./ - Configure the Crossbar and GPIO ports. n n void Port_Init(void)void Port_Init(void) n n n n P0MDOUT=0xff; /P0 out as digital P0MDOUT=0xff; /P0 out as digital n n P0MDIN=0xff; /P0 in as digital P0MDIN=0xff; /P0 in as digital n n P1MDOUT = 0xff; /P1 out as digital P1MDOUT = 0xff; /P1 out as digital n n P2MDOUT = 0xff; /P2 out as digital P2MDOUT = 0xff; /P2 out as digital n n / P1 = 0x0;/ P1 = 0x0; n n / P2 = 0x0;/ P2 = 0x0; n n XBR1 = 0x40; /cross-bar functions XBR1 = 0x40; /cross-bar functions n n n n / n n void SYSCLK_Init (void)void SYSCLK_Init (void) n n n n OSCICL = 0x00; / OSCICL = 0x00; / 基本频率基本频率12MHz12MHz n n / / 修正修正=0=0 n n OSCICN = 0x83; OSCICN = 0x83; n n / 1: internal oscillator enabled,/ 1: internal oscillator enabled, n n / 2: 12MHz/ 2: 12MHz基本频率作为基本频率作为clock,clock, n n / machine frq 1MHz/ machine frq 1MHz(1/121/12) n n RSTSRC = 0x04; RSTSRC = 0x04; / enable missing clock detector, / enable missing clock detector, 时钟停止将复位时钟停止将复位 n n n n void T0_Init(void) /To settingvoid T0_Init(void) /To setting n n n n IE |= 0x82; /T0 interrupt enabled IE |= 0x82; /T0 interrupt enabled n n / 8-bit auto-reloading timer/ 8-bit auto-reloading timer n n TMOD = 0x02; TMOD = 0x02; n n / 250*1us = 0.25ms/ 250*1us = 0.25ms n n TH0 = 6; / TH0 = 6; /请问怎么计算的?请问怎么计算的? n n TL0 = 6; TL0 = 6; n n TR0 = 1; /T0 starts TR0 = 1; /T0 starts n n n n /T0/T0中断服务中断服务 n n /interrupt No1 is T0s interrupt/interrupt No1 is T0s interrupt n n void T0_250us() interrupt 1 /void T0_250us() interrupt 1 /复习复习0,1,2,3,4 0,1,2,3,4 n n n n counter+; / +1/250us counter+; / +1/250us n n if (counter=2000) / 500msif (counter=2000) / 500ms n n n n LED=LED; / on/off LED=LED; / on/off n n counter=0; counter=0; n n n n 2012.10.09.二 14h 4.3 4.3 串口通信串口通信 n n 1. 1.关于关于RXD, TXDRXD, TXD引脚的工作方式引脚的工作方式(51(51系列系列): ): n n a) a) 工作在工作在“ “移位移位” ”串行通信方式时串行通信方式时,RXD,RXD为发送和接收为发送和接收. TXD. TXD 为移位脉冲为移位脉冲. . 低位在前低位在前(LSB: little significant bit). 8(LSB: little significant bit). 8位数据位数据. . 传传 送靠移位脉冲送靠移位脉冲, ,所以频率的精度不重要所以频率的精度不重要. . 半双工半双工(Half (Half Duplex).Duplex).同步方式。同步方式。 n n b) b) 异步通信时异步通信时, RXD, RXD为接收为接收, TXD, TXD为发送为发送. LSB, . LSB, 常用常用8 8位数据位数据 , , 双方设为相同波特率双方设为相同波特率(Baud Rate). (Baud Rate). 全双工全双工(Full Duplex).(Full Duplex). n n UART(Universal Asynchronous Receiver/Transmitter)UAR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论