http://blog.sina.com.cn/peterzhang002[订阅]
个人资料
分类
    内容读取中…
评论
读取中...
图片幻灯
好友
读取中...
访客
读取中...
博文

#include <REGX51.H>
#include <intrins.h>
void inc_sec();
void inc_min();
void inc_hour();
void key();
void delayms(unsigned char);


unsigned char Index=0xfe;
unsigned char led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9
unsigned char dis_buf[8];
unsigned char hour,min,sec;
unsigned int i=0,count=0;
sbit K2=P3^2;//用开关E,F来控制时和分的调整
sbit K1=P3^3;
sbit K=P3^7;
main()
TMOD=0x11;
   TH0=0xfc;
   TL0=0x17;
   TH1=0xd8;
   TL1=0xf0;
   ET0=1;
   ET1=1;
   EA=1;
   hour=0;
   min=0;
   sec=0;
   
   TF0=0;
   TF1=0;
  
 

   终于在平凡老师那找到两个用软件模拟的单片机实验板,很好用,对于刚刚学习单片机的朋友帮助满大的。key.dll和simboard.dll根据提示将文件添加到KEIL中即可,很方便的。注意:在添加第二个simboard的时候,下载文件给的提示是错误的,要改为-dsimboard和第一个类似。修改 Tool.ini, 此文件位于 uVision 的安装目录 \keil 下.
请将下面的内容 添加到 [C51] 部分的后面.
 AGSI1=ledkey.dll ('ledkey')
 AGSI2=simboard.dll ('simboard')
重启uVsion. 进入Debug 模式, 打开菜单Peripheral, 发现增加了2项分别是键盘LED仿真板,51实验仿真板。这样使用时就不用每次设置了,任何时候打开都可以用。如果还有什么问题请留言。再发个
 接(1)

 //-------------------------------------------------------------------------------------
    //中断服务程序
 //--------------------------------------------------------------------------------------
 void PCA_ISR(void) interrupt 9
 {
  static char SUTXST=0;           //SW_UART TX状态变量
  static char SURXST=0;           //SW_UART RX状态变量
  static unsigned char RXSHIFT;   //SW_UART RX移位寄存器
  static int PCA_TEMP;            //临时储存变量,用于处理PCA模块的搞和低字节

//首先检查接受中断变量,如果CCF0置位则对其服务 
  if(CCF0){
     CCF0=0;            &nb

  利用PCA解决软件串口的问题。PCA包含一个专用的16位计数器/定时器和五个16位的捕捉比较模块,每个模块都可以在被设置为在PCA计数器与相对应的比较模块的内容一致时产生中断。由于PCA计数器在产生中断时并不停止运行,所以可避免中断延迟累加的问题。本例还编写了用硬件串口HW_UART来测试模拟串口SW_UART。由HW_UART发送15个字符,SW_UART接收。同时由SW_UART发送15个字符,HW_UART接收。

     #include<c8051f000.h>
 #define BAUD_RATE  57600                                     //用户定义的波特率
 
 #define SYSCLK 18432000                                     //