#include<INTRINS.h>
#define u16 unsigned int
#define u8 unsigned char
u16 count=0 //计数设定值
u16 countTemp=0//计数
u8 zt=0 //状态
sbit fmq=P1^0 //蜂鸣器
u16 jsflag=0 //闪烁计时用
/*********************************************************/
u8 ds[4] //数码管显示缓存
//共阴
code u8 w[]={0xf1,0xf2,0xf4,0xf8} //位码
code u8 d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}//断码
void dispaly(){//显示函数
static u8 a
if(++a>3)a=0
P0=0xFF
P2=w[a]
P0=d[ds[a]]
}
/****************************************/
void init() //初始化函数
{ TMOD=0x01
TH0=(65536-1000)/256
TL0=(65536-1000)%256
EA=1
ET0=1
}
/******************************************/
u8 key=0xff//消抖后的有效按键值
u8 key_down=0x00//按键下降沿扫描结果,1有效
u8 key_up=0x00 //上升沿扫描结果,1有效
u8 key_sc=0xff//上次扫描的按键值
//检测端下降沿检测
sbit k1=P2^4
sbit k2=P2^5
sbit k3=P2^6
sbit k4=P2^7
//按键扫描程序
void scanKey(){
static u8 temp0
static u8 ms
u8 temp=0
if(k1==1)temp|=0x01
if(k2==1)temp|=0x02
if(k3==1)temp|=0x04
if(k4==1)temp|=0x08
if(temp==temp0){// 按键消抖
if(++ms>=5){//连续5次扫描的值一样,则认为是稳定状态
key=temp
ms=0
}
}else {
temp0=temp
ms=0
}
key_down=key_sc&(~key)//下降沿扫描
key_up=(~key_sc)&key//下降沿扫描
key_sc=key
}
u8 readPIN(u8 port,u8 pin){
code u8 tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,}
return ((port&tab[pin])==0?0:1)
}
/***********************************/
//预置状态
u16 anjs=0//长按计数标志
void yzzt(){
ds[0]=count/1000%10//设置值送入显示缓存
ds[1]=count/100%10
ds[2]=count/10%10
ds[3]=count%10
if(readPIN(key,0)==0){//k1按下
if(readPIN(key_down,0)==1){//下降沿,即刚按下
if(++count>9999)count=0//加1
anjs=2000//倒计时2s
}
if(anjs==0){//倒计时到
anjs=200//倒计时0.2s
if(++count>9999)count=0//加1
}
}
//减1
if(readPIN(key,1)==0){
if(readPIN(key_down,1)==1){
if(--count>9999)count=9999
anjs=2000
}
if(anjs==0){
anjs=200
if(--count>9999)count=9999
}
}
if(readPIN(key_down,2)==1){//计入计数
zt=2
}
}
//计数状态
void jszt(){
if((countTemp==count)&&(jsflag<=500)){//闪烁
ds[0]=10
ds[1]=10
ds[2]=10
ds[3]=10
}else {//正常显示
ds[0]=countTemp/1000%10
ds[1]=countTemp/100%10
ds[2]=countTemp/10%10
ds[3]=countTemp%10
}
fmq=(countTemp==count?1:0)//蜂鸣器
if(readPIN(key_down,2)==1){//计入预置状态
zt=1
}
if(readPIN(key_down,3)==1){//计数
if(++countTemp>9999)countTemp=0
}
}
/*****************************/
void main()//主函数
{
while(1){
if(zt==0){
fmq=0
init()//系统初始化
TR0=1 //定时器开始计时
zt=1
}else if(zt==1){
yzzt()
}else if(zt==2){
jszt()
}
scanKey()
}
}
/****************************/
void timer0() interrupt 1//1ms定时器
{
TH0=(65536-1000)/256//重载初值
TL0=(65536-1000)%256
dispaly()//显示
if(++jsflag>=1000)jsflag=0
if(anjs!=0)anjs--
}
原因分析如下:一、一般在什么情况下容易弹出javascripterror提示框
1、从网上采集到的文章,但在前台打开后,就出现这个错误框!
2、图片内容页的幻灯片不播放,点播放就出现JAVA错误!
3、只在频道首页、栏目列表页和内容页有这样的错误!
4、从其它网站复制粘贴过来的图片文章经常出现这样的错误!
5、新添加频道和栏目之后,容易出现这样的错误!
6、调用自定义函数标签时出现Javascript错误!
7、修改模板把搜索按钮改成图片后提示:javascripterror
8、在模板中加入了JS调用代码,而JS文件并没有上传也会出现这个错误!
二、出现javascripterror提示框原因分析及解决方法
1、由于新安装好的网站或者新添加的频道或栏目,有些系统必需的JS文件并没有真正生成,这时添加文章在前台会出错,所以要在后台相应的频道中点击“刷新所有的JS”、“刷新专题JS文件”、“刷新栏目JS文件”;有些人以为,我没有添加专题就不用刷新专题JS了吧?错!必须也要刷新才行。
2、一般是修改模板时,JS调用代码多了或者少了就会出现这个讨厌的框。比如:模板中存在过期的广告调用JS调用代码,删除后即正常。还有的是因为模板中缺少了以下三个JS中的某一个而引起的错误:
3、有些是从其他网站复制过来的文章的js错误导致的。建议复制文章后放在记事本中过滤一下JS代码。或者修改出现错误的那篇文章,在源码状态下,查找并删除图片文章中包含的错误代码。
4、缺少相应的函数,所以调用时就一直显示错误。有的朋友以前在修改模板时,把官方默认的一些代码(如:图片无级缩放代码等)给删除了,结果也会出现JS错误。所以,动易后来把这些代码改成了删除后自动添加的,其目的就是减少JS错误。
5、常常是由于js文件没有上传成功或者你的浏览器版本过低或者限制过多造成的,从以上几个方面多检查一下或许能解决问题。
6、有些是传递的参数设定有问题。比如(('{$ArticleID}'))不需要加这么多的外包围。
只需要用{$ArticleID}就可以了!
7、在建立栏目或专题时,名称中包含了半角引号等非法字符而导致JS脚本错误,纠正之后即可解决。
8、采集项目如果过滤设置不正确,致使采集过来的一些文章JS脚本没有被过滤,也会出错。请重新设置采集过滤选项。